структура 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
Указывает растровое изображение для описания поведения этой конфигурации. Биты описываются и задаются в маленьком порядке.
Бит | Значение |
---|---|
0 - 4 | Скрытный. |
5 | Конфигурация поддерживает удаленное пробуждение. |
6 | Конфигурация является автономной и не использует питание от шины. |
7 | Конфигурация работает на шине. |
MaxPower
Указывает требования к мощности этого устройства в двух миллиамперах единиц. Этот элемент действителен только в том случае, если в bmAttributesзадано семь битов.
Замечания
Если wTotalLength больше размера буфера, предоставленного в URB, для хранения всех дескрипторов, полученных (интерфейс, конечная точка, класс и поставщик), будут возвращены неполные данные. Чтобы получить полные дескрипторы, запрос потребуется повторно отправить с большим буфером.
Если bmAttributes биты шесть и семь заданы, устройство работает как автобусом, так и источником, внешним для шины.
Другие члены, которые являются частью этой структуры, но не описаны здесь, должны рассматриваться как непрозрачные и считаются зарезервированными для использования системы.
Требования
Требование | Ценность |
---|---|
заголовка | usbspec.h (include Usb100.h) |