USB设备在Max OS 10.13.4上返回kIOReturnExclusiveAccess重新插入

时间:2018-06-22 13:43:52

标签: macos usb

我一直无法弄清为什么拔出并重新插入后,调用UsbDeviceOpen()返回kIOReturnExclusiveAccess的原因。

设计: 1.在运行CFRunLoop()的线程上检测设备的添加/删除 2.执行异步读写的第二个线程。

当线程1收到kIOMessageServiceIsTerminated事件时, 我是AbortPipe(),USBInterfaceClose(),Interface-> Release(),USBDeviceClose(),DeviceInterface-> Release()和IOObectRelease(notification)。

除USBDeviceClose()外,所有调用均返回kIOReturnSuccess。它返回kIOReturnNoDevice。这是有道理的,因为设备已被卸下。但是当我重新插入电源时,操作系统似乎仍然认为线程/任务/进程已打开设备。在极少数情况下,重新插拔会起作用。

对于在Mac上进行编程,我还比较陌生,但我发现缺少这些文档。如果有人可以建议Mac专用论坛,那就太好了。这是一个编程问题,而不是系统/一般用户问题。

谢谢你, 吉姆

0 个答案:

没有答案