【问题标题】:How to get the volume GUID如何获取卷 GUID
【发布时间】:2011-03-01 12:50:39
【问题描述】:

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

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

我的设备如下所示:

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

谢谢。

【问题讨论】:

  • 你想用它做什么?
  • @codeka : 我需要获取驱动器号以映射到设备路径
  • 这个问题你可以问多少次,但答案不会改变。我在您的其他问题中发布的链接显示了如何执行此操作。

标签: c++ windows winapi hardware


【解决方案1】:

这将是设备实例 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()

【讨论】:

  • 如果设备未挂载(例如,如果 Windows 用完驱动器号),有没有办法使用 GetVolumeNameForVolumeMountPoint
  • @梅加登法官:我认为你在这里有一个错误的假设。 Windows 上的“安装”不需要驱动器号。这里使用的“挂载点”(dbcc_name)当然不是驱动器号。
【解决方案2】:

您是否考虑过为它查询 WMI?如果您需要有关如何执行此操作的详细信息,请告诉我。

【讨论】:

  • 感谢您的回复。我用win32api方式做
猜你喜欢
  • 1970-01-01
  • 2019-09-06
  • 2018-12-24
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多