Hans Leidekker hans@codeweavers.com writes:
- for (i = 0; i < output->NumberOfMountPoints; i++)
- {
if (output->MountPoints[i].DeviceNameOffset)
{
const WCHAR *device = (const WCHAR *)((const char *)output + output->MountPoints[i].DeviceNameOffset);
UINT device_len = output->MountPoints[i].DeviceNameLength / sizeof(WCHAR);
int drive = map_dos_device( device, device_len );
if (drive != -1)
{
len += 4;
if (volumepathname && len < buflen)
{
path[0] = 'A' + drive;
path[1] = ':';
path[2] = '\\';
path[3] = 0;
path += 4;
}
}
}
This won't allow you to support GUID volume names. I think you should query all mount points that match the device, not just the DOS drives. Either way you should use MOUNTMGR_QUERY_POINTS instead of trying every drive one by one.