функция 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 может вернуть следующий код ошибки.
Код возврата | Описание |
---|---|
|
Вызывающий объект передал значение NULL в параметре InterfaceHandle . |
Комментарии
Если выходной буфер, на который указывает параметр Buffer , достаточно велик, WinUsb_GetDescriptor создает копию указанного дескриптора в выходной буфер. Если буфер недостаточно велик для хранения данных дескриптора, данные не копируются. Дескриптор создается во время вызова WinUsb_Initialize или может быть получен на этом этапе с устройства.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | winusb.h (включая Winusb.h) |
Библиотека | Winusb.lib |
DLL | Winusb.dll |