我正在使用Win32 API.
真的我不明白如何获取USB棒的DevicePath的驱动器号.
你能解释一下吗?
(我所拥有的是SP_DEVICE_INTERFACE_DETAIL_DATA DevicePath
使用此设备路径,我获得USB设备的VID和PID
我的设备路径如下所示
"\?\ USB#vid_1a8dpid_1000#358094020874450 {a5dcbf10-6530-11d2-901f-00c04fb951ed}"
有没有办法将DRIVE LETTER映射到我的DEVICE PATH
所以请帮我把驱动器号映射到DevicePath)
谢谢你的帮助.
我在您的其他问题中提供的链接为您提供了执行此操作所需的所有信息.在半伪代码中:
DiskDevice = CreateFile(DiskDevicePath);
DiskDeviceNumber = DeviceIoControl(DiskDevice, IOCTL_STORAGE_GET_DEVICE_NUMBER);
for each VolumeDevicePath in GetLogicalDriveStrings
VolumeDevice = CreateFile(VolumeDevicePath);
VolumeDeviceNumber = DeviceIoControl(VolumeDevice, IOCTL_STORAGE_GET_DEVICE_NUMBER);
if(VolumeDeviceNumber == DiskDeviceNumber)
// volume (i.e. "G:") corresponding to VolumeDevicePath resides on disk (i.e. "XYZ USB Storage Device") corresponding to DiskDevicePath
Run Code Online (Sandbox Code Playgroud)
我不是100%肯定(已经有一段时间了),但我认为磁盘设备(GUID_DEVINTERFACE_DISK)是USB设备的子级(GUID_DEVINTERFACE_USB_DEVICE).无论如何,我认为DiskDevicePath需要是磁盘设备的路径(而不是USB设备).