HidD_GetIndexedString函数 (hidsdi.h)

HidD_GetIndexedString 例程从 顶级集合返回指定的嵌入字符串。

语法

BOOLEAN HidD_GetIndexedString(
  [in]  HANDLE HidDeviceObject,
  [in]  ULONG  StringIndex,
  [out] PVOID  Buffer,
  [in]  ULONG  BufferLength
);

参数

[in] HidDeviceObject

指定顶级集合的打开句柄。

[in] StringIndex

指定嵌入字符串的设备特定索引。

[out] Buffer

指向调用方分配的缓冲区的指针,该例程用于返回由 StringIndex指定的嵌入字符串。 该例程以可读格式返回以 NULL 结尾的宽字符字符串。

[in] BufferLength

指定在 Buffer提供的调用方分配的缓冲区的长度(以字节为单位)。 如果缓冲区不够大,无法返回整个以 NULL 结尾的嵌入字符串,则例程在缓冲区中不返回任何内容。 提供的缓冲区必须 <= 4093 字节(2^12 – 3)。

返回值

如果成功返回整个以 NULL 结尾的嵌入式字符串,HidD_GetIndexedString 返回 true。 否则,例程返回 FALSE。 使用 GetLastError 获取扩展的错误信息。

言论

只有用户模式应用程序才能调用 HidD_GetIndexedString。 内核模式驱动程序可以使用 IOCTL_HID_GET_INDEXED_STRING 请求。

嵌入字符串中可能的最大字符数特定于设备。 对于 USB 设备,最大字符串长度为 126 宽字符(不包括终止 NULL 字符)。

iProduct 特定接口 USB_DEVICE_DESCRIPTOR 结构的成员由 USB 通用类通用父驱动程序 根据以下规则设置:

  • 如果接口 USB_INTERFACE_DESCRIPTOR 结构的 iInterface 成员为非零,则接口USB_DEVICE_DESCRIPTOR结构的 iProduct 成员设置为USB_INTERFACE_DESCRIPTOR结构的 iInterface 成员。

  • 如果接口由 USB 接口关联描述符 分组,并且接口的接口关联描述符的 iFunction 成员为非零,则接口USB_DEVICE_DESCRIPTOR结构的 iProduct 成员设置为接口关联描述符 iFunction 成员。

如果提供的缓冲区未 <= 4093 字节(2^12 – 3),则调用可能会失败(具体取决于基础协议,HID/Bluetooth/SPI),错误代码ERROR_GEN_FAILURE(0x0000001f)

有关详细信息,请参阅 HID 集合

要求

要求 价值
最低支持的客户端 在 Windows 2000 及更高版本的 Windows 中可用。
目标平台 普遍
标头 hidsdi.h (包括 Hidsdi.h)
Hid.lib
DLL Hid.dll

另请参阅

HidD_GetManufacturerString

HidD_GetPhysicalDescriptor

HidD_GetProductString

HidD_GetSerialNumberString

IOCTL_HID_GET_INDEXED_STRING

IOCTL_HID_GET_MANUFACTURER_STRING

IOCTL_HID_GET_PRODUCT_STRING

IOCTL_HID_GET_SERIALNUMBER_STRING