Поделиться через


функция 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

Указывает длину буфера, выделенного вызывающим объектом, в байтах, предоставленного в буфере. Если буфер недостаточно велик для возврата всей встроенной строки, завершаемой значением NULL, подпрограмма не возвращает ничего в буфере. Предоставленный буфер должен быть <= 4093 байта (2^12–3).

Возвращаемое значение

HidD_GetIndexedString возвращает значение TRUE , если возвращается вся строка, завершающаяся значением NULL. В противном случае подпрограмма возвращает значение FALSE. Используйте GetLastError для получения расширенных сведений об ошибке.

Комментарии

Только приложения в пользовательском режиме могут вызывать HidD_GetIndexedString. Драйверы в режиме ядра могут использовать запрос IOCTL_HID_GET_INDEXED_STRING .

Максимально возможное количество символов во внедренной строке зависит от устройства. Для USB-устройств максимальная длина строки составляет 126 символов ширины (не включая завершающий символ NULL).

Элемент iProductструктуры USB_DEVICE_DESCRIPTOR для определенного интерфейса задается универсальным родительским драйвером общего класса USB на основе следующих правил:

  • Если элемент iInterfaceструктуры USB_INTERFACE_DESCRIPTOR для интерфейса является ненулевым, то элементу iProduct структуры USB_DEVICE_DESCRIPTOR интерфейса присваивается элемент iInterface структуры USB_INTERFACE_DESCRIPTOR.

  • Если интерфейс сгруппирован по дескриптору ассоциации интерфейса USB , а член iFunction дескриптора ассоциации интерфейса для интерфейса является ненулевым, элемент iProduct структуры USB_DEVICE_DESCRIPTOR для интерфейса задается как член 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