mirror of
https://github.com/pbatard/rufus.git
synced 2025-05-18 00:54:27 -04:00
[enum] remove STORAGE_DEVICE_DESCRIPTOR query
This commit is contained in:
parent
621721b547
commit
ef1922c3ac
1 changed files with 1 additions and 35 deletions
36
usbdos.c
36
usbdos.c
|
@ -162,15 +162,12 @@ static BOOL GetUSBDevices(void)
|
||||||
SP_DEVICE_INTERFACE_DATA devint_data;
|
SP_DEVICE_INTERFACE_DATA devint_data;
|
||||||
PSP_DEVICE_INTERFACE_DETAIL_DATA_A devint_detail_data;
|
PSP_DEVICE_INTERFACE_DETAIL_DATA_A devint_detail_data;
|
||||||
STORAGE_DEVICE_NUMBER storage_device;
|
STORAGE_DEVICE_NUMBER storage_device;
|
||||||
STORAGE_PROPERTY_QUERY storage_query;
|
|
||||||
STORAGE_DESCRIPTOR_HEADER storage_descriptor_header;
|
|
||||||
PSTORAGE_DEVICE_DESCRIPTOR storage_descriptor;
|
|
||||||
BYTE geometry[128];
|
BYTE geometry[128];
|
||||||
LONGLONG disk_size;
|
LONGLONG disk_size;
|
||||||
DWORD size, i, j, datatype;
|
DWORD size, i, j, datatype;
|
||||||
HANDLE hDrive;
|
HANDLE hDrive;
|
||||||
char drive_letter;
|
char drive_letter;
|
||||||
char *label, entry[MAX_PATH], buffer[MAX_PATH], *tmp;
|
char *label, entry[MAX_PATH], buffer[MAX_PATH];
|
||||||
|
|
||||||
IGNORE_RETVAL(ComboBox_ResetContent(hDeviceList));
|
IGNORE_RETVAL(ComboBox_ResetContent(hDeviceList));
|
||||||
|
|
||||||
|
@ -202,11 +199,9 @@ static BOOL GetUSBDevices(void)
|
||||||
devint_data.cbSize = sizeof(devint_data);
|
devint_data.cbSize = sizeof(devint_data);
|
||||||
hDrive = INVALID_HANDLE_VALUE;
|
hDrive = INVALID_HANDLE_VALUE;
|
||||||
devint_detail_data = NULL;
|
devint_detail_data = NULL;
|
||||||
storage_descriptor = NULL;
|
|
||||||
for (j=0; ;j++) {
|
for (j=0; ;j++) {
|
||||||
safe_closehandle(hDrive);
|
safe_closehandle(hDrive);
|
||||||
safe_free(devint_detail_data);
|
safe_free(devint_detail_data);
|
||||||
safe_free(storage_descriptor);
|
|
||||||
|
|
||||||
if (!SetupDiEnumDeviceInterfaces(dev_info, &dev_info_data, &GUID_DEVINTERFACE_DISK, j, &devint_data)) {
|
if (!SetupDiEnumDeviceInterfaces(dev_info, &dev_info_data, &GUID_DEVINTERFACE_DISK, j, &devint_data)) {
|
||||||
if(GetLastError() != ERROR_NO_MORE_ITEMS) {
|
if(GetLastError() != ERROR_NO_MORE_ITEMS) {
|
||||||
|
@ -247,35 +242,6 @@ static BOOL GetUSBDevices(void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
storage_query.PropertyId = StorageDeviceProperty;
|
|
||||||
storage_query.QueryType = PropertyStandardQuery;
|
|
||||||
r = DeviceIoControl(hDrive, IOCTL_STORAGE_QUERY_PROPERTY,
|
|
||||||
&storage_query, sizeof(storage_query),
|
|
||||||
&storage_descriptor_header, sizeof(storage_descriptor_header),
|
|
||||||
&size, NULL );
|
|
||||||
if (!r || size <= 0) {
|
|
||||||
uprintf("IOCTL_STORAGE_QUERY_PROPERTY->STORAGE_DEVICE_DESCRIPTOR (dummy) failed: %s\n", WindowsErrorString(0));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
storage_descriptor = (PSTORAGE_DEVICE_DESCRIPTOR)calloc(1, storage_descriptor_header.Size);
|
|
||||||
if (storage_descriptor == NULL) {
|
|
||||||
uprintf("unable to allocate memory for STORAGE_DEVICE_DESCRIPTOR\n");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
r = DeviceIoControl(hDrive, IOCTL_STORAGE_QUERY_PROPERTY,
|
|
||||||
&storage_query, sizeof(storage_query),
|
|
||||||
storage_descriptor, storage_descriptor_header.Size,
|
|
||||||
&size, NULL );
|
|
||||||
if (!r || size <= 0) {
|
|
||||||
uprintf("IOCTL_STORAGE_QUERY_PROPERTY->STORAGE_DEVICE_DESCRIPTOR (actual) failed: %s\n", WindowsErrorString(0));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
tmp = (char*)storage_descriptor;
|
|
||||||
uprintf("%s:%s:%s:%s\n", storage_descriptor->VendorIdOffset?&tmp[storage_descriptor->VendorIdOffset]:"",
|
|
||||||
storage_descriptor->ProductIdOffset?&tmp[storage_descriptor->ProductIdOffset]:"",
|
|
||||||
storage_descriptor->ProductRevisionOffset?&tmp[storage_descriptor->ProductRevisionOffset]:"",
|
|
||||||
storage_descriptor->SerialNumberOffset?&tmp[storage_descriptor->SerialNumberOffset]:"");
|
|
||||||
|
|
||||||
r = DeviceIoControl(hDrive, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX,
|
r = DeviceIoControl(hDrive, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX,
|
||||||
NULL, 0, geometry, sizeof(geometry),
|
NULL, 0, geometry, sizeof(geometry),
|
||||||
&size, NULL );
|
&size, NULL );
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue