(usbspec.h) USB_CONFIGURATION_DESCRIPTOR 结构

USB 客户端驱动程序使用 USB_CONFIGURATION_DESCRIPTOR 结构来保存 USB 定义的配置描述符。 USB 文档库中提供的通用串行总线 3.1 规范中介绍了此结构的成员。 请参阅 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

以 2 毫安为单位指定此设备的电源要求。 仅当在 bmAttributes 中设置第 7 位时,此成员才有效。

注解

如果 wTotalLength 大于 URB 中提供的缓冲区大小,用于保存 (接口、终结点、类和供应商定义的) 检索到的所有描述符,则将返回不完整的数据。 若要检索完整的描述符,需要使用更大的缓冲区重新发送请求。

如果 同时设置了 bmAttributes 位 6 和 7,则设备由总线和总线外部的源供电。

属于此结构但此处未描述的其他成员应被视为不透明,并被视为保留供系统使用。

要求

要求
Header usbspec.h (包括 Usb100.h)

另请参阅

USB 结构

USBD_CreateConfigurationRequest

UsbBuildGetDescriptorRequest