問題タブ [driverkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - DriverKit ユーザー クライアントをデーモンで開くことはできますか?
Driver Kit で仮想 HID デバイスを構築しています。
デーモンは、ドライバーから送信される HID イベントを生成するために必要であるため、デーモンから仮想デバイスドライバーと通信したいと考えていました。
デーモンを介してドライバー サービスを正常に照合していますが、サービスを開こうとすると、ここに表示されている内容-536870174
から.kIOReturnNotPermitted
これについて私が読んだことによると、デバイス ドライバー ユーザー クライアントはcom.apple.developer.driverkit.userclient-access
、Apple によって権利が付与されたアプリケーションを介してのみ開くことができます。
だから、私の質問:
デーモンを使用して Driver Kit のデバイス ドライバーのユーザー クライアントを開くことは完全に問題外ですか?
com.apple.developer.driverkit.userclient-access
ここで、デーモンとドライバーの間のブローカーとして機能できる資格を持つ中間アプリケーションを使用する唯一のオプションはありますか?
したがって、次のようになります。
デーモン<---xpc 接続--> 中間アプリ <--- ユーザー クライアント --->仮想 HID デバイス
編集:アプリをデーモンとして実行することに関する以下のフィルの回答に追加するには、Appleが書いたガイダンスがここにあります。
macos - DriverKit IOUSBHostInterface の CopyPipe が kIOReturnError (0xe00002bc) で失敗する
私自身の教育のために、DriverKit System Extension を使用して USB オーディオ インターフェイスからオーディオ データを読み込もうとしています。
私IOProviderClass
はIOUSBHostInterface
。正常Open()
にインターフェイスできますが、( ) がCopyPipe()
返されます。パイプをコピーできないのはなぜですか?kIOReturnError
0xe00002bc
インターフェイスを開くことができるようにするには、 、、、、およびキーを明示的に一致させるAppleUSBAudio
必要がありました。このリストは最小限ではない場合があります。IOKitPersonalities
bConfigurationValue
bInterfaceNumber
idVendor
idProduct
bcdDevice
通常はインターフェイスを確認できます (これioreg
は退化した状況だと思いますが、一致するものだけが存在する場合もあります)。他のインターフェースのいくつかにAppleUserUSBHostHIDDevice
子供がいます。これが問題でしょうか?通常、デバイスは USBAudio と HID の両方で問題ありません。私もHIDと一致させようとして失敗しました。