【发布时间】:2019-01-03 07:41:54
【问题描述】:
我从
获取 USB 设备路径SetupDiGetDeviceInterfaceDetail()
我可以得到类似的设备路径
\\?\usbstor#disk&ven_&prod_2307_pram&......
但我想将设备路径映射到物理驱动器
-> \\physicaldrive0,1,2......
或者相反,我可以将物理驱动映射到设备路径
有什么办法吗?
【问题讨论】:
我从
获取 USB 设备路径SetupDiGetDeviceInterfaceDetail()
我可以得到类似的设备路径
\\?\usbstor#disk&ven_&prod_2307_pram&......
但我想将设备路径映射到物理驱动器
-> \\physicaldrive0,1,2......
或者相反,我可以将物理驱动映射到设备路径
有什么办法吗?
【问题讨论】:
哦,我找到了。 将 HANDLE 放入 DeviceIoControl 并使用 IOCTL_STORAGE_GET_DEVICE_NUMBER
STORAGE_DEVICE_NUMBER number; //use this to get disk numbers
DWORD readed; // discard results
BOOL result = DeviceIoControl(
hdl, // handle to device
IOCTL_STORAGE_GET_DEVICE_NUMBER, // dwIoControlCode
NULL, // lpInBuffer
0, // nInBufferSize
&number, // output buffer
sizeof(number), // size of output buffer
&readed, // number of bytes returned
NULL // OVERLAPPED structure
);
number.DeviceNumber 是 PhysicalDrive 编号
【讨论】: