mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
Merge 58b526048a
into 3f0d9d108f
This commit is contained in:
commit
bbfcc9e3b4
1 changed files with 27 additions and 22 deletions
11
src/rufus.c
11
src/rufus.c
|
@ -633,7 +633,7 @@ static BOOL GetUSBDevices(DWORD devnum)
|
|||
// The rest are the vendor UASP drivers I know of so far - list may be incomplete!
|
||||
const char* storage_name[] = { "USBSTOR", "UASPSTOR", "VUSBSTOR", "ETRONSTOR" };
|
||||
const char* scsi_name = "SCSI";
|
||||
const char* vhd_name = "Microsoft Virtual Disk";
|
||||
const char* vhd_name[] = { "Microsoft Virtual Disk", "Msft Virtual Disk SCSI Disk Device" };
|
||||
char letter_name[] = " (?:)";
|
||||
BOOL found = FALSE, is_SCSI, is_UASP, is_VHD;
|
||||
HDEVINFO dev_info = NULL;
|
||||
|
@ -713,9 +713,13 @@ static BOOL GetUSBDevices(DWORD devnum)
|
|||
uprintf("SetupDiGetDeviceRegistryProperty (Friendly Name) failed: %s\n", WindowsErrorString());
|
||||
// We can afford a failure on this call - just replace the name with "USB Storage Device (Generic)"
|
||||
safe_strcpy(buffer, sizeof(buffer), lmprintf(MSG_045));
|
||||
} else if (safe_stricmp(buffer, vhd_name) == 0) {
|
||||
is_VHD = TRUE;
|
||||
} else {
|
||||
for (j = 0; j < ARRAYSIZE(vhd_name); j++) {
|
||||
if (safe_stricmp(buffer, vhd_name[j]) == 0) {
|
||||
is_VHD = TRUE;
|
||||
}
|
||||
}
|
||||
if (is_VHD == FALSE) {
|
||||
// Get the VID:PID of the device. We could avoid doing this lookup every time by keeping
|
||||
// a lookup table, but there shouldn't be that many USB storage devices connected...
|
||||
for (devid = devid_list; *devid; devid += strlen(devid) + 1) {
|
||||
|
@ -740,6 +744,7 @@ static BOOL GetUSBDevices(DWORD devnum)
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (is_VHD) {
|
||||
uprintf("Found VHD device '%s'\n", buffer);
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue