def METHOD_NAME():
    drives = []
    drive_list = _parse_wmic_csv_output(_wmic_output())
    for drive in drive_list:
        # look up the drive type name
        drivetype = _DRIVE_TYPES[int(drive.get("DriveType") or "0")]
        # skip drives that have invalid types
        if drivetype.startswith("#"):
            logger.debug(
                "Skipping drive '{}' with invalid type: {}".format(
                    drive.get("DeviceID"), drivetype
                )
            )
            continue
        # construct a path (including "\") from DeviceID, plus fallbacks in case it's not defined for some reason
        path = "{}\\".format(
            drive.get("DeviceID") or drive.get("Caption") or drive.get("Name")
        )
        # skip if there's an indication that this is an empty CD-ROM
        if not drive.get("Size"):
            continue
        # skip if we don't have read access to the drive
        if not os.access(path, os.R_OK):
            continue
        # combine the metadata, using backup fields for missing pieces, and return
        drives.append(
            {
                "path": path,
                "name": drive.get("VolumeName") or drive.get("Description"),
                "filesystem": drive.get("FileSystem").lower(),
                "freespace": int(drive.get("FreeSpace") or 0),
                "totalspace": int(drive.get("Size") or 0),
                "drivetype": drivetype,
                "guid": drive.get("VolumeSerialNumber"),
            }
        )
    return drives