Share via


USB_CONFIGURATION_DESCRIPTOR (Compact 2013)

3/26/2014

This structure describes information about a specific USB device configuration. USB devices can support several different configurations in which different interfaces on the device might behave in different ways.

Syntax

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

Members

  • bLength
    Size, in bytes, of this structure.
  • bDescriptorType
    Constant value USB_CONFIGURATION_DESCRIPTOR_TYPE.
  • wTotalLength
    Total length of data returned for this configuration. This includes the combined length of all structures - USB_CONFIGURATION_DESCRIPTOR, USB_INTERFACE, USB_ENDPOINT_DESCRIPTOR and any class or vendor-specific structures - returned as part of the configuration information.
  • bNumInterfaces
    Number of interfaces supported as part of this configuration.
  • bConfigurationValue
    Configuration's value, used when the USB system software of a USB device driver requests this configuration.
  • iConfiguration
    Index of a string descriptor describing this configuration.
  • bmAttributes
    Eight bits of configuration characteristics. Bits zero to four are reserved and should be zero (0). If bit five is set to 1, this configuration supports remote wakeup. If bit six is set to 1, then in this configuration the USB device uses power both from the bus and from an external source, such as a battery or wall socket. The MaxPower member gives the amount of bus power required during usual operation.
  • MaxPower
    Amount of power required in this configuration when the USB device is fully operational, expressed in units of 2 milliamps. For example, a value of 50 represents power consumption of 100 mA. This member is used if the bmAttributes member indicates that the device requires bus power.

Remarks

The UHCI driver software always chooses the first available configuration for a USB device, regardless of whether that configuration is suitable for use on the bus due to power limitations, bandwidth availability, and so on.

Requirements

Header

usb100.h

See Also

Reference

USB Driver Structures
USB_ENDPOINT_DESCRIPTOR
USB_INTERFACE