Hallo zusammen,
ich schreibe gerade ein Tool, mit dem man ein USB Gerät ansteuern können soll.
Leider bindet sich gerne mal ein Apple Kext (AppleUSBCDC) dran.
In dem Fall bekomme ich beim Öffnen des Devices mittels
ein kIOReturnExclusiveAccess.
Um den Anwender dann darauf hinzuweisen, dass er entweder den "Codeless Kext" installieren soll, oder den Apple Kext mittels kextunload entladen muss, würde ich gerne den Namen des Kext ausgeben. Leider bekomm ich das nicht hin. Mein Versuch
Erzeugt leider nicht "AppleUSBCDC" sondern "IOUSBDevice".
Der USB Proper von Apple zeigt das auch an:
Aber leider lässt sich dieser bei mir nicht kompilieren. Und das nur aus dem Code rauszulesen bin ich irgendwie zu doof?!
Wie komme ich also an den richtigen Namen?
ich schreibe gerade ein Tool, mit dem man ein USB Gerät ansteuern können soll.
Leider bindet sich gerne mal ein Apple Kext (AppleUSBCDC) dran.
In dem Fall bekomme ich beim Öffnen des Devices mittels
ein kIOReturnExclusiveAccess.
Um den Anwender dann darauf hinzuweisen, dass er entweder den "Codeless Kext" installieren soll, oder den Apple Kext mittels kextunload entladen muss, würde ich gerne den Namen des Kext ausgeben. Leider bekomm ich das nicht hin. Mein Versuch
Quellcode
Erzeugt leider nicht "AppleUSBCDC" sondern "IOUSBDevice".
Der USB Proper von Apple zeigt das auch an:
Quellcode
- <span class="hljs-number">5</span><span class="hljs-symbol">:</span> <span class="hljs-constant">CommunicationsDevice</span><span class="hljs-variable">@14340000</span> <<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">IOUSBDevice</span>></span>
- <span class="hljs-constant">AppleUSBCDC</span> <<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">AppleUSBCDC</span>></span>
- <span class="hljs-constant">IOUSBInterface</span><span class="hljs-variable">@0</span> <<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">IOUSBInterface</span>></span>
- <span class="hljs-constant">AppleUSBCDCACMControl</span> <<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">AppleUSBCDCACMControl</span>></span>
- <span class="hljs-constant">IOUSBInterface</span><span class="hljs-variable">@1</span> <<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">IOUSBInterface</span>></span>
- <span class="hljs-constant">AppleUSBCDCACMData</span> <<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">AppleUSBCDCACMData</span>></span>
- <span class="hljs-constant">IOModemSerialStreamSync</span> <<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">IOModemSerialStreamSync</span>></span>
- <span class="hljs-constant">IOSerialBSDClient</span> <<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">IOSerialBSDClient</span>></span>
- <span class="hljs-constant">IOUSBDeviceUserClientV2</span> <<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">IOUSBDeviceUserClientV2</span>></span>
Aber leider lässt sich dieser bei mir nicht kompilieren. Und das nur aus dem Code rauszulesen bin ich irgendwie zu doof?!
Wie komme ich also an den richtigen Namen?