HID コレクションを検索して開く
この記事では、ユーザーモード アプリケーションとカーネルモード ドライバーが最上位レベルの HID コレクションを検索して開く方法について説明します。
ユーザーモード アプリケーション
Microsoft Windows には、HIDClass デバイスを検索して識別するためのデバイス インストール ルーチン (SetupDiXxx 関数) が用意されています。 また、HID コレクションを初期化して接続するその他の Win32 関数も用意されています。
ユーザー モード アプリケーションが読み込まれると、次の一連の操作が実行されます。
HidD_GetHidGuid を呼び出して、HIDClass デバイスのシステム定義 GUID を取得します。
SetupDiGetClassDevs を呼び出して、システムに現在インストールされているすべての HID コレクションでサポートされているデバイス インターフェイスを記述する不透明なデバイス情報セットへのハンドルを取得します。 アプリケーションでは、SetupDiGetClassDevs に渡される Flags パラメーターに DIGCF_PRESENT と DIGCF_DEVICEINTERFACE を指定する必要があります。
SetupDiEnumDeviceInterfaces を繰り返し呼び出して、使用可能なすべてのインターフェイス情報を取得します。
SetupDiGetDeviceInterfaceDetail を呼び出して、各コレクションのインターフェイス情報を SP_INTERFACE_DEVICE_DETAIL_DATA 構造体として書式設定します。 この構造体の DevicePath メンバーには、アプリケーションが WIN32 関数 CreateFile を使用して HID コレクションへのファイル ハンドルを取得するために使用するユーザー モード名が含まれています。
CreateFile を呼び出して、HID コレクションへのファイル ハンドルを取得します。
カーネルモード ドライバー
カーネルモード ドライバーが機能ドライバーまたはフィルター ドライバーである場合は、HID コレクションのデバイス スタックにデバイス オブジェクトがアタッチされます。 ドライバーは、デバイスを開くために作成要求のみを使用する必要があります。
ドライバーが機能ドライバーでもフィルター ドライバーでもない場合は、通常、プラグ アンド プレイ通知を使用してコレクションを検索します。 ドライバーは、コレクションを見つけると作成要求を使用してコレクションを開きます。