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


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

См. также

СТРУКТУРЫ USB

USBD_CreateConfigurationRequest

UsbBuildGetDescriptorRequest