JAJA452A january 2011 – may 2023
概要
システム上のデバイスのリスト内で、この VID/PID およびシリアル番号に関連付けられている、インデックス deviceIndex のデバイスを見つけようとします。見つかった場合は、デバイスへのハンドルを開いて pstrHidDevice 構造体に格納し、構造体内の他のフィールドもロードします。
目的を達成するには、HID_Open() に 2 つの追加パラメータが必要です。1 つは totalDevNum で、vid と pid で記述されるデバイス上の HID インターフェイスの数です。通常、開発者はこれをすでに知っています。そうでない場合は、HID_GetNumOfInterfaces() を呼び出すことができます。もう 1 つの必須パラメータは、totalSerNum で、この VID/PID に一致するシステム上のシリアル番号 (物理デバイス) の総数です。
deviceIndex は 0 から totalDevNum-1 までの数値です。vid、pid、および serialNumber を使用して Windows HID デバイス・リストをフィルタリングすると、リストは特定の物理的 USB デバイスに含まれる HID インターフェイスを表す HID デバイスに実質的に縮小されます。残るのは、この中から 1 つのインターフェイスの選択することだけですが、これを行うのが deviceIndex です。これらの HID デバイスの順序 (0 から totalDevNum) は、HID インターフェイスがデバイスの USB ディスクリプタで宣言された順序と同じです (セクション 3.5 を参照)。
vid と pid で記述されるデバイスに HID インターフェイスが 1 つしかない場合、deviceIndex は単純に 0 にすることができます。
この関数は、このデバイスが実際に HID デバイスであり、別のタイプの USB デバイスではないことを想定しています。
パラメータ
strHidDevice* pstrHidDevice | 新しく開いたデバイスを格納するための構造体。 |
WORD vid | オープンするデバイスの 16 ビットのベンダ ID。 |
WORD pid | オープンするデバイスの 16 ビットのプロダクト ID。 |
DWORD deviceIndex | この VID/PID とシリアル番号の使用可能なデバイス内のインデックス。 |
char serialNumber[SERNUM_LEN] | 検索するデバイスのシリアル番号の、サイズ SERNUM_LEN (40) の文字列。 |
DWORD totalDevNum | この VID/PID とシリアル番号で記述される物理デバイスの HID インターフェイスの総数。 |
DWORD totalSerNum | この VID/PID で使用可能な物理的 USB デバイスの総数 |
戻り値 | HID_DEVICE_SUCCESSデバイスが見つかり、開かれました。 |
HID_DEVICE_ALREADY_OPENEDデバイスはすでに開かれています。 | |
HID_DEVICE_NOT_FOUNDこの VID/PID/index で識別されたデバイスが見つかりませんでした。 |