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 レポートを解釈します。