我正在将现有的自定义鼠标驱动程序设备升级到OSX 10.11。可以看出,苹果已经更新了它的usb堆栈。
我现有的代码使用了许多已移除的类(IOUSBHIDDriver
,IOUSBInterface
,IOUSBPipe
等)。有人可以帮助我找到替换或任何有用的信息升级到10.11吗?
重命名了许多类和头文件,我可以从上面的链接中找出替换内容。但是代码也使用了弃用的类IOUSBPipe
及其方法。我还没有完全理解它的用途。有人可以解释IOUSBPipe
的目的,并建议我OSX 10.11的替代类吗?
请在此行下方找到处理IOUSBpipe
IOMemoryDescriptor *report;
setReport(report, kIOHIDReportTypeOutput);
IOReturn ret;
IOUSBDevRequest request;
IOUSBFindEndpointRequest findRequest = {
kUSBAnyType,
kUSBAnyDirn,
0,
0
};
IOUSBPipe *pipe = NULL;
while(pipe=usbInterface->FindNextPipe(pipe, &findRequest))
{
if (!pipe)
{
IOLog("NO PIPE!\n");
return 0;
}
IOLog("control request on pipe!\n");
request.bmRequestType = (UInt8)req->bmRequestType;
request.bRequest = (UInt8)req->bRequest;
request.wIndex = (UInt16)req->wIndex;
request.wLength = req->wLength;
request.wValue = (UInt16)req->wValue;
request.pData = (void*)data;
pipe->ControlRequest(&request);
IOLog("result: %d", data[0]);
}
答案 0 :(得分:1)
管道基本上代表USB端点的一个方向。您可以从中发送或接收数据。我对Mac OS X中的内核级开发知之甚少,但通过查看您发布的document,我怀疑您现在应该使用 IOUSBHostPipe 而不是IOUSBPipe。 / p>