ZHCACO6A january 2011 – may 2023
说明
尝试在系统上与此 VID/PID 和序列号关联的器件列表中查找索引为 deviceIndex 的器件。如果找到,它会打开该器件的句柄,将其存储在 pstrHidDevice 结构中,并加载该结构中的其他字段。
为了实现其目标,HID_Open() 需要另外两个参数。一个参数是 totalDevNum,这是 vid 和 pid 描述的器件上的 HID 接口数量。开发人员通常已经知道这个数值。如果不知道,则可以调用 HID_GetNumOfInterfaces()。另一个必需的参数是 totalSerNum,它是系统上与此 VID/PID 匹配的序列号(物理器件)总数。
deviceIndex 是一个从 0 到 totalDevNum-1 的数字。使用 vid、pid 和 serialNumber 筛选 Windows HID 器件列表后,该列表实际上会简化为仅包含 HID 器件,这些器件代表着特定物理 USB 器件中包含的 HID 接口。剩下的就是选择其中一个接口,这就是 deviceIndex 的功能。这些 HID 器件的顺序(从 0 到 totalDevNum)与在器件的 USB 描述符中声明 HID 接口的顺序相同(请参阅 节 3.5)。
如果 vid 和 pid 描述的器件中只有一个 HID 接口,deviceIndex 就为 0。
该函数会假定此器件实际上是 HID 器件,而不是其他类型的 USB 器件。
参数
strHidDevice* pstrHidDevice | 包含新打开的器件的结构。 |
WORD vid | 要打开的器件的 16 位供应商 ID。 |
WORD pid | 要打开的器件的 16 位米6体育平台手机版_好二三四 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/索引标识的器件。 |