<!--
{
  "availability" : [
    "DriverKit: 19.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "USBDriverKit",
  "identifier" : "/documentation/USBDriverKit/IOUSBConfigurationDescriptor",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "USBDriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOUSBConfigurationDescriptor"
  },
  "title" : "IOUSBConfigurationDescriptor"
}
-->

# IOUSBConfigurationDescriptor

The structure for storing a USB configuration descriptor.

```
struct IOUSBConfigurationDescriptor;
```

## Overview

This descriptor contains information about a specific configuration of a device, including the interfaces that configuration provides. This structure has a variable length, so it defines only the known fields. Use the `wTotalLength` field to read the entire descriptor.

For more information about this descriptor type, see section 9.6.3 of the USB 2.0 specification at <http://www.usb.org>.

## Topics

### Getting the Descriptor Properties

[`uint8_t bLength;`](/documentation/USBDriverKit/IOUSBConfigurationDescriptor/bLength)

The size of the descriptor in bytes.

[`uint8_t bDescriptorType;`](/documentation/USBDriverKit/IOUSBConfigurationDescriptor/bDescriptorType)

The type of the descriptor.

[`uint16_t wTotalLength;`](/documentation/USBDriverKit/IOUSBConfigurationDescriptor/wTotalLength)

The total length of the descriptor, including the length of all related interface, endpoint, and vendor-specific descriptors.

[`uint8_t bNumInterfaces;`](/documentation/USBDriverKit/IOUSBConfigurationDescriptor/bNumInterfaces)

The number of interfaces this configuration supports.

[`uint8_t bConfigurationValue;`](/documentation/USBDriverKit/IOUSBConfigurationDescriptor/bConfigurationValue)

The value to use when selecting this configuration.

[`uint8_t iConfiguration;`](/documentation/USBDriverKit/IOUSBConfigurationDescriptor/iConfiguration)

The index of the string descriptor that describes this configuration.

[`uint8_t bmAttributes;`](/documentation/USBDriverKit/IOUSBConfigurationDescriptor/bmAttributes)

A bitmask indicating the configuration’s characteristics.

[`uint8_t MaxPower;`](/documentation/USBDriverKit/IOUSBConfigurationDescriptor/MaxPower)

The maximum power consumption of the USB device expressed in 2mA units.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)