問題タブ [rndis]
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.
windows - MS OS 2.0 記述子を使用した複合 RNDIS HID
USB RNDIS と HID 複合デバイスを開発しています。RNDIS デバイスについては、2017 年 4 月付けの Microsoft ドキュメント「Microsoft OS 2.0 Descriptors Specification」( https://docs.microsoft.com/en-us/windowsの下部にリンク) で説明されている MS OS 2.0 Descriptors を使用しています。 -hardware/drivers/usbcon/microsoft-defined-usb-descriptors )。Windows 10 ホストで作業しています。
両方のデバイスが認識されますが、HID デバイスのみが正しく認識されます。Windows は RNDIS デバイスをシリアル ポートに割り当てます。
ここに関連するいくつかがあります。デバイス記述子:
構成記述子
BOS 記述子
MS 互換性記述子:
デバイスを厳密に RNDIS デバイスとして構築すると、すべてが期待どおりに機能します。デバイスは Windows によって RNDIS デバイスとして認識されます。ドライバーをインストールしません。RNDIS のみのデバイスに対して行った変更の概要を次に示します (必要なサイズの変更も行われました)。
- デバイス記述子のデバイス クラス フィールドを変更する
- 構成記述子の IAD および HID セクションを削除します。
- 構成記述子の bNumInterfaces カウントを 2 に減らします。
- MS 互換性記述子から構成サブセット ヘッダーと関数サブセット ヘッダーを削除する
構成サブセット ヘッダーと機能サブセット ヘッダーを MS 互換性記述子に残すと、Windows は上記のように応答し、RNDIS デバイスをシリアル ポートに割り当てます。
さまざまな順列を試しましたが、このポイントを超えることはできません。カスタム デバイス用の INF を作成しようとしたことはまだありませんが、それは避けたいことです。
ヘルプや提案はありますか?
ありがとう。