如何获取卷GUID

时间:2010-06-09 07:25:07

标签: c++ windows winapi hardware

我正在使用带有C++的win32 api。

我想知道如何使用“设备路径”获取卷GUID。

我的设备如下:

\\?\usb#vid_04f2&pid_0111#5&39fe81e&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed}

感谢。

2 个答案:

答案 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?如果您需要有关如何执行此操作的详细信息,请与我们联系。