2016-04-07 79 views
1

Varolan özel fare sürücüsü aygıtlarını OSX 10.11'e yükseltirim. Apple'ın usb yığınını güncellediği görülüyor. 10.11 için osx sürücüsünü yükseltme (USB yığınındaki değişiklikler)

bakınız

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

My mevcut kod kaldırılan sınıflar (IOUSBHIDDriver, IOUSBInterface, IOUSBPipe vs) birçok kullanır. Birisi 10.11'e yükseltmek için değiştirmeler veya herhangi bir yararlı bilgi bulma konusunda bana yardımcı olabilir mi?

Birçok sınıf ve başlık dosyası yeniden adlandırılır ve yukarıdaki bağlantıdan değiştirmeleri anlayabilirim. Ancak kod ayrıca kullanımdan kaldırılmış sınıf IOUSBPipe ve yöntemlerini kullanır. Ne için kullanıldığını tam olarak anlamadım. Birisi bana IOUSBPipe'un amacını açıklayabilir ve bana OSX 10.11 için alternatif sınıfı önerir mi?

bu çizginin altına bir boru temelde USB uç noktası bir yönünü temsil 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]); 
} 

cevap

1

ile ilgilenen bir kod parçası bulabilirsiniz. Ondan veri gönderip alabilirsin. Mac OS X'te çekirdek seviyesi geliştirme hakkında pek bir şey bilmiyorum, ancak gönderdiğiniz document'a baktığımda, IOUSBPipe yerine IOUSBHostPipe'u kullanmanız gerektiğinden şüpheleniyorum.