有没有办法确定两个IOHIDDeviceRef是否属于同一个设备?

时间:2015-11-04 15:26:13

标签: macos hid iokit

我在Mac OS上有两个HID设备引用(IOHIDDeviceRef)。如何确定它们是否指向同一物理设备?

奖励积分: 如果设备重新连接或新设备,可以使用哪些属性来识别设备。

1 个答案:

答案 0 :(得分:2)

对于每个HID设备参考,请致电IOHIDDeviceGetService以检索IOService参考。每个IOService实例(从技术上讲,它的超类IORegistryEntry的实例)都有一个唯一的"条目ID"可以通过IORegistryEntryGetRegistryEntryID()查询。如果条目ID与对应于HID设备引用的两个io_service_t对象匹配,则它们引用相同的设备。

断开连接并重新连接会更改条目ID,因此您无法判断它是否与先前通过此方法连接的设备相同。如果底层USB或蓝牙设备有序列号,您可以将其与供应商和产品ID等结合使用。