2016-04-07 2 views
1

Я обновляю существующие пользовательские драйверы мыши до OSX 10.11. Видно, что Apple обновила свой стек usb.Обновление драйвера osx для 10.11 (Изменения в стеке USB)

Пожалуйста, обратитесь - https://developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_11/Objective-C/Kernel.html

Мой существующий код использует многие из удаленных классов (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]); 
} 

ответ

1

труба в основном представляет собой одно направление USB конечной точки. Вы можете отправлять или получать данные от него. Я не знаю много о развитии на уровне ядра в Mac OS X, но, взглянув на выложенный вами номер document, я подозреваю, что вы теперь должны использовать IOUSBHostPipe вместо IOUSBPipe.

Смежные вопросы