[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.
This commit is contained in:
Pierre Schweitzer 2019-10-19 16:53:45 +02:00
parent 961693f060
commit e359a3c888
No known key found for this signature in database
GPG key ID: 7545556C3D585B0B

View file

@ -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;