HID コレクションを開く

この記事では、HID クライアントが HID クラス ドライバー (HIDClass) と通信して、デバイスの HID コレクションを操作する方法について説明します。

HID クライアントは、次のモードで動作できます。

  • ユーザー モード アプリケーション/ドライバー
  • カーネル モード ドライバー

次のセクションでは、HID クライアントが上記のいずれかのモードを使用して HIDClass と通信する方法を示します。

このセクションでは、ユーザー モード アプリケーションとカーネル モード ドライバーが、HID コレクションを操作する方法について説明します。

一般に、ユーザー モード アプリケーションでは次の処理が行われます。

  • デバイス インストール関数 (SetupDiXxx 関数) を呼び出し、HID コレクションを検索して識別します。

  • CreateFile を呼び出して、HID コレクション上のファイルを開きます。

  • **HidD_**Xxx HID サポート ルーチンを呼び出して、HID コレクションの事前解析されたデータと HID コレクションに関する情報を取得します。

  • ReadFile を呼び出して入力レポートを読み取り、WriteFile を呼び出して出力レポートを送信します。

  • **HidP_**Xxx HID サポート ルーチンを呼び出して HID レポートを解釈します。

一般に、カーネル モード ドライバーは次の処理を行います。

  • HID コレクションを検索して識別します。

    ドライバーが関数またはフィルター ドライバーの場合は、コレクションのデバイス スタックに既にアタッチされています。 ただし、ドライバーがコレクションのデバイス スタックにアタッチされていない場合、ドライバーはプラグ アンド プレイ通知を使用できます。

  • IRP_MJ_CREATE 要求を使用して、HID コレクションを開きます。

  • IOCTL_HID_Xxx 要求を使用して、HID コレクションの事前解析されたデータと HID コレクションに関する情報を取得します。

  • IRP_MJ_READ 要求を使用して入力レポートを読み取り、IRP_MJ_WRITE 要求を使用して出力レポートを送信します。

  • **HidP_**Xxx HID サポート ルーチンを呼び出して HID レポートを解釈します。

関連項目