2016-07-01 34 views
1

Ich verwende IOHIDDeviceRegisterInputReportCallback, um eingehende Berichte anzuhören, während ein HID-Gerät verwendet wird. An dem Punkt, an dem ich die Verbindung zum Gerät (in Software, nicht physisch) getrennt habe, möchte ich diesen Rückruf rückgängig machen. Ich sehe jedoch keine Methoden, um meinen Rückruf in den Apple-Dokumenten zu lösen. Ich bin mir sicher, dass ich gerade etwas verpasse. Kann mir jemand den richtigen Weg zeigen, sich von einem Gerät zu lösen? Wenn ich meinen Rückruf nicht direkt abhaken soll, was ist der richtige Weg, um die Verbindung zu meiner Software vom HID-Gerät zu trennen?Wie kann ich einen IOKit.HID-Rückruf "abmelden"?

Ich mache dieses Projekt in Swift, aber eine Antwort in Objective-C oder C++ sollte auch in Ordnung sein.

Antwort

1

Kurz nachdem ich das gefragt habe, fand ich die Antwort in Apple's documentation. Sie geben an:

Hinweis: Es gibt keine Funktion zum Aufheben der Registrierung von IOHID-Callback-Routinen. Sie sind nicht registriert, indem Sie die Registerfunktion aufrufen und NULL für den Zeiger auf die Rückrufroutine übergeben.

Die Antwort ist also, einen Null/Null-Zeiger an die Rückrufregistrierungsfunktion zu übergeben.