Objective c 升级10.11版osx驱动程序(USB堆栈中的更改)

Objective c 升级10.11版osx驱动程序(USB堆栈中的更改),objective-c,kernel,usb,driver,osx-elcapitan,Objective C,Kernel,Usb,Driver,Osx Elcapitan,我正在将现有的自定义鼠标驱动程序设备升级到OSX 10.11。可以看出,苹果已经更新了其usb堆栈 请参阅- 我现有的代码使用了许多已删除的类(ioubhiddriver,ioubinterface,ioubpipe等)。有人能帮我找到升级到10.11的替代品或任何有用的信息吗 许多类和头文件都被重命名,我可以从上面的链接中找到替换项。但代码也使用了不推荐的类ioubpipe及其方法。我还没有完全理解它的用途。有人能解释一下iObspipe的用途,并为我推荐OSX 10.11的替代类吗 请在这行

我正在将现有的自定义鼠标驱动程序设备升级到OSX 10.11。可以看出,苹果已经更新了其usb堆栈

请参阅-

我现有的代码使用了许多已删除的类(
ioubhiddriver
ioubinterface
ioubpipe
等)。有人能帮我找到升级到10.11的替代品或任何有用的信息吗

许多类和头文件都被重命名,我可以从上面的链接中找到替换项。但代码也使用了不推荐的类
ioubpipe
及其方法。我还没有完全理解它的用途。有人能解释一下iObspipe的用途,并为我推荐OSX 10.11的替代类吗

请在这行下面找到一个处理
ioubpipe

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]);
}

管道基本上代表USB端点的一个方向。您可以从中发送或接收数据。我不太了解Mac OS X中的内核级开发,但通过查看您发布的内容,我怀疑您现在应该使用ioubhostpipe而不是ioubpipe