我正在更新一些旧的代码(目前可以工作,但是使用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编写的,但正如您所看到的,上面的代码非常基本,因此使用了这些标签。