From a239bf686abc1bdf5c44d26008d86e9f0fe64a1c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 18 Jan 2016 01:30:48 +0530 Subject: [PATCH] Revert previous workaround for windows 10 issue as it does not work --- src/calibre/devices/winusb.py | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/src/calibre/devices/winusb.py b/src/calibre/devices/winusb.py index 662020bd69..6e97542fab 100644 --- a/src/calibre/devices/winusb.py +++ b/src/calibre/devices/winusb.py @@ -444,28 +444,14 @@ def get_device_interface_detail_data(dev_list, p_interface_data, buf=None): # }}} def get_removable_drives(debug=False): # {{{ - pbuf = create_unicode_buffer(512) - mask = GetLogicalDrives() - drives = {letter:GetDriveType(letter + ':' + os.sep) for i, letter in enumerate(string.ascii_uppercase) if mask & (1 << i)} + drive_map = get_all_removable_drives(allow_fixed=False) if debug: - prints('Drive type map: %s' % drives) - drive_map = {} - for letter, drive_type in drives.iteritems(): - # We need to allow both removable and fixed drives because some windows - # 10 machines that have been upgraded from a previous windows release - # mark USB drives as fixed. The fixed drives will only be added if - # "USBSTOR" in present in the volume device path, indicating that the drives, - # are, in fact, USB drives. - if drive_type in (DRIVE_REMOVABLE, DRIVE_FIXED): - try: - GetVolumeNameForVolumeMountPoint(letter + ':' + os.sep, pbuf, len(pbuf)) - except WindowsError: - continue - drive_map[pbuf.value] = letter + prints('Drive map: %s' % drive_map) if not drive_map: raise NoRemovableDrives('No removable drives found!') buf = None + pbuf = create_unicode_buffer(512) ans = {} with get_device_set() as dev_list: interface_data = SP_DEVICE_INTERFACE_DATA() @@ -494,8 +480,7 @@ def get_removable_drives(debug=False): # {{{ candidates.append(devpath) drive_letter = drive_letter_from_volume_devpath(devpath, drive_map) - drive_type = drives.get(drive_letter) - if drive_type == DRIVE_REMOVABLE or (drive_type == DRIVE_FIXED and 'usbstor' in devpath.lower()): + if drive_letter: ans[drive_letter] = candidates if debug: prints('Found volume with device path:', devpath, ' Drive letter:', drive_letter, 'Is removable:', drive_letter in ans)