IOUSBInterface接口已经打开

IOUSBInterfaceInterface Already Open

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

我能想到的唯一会打开此接口的其他程序是 Native Instruments 设备驱动程序,因为它需要写入此接口。但是,如果驱动程序具有对该接口的独占访问权限,其他任何程序应该如何从中读取?

有没有人有使用 Native Instruments 驱动程序的经验并且知道他们如何将设备暴露给用户-space?我本来希望 /dev/cu.* 形式的文件,但是当插入 Mikro 2 时会创建 none。

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