Windows 7 で作業しているチーム内で汎用 USB HID デバイス用の制御ソフトウェアを作成しています。インターンとしての地位のため、私の可能性は限られています。
- ソフトウェアは Windows で動作する必要があります
- ソフトウェアは、Windows が提供するデフォルトの HID ドライバーを使用する必要があります。
私の問題は、HidUSB ドライバー (Zadig によると) を使用しているときにデバイスにアクセスしようとすると、デバイスが実際にデータを送信している間、割り込み転送の読み取り試行が常にタイムアウトになることです。HIDAPIを使用するかどうか、libusbを使用するかどうかにかかわらず、デバイスへの書き込みは常に機能しますが、読み取りのみが失敗します。(これはプリミティブなデバイス atm であり、最終的なパケット データの指定さえ行われていません。現在、ホストに ON または OFF の文字列を送信するだけで、デバイスに書き込むと LED の状態が 7 色とオフ状態の間で変化します。 、確実に機能するように)
WindowsのドライバーをZadigのWinUSBドライバーに置き換えると、/devを読み取るだけでlibusb(およびhidapiはデバイスを開くことができなくなります)およびLinuxで動作するため、デバイスに障害があるとは考えられません/hidraw もデータを正常に返します。HID と USB の仕様も読みましたが、デバイス記述子には USB パケットサイズが 8 であると記載されていますが、HID 入力レポートのサイズは 20 に制限されていますが、デバイスが使用するレポート ID はわかりません。
USBPcap と Wireshark を使用して Windows 通信を確認すると、デバイスの処理で気付く唯一の違いは、WinUSB ドライバーで使用した場合の CC と比較して、データを要求するホスト パケットが HidUSB ドライバーに対して 00 で満たされていることです。
記録のために、私はすでにlibusb、hidapi、HidLibraryを試しましたが、チーム内の誰も今何をすべきか考えていません.
また、Windows が HID キーボードとマウスへのアクセスを無効にしていることも読みましたが、デバイス構成が USB マウスになってしまう実際の例は見つかりませんでした。デバイス マネージャーは、HID 準拠デバイスまたはその呼び出し方法 (ここでは Win7 をローカライズ) として 1 回、USB 入力デバイスとして 1 回、HID tho の下にデバイスを 2 回リストしますが、マウスまたはキーボード オプションにはリストしません。