структура USB_CONFIGURATION_DESCRIPTOR (usbspec.h)

Структура USB_CONFIGURATION_DESCRIPTOR используется драйверами USB-клиента для хранения дескриптора конфигурации, определяемого USB. Элементы этой структуры описаны в спецификации универсальной последовательной шины 3.1, доступной в библиотеке документов USB. См. раздел 9.6.3.

Синтаксис

typedef struct _USB_CONFIGURATION_DESCRIPTOR {
  UCHAR  bLength;
  UCHAR  bDescriptorType;
  USHORT wTotalLength;
  UCHAR  bNumInterfaces;
  UCHAR  bConfigurationValue;
  UCHAR  iConfiguration;
  UCHAR  bmAttributes;
  UCHAR  MaxPower;
} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR;

Члены

bLength

Задает длину данной структуры в байтах.

bDescriptorType

Указывает тип дескриптора. Должно быть задано значение USB_CONFIGURATION_DESCRIPTOR_TYPE.

wTotalLength

Указывает общую длину (в байтах) всех данных для конфигурации. Длина включает все дескрипторы интерфейса, конечной точки, класса или поставщика, возвращаемые с помощью дескриптора конфигурации.

bNumInterfaces

Указывает общее количество интерфейсов, поддерживаемых этой конфигурацией.

bConfigurationValue

Содержит значение, используемое для выбора конфигурации. Это значение передается в запрос USB SetConfiguration , как описано в версии 1.1 спецификации универсальной последовательной шины. Драйвер порта в настоящее время не предоставляет службу, которая позволяет драйверам более высокого уровня задавать конфигурацию.

iConfiguration

Задает определяемый устройством индекс дескриптора строки для этой конфигурации.

bmAttributes

Указывает растровое изображение для описания поведения этой конфигурации. Биты описываются и задаются в порядке байтов.

bit Значение
0 - 4 Зарезервировано.
5 Конфигурация поддерживает удаленный пробуждение.
6 Конфигурация работает с автономным питанием и не использует питание от шины.
7 Конфигурация питается от шины.

MaxPower

Указывает требования к энергопотреблению этого устройства в двух миллиамперных единицах. Этот элемент действителен, только если бит семь задан в bmAttributes.

Комментарии

Если wTotalLength больше размера буфера, предоставленного в URB для хранения всех извлеченных дескрипторов (интерфейс, конечная точка, класс и определенный поставщиком), будут возвращены неполные данные. Чтобы получить полные дескрипторы, запрос потребуется повторно отправить с большим буфером.

Если заданы биты bmAttributes шесть и семь, устройство питается как от шины, так и от источника, внешнего по сравнению с шиной.

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

Требования

Требование Значение
Заголовок usbspec.h (включая Usb100.h)

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

Структуры USB

USBD_CreateConfigurationRequest

UsbBuildGetDescriptorRequest