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


функция WinUsb_GetDescriptor (winusb.h)

Функция WinUsb_GetDescriptor возвращает запрошенный дескриптор. Это синхронная операция.

Синтаксис

BOOL WinUsb_GetDescriptor(
  [in]  WINUSB_INTERFACE_HANDLE InterfaceHandle,
  [in]  UCHAR                   DescriptorType,
  [in]  UCHAR                   Index,
  [in]  USHORT                  LanguageID,
  [out] PUCHAR                  Buffer,
  [in]  ULONG                   BufferLength,
  [out] PULONG                  LengthTransferred
);

Параметры

[in] InterfaceHandle

Непрозрачный дескриптор интерфейса в выбранной конфигурации.

Чтобы получить дескриптор устройства или конфигурации, используйте дескриптор, возвращенный WinUsb_Initialize.

Чтобы получить дескриптор интерфейса первого интерфейса, используйте дескриптор, возвращаемый WinUsb_Initialize.

Чтобы получить дескриптор конечной точки в первом интерфейсе, используйте дескриптор, возвращенный WinUsb_Initialize.

Чтобы получить дескрипторы всех остальных интерфейсов и связанных с ними конечных точек, используйте дескриптор целевого интерфейса, полученный WinUsb_GetAssociatedInterface.

[in] DescriptorType

Значение типа , указывающее тип возвращаемого дескриптора. Этот параметр соответствует полю bDescriptorType стандартного дескриптора устройства, значения которого описаны в спецификации универсальной последовательной шины . Некоторые из этих значений перечислены в описании элемента DescriptorType структуры _URB_CONTROL_DESCRIPTOR_REQUEST .

[in] Index

Индекс дескриптора. Описание индекса дескриптора см. в спецификации универсальной последовательной шины (www.usb.org).

[in] LanguageID

Значение типа , указывающее идентификатор языка, если запрошенный дескриптор является дескриптором строки.

[out] Buffer

Буфер, выделенный вызывающим объектом, который получает запрошенный дескриптор.

[in] BufferLength

Длина буфера (в байтах).

[out] LengthTransferred

Количество байтов, скопированных в буфер.

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

WinUsb_GetDescriptor возвращает значение TRUE , если операция выполнена успешно. В противном случае эта подпрограмма возвращает значение FALSE, и вызывающий объект может получить зарегистрированную ошибку, вызвав Метод GetLastError.

GetLastError может вернуть следующий код ошибки.

Код возврата Описание
ERROR_INVALID_HANDLE
Вызывающий объект передал значение NULL в параметре InterfaceHandle .

Комментарии

Если выходной буфер, на который указывает параметр Buffer , достаточно велик, WinUsb_GetDescriptor создает копию указанного дескриптора в выходной буфер. Если буфер недостаточно велик для хранения данных дескриптора, данные не копируются. Дескриптор создается во время вызова WinUsb_Initialize или может быть получен на этом этапе с устройства.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть winusb.h (включая Winusb.h)
Библиотека Winusb.lib
DLL Winusb.dll

См. также раздел

WinUSB

Функции WinUSB

WinUsb_Initialize

_URB_CONTROL_DESCRIPTOR_REQUEST