Windows HID设备名称格式

时间:2014-02-06 22:04:34

标签: windows device hid

有多种方法可以检索HID设备的Windows“设备名称”,GetRawInputDeviceInfo,其中RIDI_DEVICENAME是一种方法。

给出示例名称:

\ \ HID#VID_FEED&安培; PID_DEAD#6和; 3559c8ea&安培0安培; 0000#{378de44c-56ef-11D1-bc8c-00a0c91405dd}

我想知道这个字符串中的内容是否有任何文档?

\ \ HID#VID_AAAA&安培; PID_BBBB#C&安培; DDDDDD急症&安培; FFFF#{GUID}

所以显而易见的是A(VID),B(PID)和最后的GUID。我想知道的是C,D,E和F究竟是什么?

C和D似乎是独一无二的,即使你插入了两个完全相同的HID设备,这对我的问题很有帮助,但如果我能确切地知道在每个操作系统上如何确定这一点,我会感觉更舒服基础,或至少它遵循一些已知的格式。

我一直在谷歌搜索疯子试图解决这个问题,我错过了一些明显的东西吗?

提前致谢

2 个答案:

答案 0 :(得分:4)

根据similar MSDN post,该值表示唯一的设备实例ID:

  

设备实例ID是唯一且物理上不变的   设备插入的位置,但它也是不透明的   不被解析。这意味着它可以用于字符串比较,但是   不是为了解释。

答案 1 :(得分:0)

它实际上是device interface instance id(符号链接名称)。是的,它是唯一的,并且在系统重新启动后仍然存在。一些细节也here

您可以将CM_Get_Device_Interface_PropertySetupDiGetDeviceInterfacePropertyDEVPKEY_Device_InstanceId一起使用以获取设备实例ID(一个设备可以具有多个接口)。

在您的示例中-您具有HID设备。其设备ID格式描述为here

有关通用USB设备ID格式的信息为here

获得设备实例ID后,可以将CM_Get_DevNode_PropertySetupDiGetDevicePropertyDEVPKEY_NAME一起使用以获取设备的本地化友好名称(在设备管理器中显示)。

总结: