【问题标题】:IOUSBInterfaceInterface Already OpenIOUSBInterface接口已经打开
【发布时间】:2019-07-28 02:00:18
【问题描述】:

我正在尝试拦截通过 USB 插入我的 Mac 的 Maschine Mikro 2/与之交互。我有一个IOUSBInterfaceInterface 对正确 USB HID 接口的引用。但是,每当我尝试在接口上调用USBInterfaceOpen 时,我总是得到IOReturn 的值0x2c5,这意味着另一个程序已经拥有对该接口的独占访问权限。

我能想到的唯一可以打开这个接口的其他程序是 Native Instruments 设备驱动程序,因为它需要写入这个接口。但是,如果驱动程序对接口具有独占访问权,那么其他程序应该如何读取它呢?

是否有人使用过 Native Instruments 驱动程序并知道它们如何将设备暴露给用户空间?我希望有一个/dev/cu.* 形式的文件,但插入 Mikro 2 时没有创建任何文件。

【问题讨论】:

    标签: macos serial-port usb driver iokit


    【解决方案1】:

    原来有一个名为NIHardwareAgent 的守护进程,我相信它可以独占访问USB 接口。通过对 Maschine 2 应用的逆向工程,我发现它通过CFMessagePort's 与硬件代理进行通信。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多