---
title: USB Device Descriptors
framework: kernel
role: collectionGroup
role_heading: API Collection
path: kernel/hardware_families/usb/usb_device_descriptors
---

# USB Device Descriptors

Structures and functions for working with device descriptors.

## Topics

### Descriptor Fundamentals

- [IOUSBDescriptorHeader](kernel/iousbdescriptorheader.md)
- [IOUSBDescriptor](kernel/iousbdescriptor.md)
- [tIOUSBDescriptorType](kernel/tiousbdescriptortype.md)
- [tIOUSBDescriptorSize](kernel/tiousbdescriptorsize.md)
- [IOUSBDescriptorHeaderPtr](kernel/iousbdescriptorheaderptr.md)

### Device Descriptors

- [IOUSBDeviceDescriptor](kernel/iousbdevicedescriptor.md)
- [IOUSBDeviceDescriptorPtr](kernel/iousbdevicedescriptorptr.md)
- [IOUSBDeviceQualifierDescriptor](kernel/iousbdevicequalifierdescriptor.md)
- [IOUSBDeviceQualifierDescriptorPtr](kernel/iousbdevicequalifierdescriptorptr.md)

### Configuration Descriptors

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

### Interface Descriptors

- [IOUSBInterfaceDescriptor](kernel/iousbinterfacedescriptor.md)
- [IOUSBInterfaceDescriptorPtr](kernel/iousbinterfacedescriptorptr.md)
- [IOUSBInterfaceAssociationDescriptor](kernel/iousbinterfaceassociationdescriptor.md)
- [IOUSBInterfaceAssociationDescriptorPtr](kernel/iousbinterfaceassociationdescriptorptr.md)

### Endpoint Descriptors

- [IOUSBEndpointDescriptor](kernel/iousbendpointdescriptor.md)
- [IOUSBStandardEndpointDescriptors](kernel/iousbstandardendpointdescriptors.md)
- [IOUSBEndpointDescriptorPtr](kernel/iousbendpointdescriptorptr.md)
- [IOUSBEndpointProperties](kernel/iousbendpointproperties.md)
- [IOUSBEndpointPropertiesPtr](kernel/iousbendpointpropertiesptr.md)
- [IOUSBGetEndpointDescriptorOptions](kernel/iousbgetendpointdescriptoroptions.md)

### Capability Descriptors

- [IOUSBPlatformCapabilityDescriptor](kernel/iousbplatformcapabilitydescriptor.md)
- [IOUSBPlatformCapabilityDescriptorPtr](kernel/iousbplatformcapabilitydescriptorptr.md)
- [IOUSBDeviceCapabilityBillboard](kernel/iousbdevicecapabilitybillboard.md)
- [IOUSBDeviceCapabilityBillboardAltConfig](kernel/iousbdevicecapabilitybillboardaltconfig.md)
- [IOUSBDeviceCapabilityBillboardAltConfigCompatibility](kernel/iousbdevicecapabilitybillboardaltconfigcompatibility.md)
- [IOUSBDeviceCapabilityBillboardAltConfigPtr](kernel/iousbdevicecapabilitybillboardaltconfigptr.md)
- [IOUSBDeviceCapabilityBillboardAltMode](kernel/iousbdevicecapabilitybillboardaltmode.md)
- [IOUSBDeviceCapabilityBillboardAltModePtr](kernel/iousbdevicecapabilitybillboardaltmodeptr.md)
- [IOUSBDeviceCapabilityBillboardPtr](kernel/iousbdevicecapabilitybillboardptr.md)
- [IOUSBDeviceCapabilityContainerID](kernel/iousbdevicecapabilitycontainerid.md)
- [IOUSBDeviceCapabilityContainerIDPtr](kernel/iousbdevicecapabilitycontaineridptr.md)
- [IOUSBDeviceCapabilityDescriptorHeader](kernel/iousbdevicecapabilitydescriptorheader.md)
- [IOUSBDeviceCapabilityDescriptorHeaderPtr](kernel/iousbdevicecapabilitydescriptorheaderptr.md)
- [IOUSBDeviceCapabilitySuperSpeedPlusUSB](kernel/iousbdevicecapabilitysuperspeedplususb.md)
- [IOUSBDeviceCapabilitySuperSpeedPlusUSBPtr](kernel/iousbdevicecapabilitysuperspeedplususbptr.md)
- [IOUSBDeviceCapabilitySuperSpeedUSB](kernel/iousbdevicecapabilitysuperspeedusb.md)
- [IOUSBDeviceCapabilitySuperSpeedUSBPtr](kernel/iousbdevicecapabilitysuperspeedusbptr.md)
- [IOUSBDeviceCapabilityUSB2Extension](kernel/iousbdevicecapabilityusb2extension.md)
- [IOUSBDeviceCapabilityUSB2ExtensionPtr](kernel/iousbdevicecapabilityusb2extensionptr.md)

### USB Descriptors

- [IOUSBStringDescriptor](kernel/iousbstringdescriptor.md)
- [IOUSBStringDescriptorPtr](kernel/iousbstringdescriptorptr.md)
- [IOUSBSuperSpeedEndpointCompanionDescriptor](kernel/iousbsuperspeedendpointcompaniondescriptor.md)
- [IOUSBSuperSpeedEndpointCompanionDescriptorPtr](kernel/iousbsuperspeedendpointcompaniondescriptorptr.md)
- [IOUSBSuperSpeedHubDescriptor](kernel/iousbsuperspeedhubdescriptor.md)
- [IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor](kernel/iousbsuperspeedplusisochronousendpointcompaniondescriptor.md)
- [IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptorPtr](kernel/iousbsuperspeedplusisochronousendpointcompaniondescriptorptr.md)

### HID Descriptors

- [IOUSBHIDData](kernel/iousbhiddata.md)
- [IOUSBHIDDataPtr](kernel/iousbhiddataptr.md)
- [IOUSBHIDDescriptor](kernel/iousbhiddescriptor.md)
- [IOUSBHIDDescriptorPtr](kernel/iousbhiddescriptorptr.md)
- [IOUSBHIDReportDesc](kernel/iousbhidreportdesc.md)
- [IOUSBHIDReportDescPtr](kernel/iousbhidreportdescptr.md)

### Device Firmware Update Descriptors

- [IOUSBDFUDescriptor](kernel/iousbdfudescriptor.md)
- [IOUSBDFUDescriptorPtr](kernel/iousbdfudescriptorptr.md)

### BOS Descriptors

- [IOUSBBOSDescriptor](kernel/iousbbosdescriptor.md)
- [IOUSBBOSDescriptorPtr](kernel/iousbbosdescriptorptr.md)

### Hub Descriptors

- [IOUSB20HubDescriptor](kernel/iousb20hubdescriptor.md)
- [IOUSB3HubDescriptor](kernel/iousb3hubdescriptor.md)
- [IOUSBHubDescriptor](kernel/iousbhubdescriptor.md)
- [IOUSBHubPortReEnumerateParam](kernel/iousbhubportreenumerateparam.md)

## See Also

### USB Specifications

- [IOUSBIsochronousFrame](kernel/iousbisochronousframe.md)
- [Additional Specifications](kernel/hardware_families/usb/additional_specifications.md)
