わかりました。uControllerプロジェクト(ポインティングデバイス)に取り組んでいます。ユーザースペースドライバーを作成しようとしていますIOkit.framework。
idProductとidVendorを使用して、IOUSBInterfaceInterface300objを取得できます
問題は私が試してみるときです
kr = (*intf)->USBInterfaceOpen(intf);
で失敗します。kIOReturnExclusiveAccessおそらく、HIDマネージャがすでに排他的アクセスでデバイスを開いているためです。
ここでは、コードレスkextがHIDManagerによるデバイスの乗っ取りを防ぐことができると述べています
MacでのUSB(HID)割り込みエンドポイントの読み取りと書き込み
idVendorとを使用してkextを作成し、idProductkextloadを使用してロードしました。kextloadから「正常にロード」されました
しかし、どういうわけか私はまだインターフェイスを開くことができませんか?私は何か間違ったことをしていますか?
ファイル名Info.plist(idProductとidVendorを調整したその投稿と同じコンテンツ)を作成してkextを作成し、MyUSBDeviceTest.kextという名前のフォルダーに配置しました。
次に、所有者をroot:wheelに変更し、次にkextをコピーします/System/Library/Extensions。
sudo kextload -vt /System/Library/Extensions/MyUSBDeviceTest.kext
デバイスを再起動して再接続しようとしましたが、HIDシステムからインターフェイスを取得できません