структура 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) |