Macos 如何确定已卸下USB设备的位置ID?
我有一个USB“watcher”,可以加载特定设备的设备描述符,并在Macos 如何确定已卸下USB设备的位置ID?,macos,usb,detection,iokit,Macos,Usb,Detection,Iokit,我有一个USB“watcher”,可以加载特定设备的设备描述符,并在NSMutableArray中跟踪它们 添加新设备时,我会得到回调,并可以通过比较locationIDs(唯一会话ID)来遍历我拥有的设备列表 如果找不到设备的locationID(应始终如此),则我将其添加到数组中 现在,当设备被移除时,我得到另一个回调。它具有服务ID,该ID与添加设备时使用的ID不同 由于设备已不存在,我无法为其获取设备描述符(因此,没有locationID) 如何将此服务ID与阵列中的设备相匹配?您是否尝
NSMutableArray
中跟踪它们
添加新设备时,我会得到回调,并可以通过比较locationID
s(唯一会话ID)来遍历我拥有的设备列表
如果找不到设备的locationID
(应始终如此),则我将其添加到数组中
现在,当设备被移除时,我得到另一个回调。它具有服务ID,该ID与添加设备时使用的ID不同
由于设备已不存在,我无法为其获取设备描述符(因此,没有locationID
)
如何将此服务ID与阵列中的设备相匹配?您是否尝试过使用
IORegistryEntryGetRegistryEntryID
在设备连接时获取设备的服务对象的唯一ID,并在设备消失时使用您获得的ID与阵列中的设备相匹配?据我所知,这应该行得通。(IOService
是IORegistryEntry
的子类,因此您可以在任何IOService
对象上使用ioRegistryEntryId
)。成功了!我喜欢这个地方!