問題タブ [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.

0 投票する
1 に答える
487 参照

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 を作成しようとしたことはまだありませんが、それは避けたいことです。

ヘルプや提案はありますか?

ありがとう。