【问题标题】:How to retrieve USB device interface GUID?如何检索 USB 设备接口 GUID?
【发布时间】:2012-12-03 19:39:17
【问题描述】:

要获取 HID 设备的 GUID,我知道我可以这样做:

GUID myHidGuid;
memset(&myHidGuid, 0, sizeof(GUID)); //allocate
HidD_GetHidGuid(&myHidGuid); //define the HID GUID

是否有类似于 HidD_GetHidGuid() 的函数可以为我提供其他设备类的 GUID?

我正在尝试确定是否连接了 USB 无线网络适配器。我相信我想要 GUID_DEVINTERFACE_NET 但我不知道如何检索它。

【问题讨论】:

  • SetupDiCreateDeviceInfoList + SetupDiEnumDeviceInfo: msdn.microsoft.com/en-us/library/windows/hardware/…
  • @HansPassant 你能解释一下吗?它告诉我你使用的方式是首先将 GUID 提供给 SetupDiCreateDeviceInfoList() 这让我回到我开始的地方......
  • 您选择要枚举的设备类型,它是“类 guid”。像 GUID_DEVINTERFACE_NET
  • @HansPassant 我已经知道我想枚举类型 GUID_DEVINTERFACE_NET 。我在问是否存在将变量设置为值 GUID_DEVINTERFACE_NET 的函数(没有我明确引用 GUID_DEVINTERFACE_NET)
  • 我想这样做的原因是,我的程序将获得一个输入,并且基于该输入,如果连接了特定的 HID 设备或特定的网络适配器,它将返回已附上。

标签: c++ windows winapi usb


【解决方案1】:

我不认为你有类似的东西,这些 ClassGuid 是由 Microsoft 决定的,列表在这里:

http://msdn.microsoft.com/en-us/library/windows/hardware/ff553426(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/hardware/ff553428(v=vs.85).aspx

CodeProject article 就是一个很好的例子。

【讨论】:

  • 太糟糕了!我不得不这样做:if (USBtype == 1) { HidD_GetHidGuid(&myHidGuid); //define the HID GUID } else if (USBtype == 2) { myHidGuid = GUID_DEVINTERFACE_NET; //define the HID GUID },因为当我尝试使用 GUID_DEVINTERFACE_HID 时出现链接器错误。我希望案例匹配:) 感谢您的链接!
  • 贴一些代码,还有更多关于错误的细节,听起来很有趣
  • 仅供参考,设备 setup 类不一定与设备 interface 类相同,您发布的链接用于设备设置类,@ 987654324@。您可能还会发现this page 很有趣而且看起来您发布了两次相同的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-17
相关资源
最近更新 更多