---
title: IOUSBConfigurationDescriptor
framework: kernel
role: symbol
role_heading: Type Alias
path: kernel/iousbconfigurationdescriptor
---

# IOUSBConfigurationDescriptor

The structure for storing a USB configuration descriptor.

## Declaration

```occ
typedef struct IOUSBConfigurationDescriptor IOUSBConfigurationDescriptor;
```

## Discussion

Discussion 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 USB 3.2, 9.6.3.

## Topics

### Getting the Properties

- [bLength](kernel/iousbconfigurationdescriptor/1546137-blength.md)
- [bDescriptorType](kernel/iousbconfigurationdescriptor/1546155-bdescriptortype.md)
- [wTotalLength](kernel/iousbconfigurationdescriptor/1546253-wtotallength.md)
- [bNumInterfaces](kernel/iousbconfigurationdescriptor/1546162-bnuminterfaces.md)
- [bConfigurationValue](kernel/iousbconfigurationdescriptor/1546567-bconfigurationvalue.md)
- [iConfiguration](kernel/iousbconfigurationdescriptor/1546218-iconfiguration.md)
- [bmAttributes](kernel/iousbconfigurationdescriptor/1546539-bmattributes.md)
- [MaxPower](kernel/iousbconfigurationdescriptor/1545938-maxpower.md)

## See Also

### Configuration Descriptors

- [IOUSBConfigurationDescHeader](kernel/iousbconfigurationdescheader.md)
- [IOUSBConfigurationDescriptorPtr](kernel/iousbconfigurationdescriptorptr.md)
- [IOUSBConfigurationDescHeaderPtr](kernel/iousbconfigurationdescheaderptr.md)

### Related Documentation

- [IOUSBConfigurationDescriptor](iokit/usb_h_user-space/iousbconfigurationdescriptor.md)
