我正在更新一些旧的旧代码(现在可以使用,但是正在使用OpenTransport,所以嗯...没有)与USB扫描器接口。我认为我理解IOUSBDeviceInterface
和IOUSBInterfaceInterface
应该如何工作,但我似乎无法获得有关管道的信息。
我有一个方法:(IOUSBInterfaceInterface **)intf
有两个管道。我相信它设置正确,但我不确定如何测试。在里面,我做:
for (i=1; i <= numPipes; i++)
{
err = (*intf)->GetPipeProperties(intf, i, &direction, &number, &transferType, &maxPacketSize, &interval);
}
但它会返回kIOReturnNotOpen
。我正确检测到扫描仪(当扫描仪关闭时,它甚至没有进入这个阶段)我不认为有任何其他程序试图访问扫描仪。
是否有一些合理的方法可以确定出现了什么问题? (即,其他程序认为它有管道打开,或者其他什么?)
代码在技术上是在Objective-C中,但正如您所看到的,上面的代码非常香草C,因此标签。
答案 0 :(得分:1)
你有没有在interace上调用USBInterfaceOpen?
如果您尚未这样做,请查看USBNotification示例代码。