3

わかりました。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システムからインターフェイスを取得できません

4

0 に答える 0