ヒューマン インターフェイス デバイス (HID) 用の Windows デバイス ドライバーを開発する
ヒューマン インターフェイス デバイス (HID) 用の Windows デバイス ドライバーの開発について説明します。 HID は、キーボード、マウス、ゲーム コントローラーなどの HID デバイスをサポートする汎用 USB ドライバーのデバイス クラス定義です。 HID より前のデバイスでは、マウスとキーボードに対して厳密に定義されたプロトコルのみを使用できました。 ハードウェアのイノベーションを起こすには、既存のプロトコルでデータをオーバーロードするか、独自の特殊なドライバーを使用して非標準ハードウェアを作成する必要がありました。 HID は、ブート モード デバイスをサポートすると同時に、拡張可能で標準化され、簡単にプログラミングできるインターフェイスを通じてイノベーションのサポートを追加します。
HID デバイスの例としては、英数字ディスプレイ、バーコード リーダー、スピーカー、ヘッドセット、補助ディスプレイ、センサーなどが挙げられます。 ハードウェア ベンダーは、独自のデバイスにも HID を使用します。
HID は最初 USB を使用するように設計されましたが、バスに依存しないように設計されています。 低待機時間で低帯域幅のデバイス向けに設計されましたが、基になるトランスポートの速度を柔軟に指定できます。 USB-IF は、1996 年に HID over USB の仕様を承認しました。 さらに、他のトランスポートに対する HID のサポートも間もなく続きました。 現在サポートされているトランスポートの詳細については、Windows でサポートされている HID トランスポートに関するページを参照してください。 ベンダー固有のトランスポートは、カスタム トランスポート ドライバー経由でも許可されます。
HID の概念
HID は、レポート記述子とレポートという 2 つの基本的な概念で構成されています。 レポートは、デバイスとソフトウェア クライアントの間で交換される実際のデータです。 レポート記述子は、デバイスによってサポートされるデータの形式と意味を説明します。
Reports
アプリケーションと HID デバイスは、レポートを介してデータを交換します。 レポートには、次の 3 つの種類があります。
レポートの種類 | 説明 |
---|---|
入力レポート | 通常、コントロールの状態が変化したときに、HID デバイスからアプリケーションに送信されるデータ。 |
出力レポート | アプリケーションから HID デバイス (キーボードの LED など) に送信されるデータ。 |
機能レポート | 手動で読み取りや書き込みができるデータ。通常、構成情報に関連します。 |
レポート記述子に定義されている最上位レベルの各コレクションには、各型のレポートをゼロ個以上含めることができます。
使用法テーブル
USB-IF ワーキング グループは、HID デバイスで実行できることを説明するレポート記述子の一部である HID 使用法テーブルを公開します。 これらの HID 使用法テーブルには、レポート記述子内の特定のアイテムの意図された意味と使用方法を説明する使用法の説明が含まれています。 たとえば、使用法はマウスの左ボタンに対して定義されます。 レポート記述子では、アプリケーションがマウスの左ボタンの現在の状態を見つけることができるレポート内の場所を定義できます。 使用法テーブルは、使用法ページと呼ばれる複数の名前空間に分割されています。 使用法の各ページには、ドキュメントを整理するのに役立つ、関連する使用法のセットが説明されています。 使用法と使用法ページの組み合わせにより、使用法テーブル内の特定の使用法を一意に識別する使用法 ID が定義されます。