【发布时间】:2016-04-07 14:02:54
【问题描述】:
我正在将现有的自定义鼠标驱动程序设备升级到 OSX 10.11。可以看出苹果已经更新了它的usb栈。
我现有的代码使用了许多已删除的类(IOUSBHIDDriver、IOUSBInterface、IOUSBPipe 等)。有人可以帮我寻找替代品或任何有用的信息以升级到 10.11 吗?
许多类和头文件被重命名,我可以从上面的链接中找出替换。但代码也使用不推荐使用的类IOUSBPipe 及其方法。我还没有完全理解它的用途。有人可以解释IOUSBPipe 的用途并建议我使用 OSX 10.11 的替代类吗?
请在此行下方找到处理IOUSBpipe的代码sn-p
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]);
}
【问题讨论】:
标签: objective-c kernel usb driver osx-elcapitan