如何检索USB设备接口GUID?

6
要获取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:http://msdn.microsoft.com/en-us/library/windows/hardware/ff541247%28v=vs.85%29.aspx - Hans Passant
@HansPassant,您能再解释一下吗?在我看来,您的意思是首先将GUID提供给SetupDiCreateDeviceInfoList(),这会让我回到起点... - fbo
您可以选择要枚举的设备类型,这是一个“类GUID”。例如GUID_DEVINTERFACE_NET。 - Hans Passant
@HansPassant 我已经知道我想枚举类型GUID_DEVINTERFACE_NET。我想问是否存在一个函数,可以将变量设置为值GUID_DEVINTERFACE_NET(而无需显式引用GUID_DEVINTERFACE_NET)。 - fbo
我想这样做的原因是,我的程序将接收一个输入,并根据该输入返回特定的HID设备是否连接或特定网络适配器是否连接。 - fbo
1个回答

4

太糟糕了!我不得不这样做:if (USBtype == 1) { HidD_GetHidGuid(&myHidGuid); //定义HID GUID } else if (USBtype == 2) { myHidGuid = GUID_DEVINTERFACE_NET; //定义HID GUID }因为当我尝试使用GUID_DEVINTERFACE_HID时出现链接器错误。我希望这些情况匹配 :)感谢提供的链接! - fbo
请发布一些代码,并提供更多关于错误的细节,这听起来很有趣。 - garzanti
只是提醒一下,设备安装类并不一定等同于设备接口类,你贴的链接是设备安装类,这里有设备接口类列表。你可能也会对这个页面感兴趣。此外,看起来你两次贴的是同样的链接。 - jrh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接