既存のカスタムマウスドライバデバイスをOSX 10.11にアップグレードしています。 appleがusbスタックを更新したことがわかります。10.11用osxドライバのアップグレード(USBスタックの変更)
を私の既存のコードが削除されたクラス(IOUSBHIDDriver
、IOUSBInterface
、IOUSBPipe
など)の多くを使用しています。 10.11にアップグレードするための代替情報や有用な情報を見つけるのに助けてくれる人はいますか?
多くのクラスとヘッダーファイルの名前が変更されており、上記のリンクからの置き換えを見つけることができます。しかし、コードでは廃止されたクラスIOUSBPipe
とそのメソッドも使用されています。私はそれが何のために使われているか完全に理解していません。誰かがIOUSBPipe
の目的を説明できるだけでなく、私にOSX 10.11の代替クラスを提案できますか?
この行の下にパイプが基本的にUSBエンドポイントの一つの方向を表し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]);
}