Osx driver update for 10.11 (USB stack changes)

I am updating existing custom mouse drivers to OSX 10.11. It can be seen that Apple has updated its usb stack.

Please refer to https://developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_11/Objective-C/Kernel.html

Many remote classes (used in my existing code IOUSBHIDDriver, IOUSBInterface, IOUSBPipeetc). Can someone help me find replacements or any useful information to upgrade to 10.11?

Many classes and header files are being renamed, and I can find a replacement from the link above. But the code also uses an obsolete class IOUSBPipeand its methods. I do not quite understand what it is used for. Can someone explain the purpose IOUSBPipeand also offer me an alternative class for OSX 10.11?

Below you will find a code snippet that deals with 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]);
}
+1
source share
1 answer

USB. . Mac OS X, , , , , IOUSBHostPipe IOUSBPipe.

+1

All Articles