如何确定已移除的USB设备的LocationID?

时间:2014-03-20 15:46:58

标签: macos usb detection iokit

我有一个USB"观察者"加载某些设备的设备描述符,并在NSMutableArray中跟踪它们。

添加新设备后,我会收到回调,并可以遍历我拥有的设备列表,比较locationID s(唯一会话ID)。

如果找不到设备的locationID(应该总是这样),那么我将它添加到数组中。

现在,当设备被删除时,我会收到另一个回调。这有服务ID,与添加设备时使用的服务ID不同。

由于设备不见了,我无法获取设备描述符(因此,没有locationID)。

如何将此服务ID与我的阵列中的设备相匹配?

1 个答案:

答案 0 :(得分:1)

您是否尝试使用IORegistryEntryGetRegistryEntryID在连接时获取设备的服务对象的唯一ID,并使用您在消失时获得的ID以匹配阵列中的设备?据我所知,应该工作。 (IOServiceIORegistryEntry的子类,因此您可以在任何IORegistryEntryGetRegistryEntryID对象上使用IOService。)