我正在使用带有C++
的win32 api。
我想知道如何使用“设备路径”获取卷GUID。
我的设备如下:
\\?\usb#vid_04f2&pid_0111#5&39fe81e&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
感谢。
答案 0 :(得分:2)
这将是设备实例ID为usb\VID_04f2&PID_0111\5&39fe81e&0&2
的设备。这可能是一个大容量存储设备,也就是磁盘。现在,您遇到的问题是大容量存储设备实际上没有驱动器号;它是该磁盘上具有驱动器号的卷。如果有两个分区,则单个USB大容量存储设备可能有两个驱动器号。因此,没有直接的功能来获得 卷。
看起来您需要枚举以usb\VID_04f2&PID_0111\5&39fe81e&0&2
为根的设备树来查找设备类型为“volume”的子设备。您获得的DEV_BROADCAST_DEVICEINTERFACE将有dbcc_name
字段,您可以将其传递给GetVolumeNameForVolumeMountPoint()
。
答案 1 :(得分:0)
您是否考虑过查询WMI?如果您需要有关如何执行此操作的详细信息,请与我们联系。