https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e359a3c8881b1ebb1a9608...
commit e359a3c8881b1ebb1a96080ba456c94d7f17f95c Author: Pierre Schweitzer pierre@reactos.org AuthorDate: Sat Oct 19 16:53:45 2019 +0200 Commit: Pierre Schweitzer pierre@reactos.org CommitDate: Sat Oct 19 16:59:58 2019 +0200
[MOUNTMGR] Fix interpretation of QueryDeviceInformation GptDriveLetter
Being TRUE doesn't mean the device is GPT and has a drive letter. It just means that it's not a GPT device with GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER attribute. In short, if TRUE, it means that the device can receive a drive letter mount point.
This fixes MountMgrNextDriveLetterWorker bailing out for any attempt to assign a drive letter to a device. --- drivers/filters/mountmgr/device.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/filters/mountmgr/device.c b/drivers/filters/mountmgr/device.c index 4f3f9d2974e..ec9a04d063d 100644 --- a/drivers/filters/mountmgr/device.c +++ b/drivers/filters/mountmgr/device.c @@ -524,11 +524,12 @@ MountMgrNextDriveLetterWorker(IN PDEVICE_EXTENSION DeviceExtension, }
/* If we didn't find a drive letter online - * ensure there's no GPT drive letter nor no drive entry + * ensure this is not a no drive entry + * by querying GPT attributes & database */ if (NextEntry == &(DeviceInformation->SymbolicLinksListHead)) { - if (GptDriveLetter || HasNoDriveLetterEntry(DeviceInformation->UniqueId)) + if (!GptDriveLetter || HasNoDriveLetterEntry(DeviceInformation->UniqueId)) { DriveLetterInfo->DriveLetterWasAssigned = FALSE; DriveLetterInfo->CurrentDriveLetter = 0;