首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取DevicePath的驱动器号

如何获取DevicePath的驱动器号
EN

Stack Overflow用户
提问于 2010-06-08 17:00:31
回答 2查看 6.3K关注 0票数 4

我使用的是Win32接口。

我真的不明白怎样才能得到U盘的DevicePath盘符。

你能给我解释一下吗?

(我有的是SP_DEVICE_INTERFACE_DETAIL_DATA DevicePath

使用此设备路径,我可以获得usb设备的VID和PID

我的设备路径如下所示

"\?\usb#vid_1a8d&pid_1000#358094020874450#{a5dcbf10-6530-11d2-901f-00c04fb951ed}“

是否可以将驱动器号映射到我的设备路径

因此,请帮助我将驱动器号映射到DevicePath )

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-09 01:30:02

我在您的另一个问题中提供的link为您提供了执行此操作所需的所有信息。在半伪代码中:

代码语言:javascript
复制
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

我不能100%确定(已经有一段时间了),但我认为磁盘设备(GUID_DEVINTERFACE_DISK)是USB设备(GUID_DEVINTERFACE_USB_DEVICE)的子设备。无论如何,我认为DiskDevicePath应该是磁盘设备(而不是USB设备)的路径。

票数 7
EN

Stack Overflow用户

发布于 2010-06-08 23:33:10

看看这个,也许会有帮助(我不认为有一个简单的方法可以做到这一点…)

http://msdn.microsoft.com/en-us/library/cc542456(VS.85).aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2995957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档