---
title: USB Device Descriptors
framework: USBDriverKit
role: collectionGroup
role_heading: API Collection
path: usbdriverkit/usb-device-descriptors
---

# USB Device Descriptors

Determine the capabilities and configuration of a device using descriptors from the USB specification.

## Topics

### Descriptor Fundamentals

- [IOUSBDescriptorHeader](usbdriverkit/iousbdescriptorheader.md)
- [IOUSBDescriptor](usbdriverkit/iousbdescriptor.md)
- [tIOUSBDescriptorType](usbdriverkit/tiousbdescriptortype.md)
- [tIOUSBDescriptorSize](usbdriverkit/tiousbdescriptorsize.md)
- [Descriptor Utilities](usbdriverkit/descriptor-utilities.md)

### Device Descriptors

- [IOUSBDeviceDescriptor](usbdriverkit/iousbdevicedescriptor.md)
- [IOUSBDeviceQualifierDescriptor](usbdriverkit/iousbdevicequalifierdescriptor.md)
- [Apple’s Vendor ID](usbdriverkit/apple_s_vendor_id-enum.md)

### Configuration Descriptors

- [IOUSBConfigurationDescriptor](usbdriverkit/iousbconfigurationdescriptor.md)
- [IOUSBConfigurationDescHeader](usbdriverkit/iousbconfigurationdescheader.md)
- [Power Configuration Settings](usbdriverkit/power_configuration_settings-enum.md)

### Interface Descriptors

- [IOUSBInterfaceDescriptor](usbdriverkit/iousbinterfacedescriptor.md)
- [IOUSBInterfaceAssociationDescriptor](usbdriverkit/iousbinterfaceassociationdescriptor.md)

### Endpoint Descriptors

- [IOUSBEndpointDescriptor](usbdriverkit/iousbendpointdescriptor.md)
- [IOUSBSuperSpeedEndpointCompanionDescriptor](usbdriverkit/iousbsuperspeedendpointcompaniondescriptor.md)
- [IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor](usbdriverkit/iousbsuperspeedplusisochronousendpointcompaniondescriptor.md)
- [tIOUSBEndpointType](usbdriverkit/tiousbendpointtype.md)
- [Endpoint Attributes](usbdriverkit/endpoint_attributes-enum.md)
- [SuperSpeed USB Endpoint Descriptor Options](usbdriverkit/superspeed_usb_endpoint_descript-enum.md)
- [tIOUSBEndpointDirection](usbdriverkit/tiousbendpointdirection.md)
- [tIOUSBEndpointSynchronizationType](usbdriverkit/tiousbendpointsynchronizationtype.md)
- [tIOUSBEndpointUsageType](usbdriverkit/tiousbendpointusagetype.md)
- [tIOUSBLanguageID](usbdriverkit/tiousblanguageid.md)

### String Descriptor

- [IOUSBStringDescriptor](usbdriverkit/iousbstringdescriptor.md)

### Capability Descriptors

- [IOUSBBOSDescriptor](usbdriverkit/iousbbosdescriptor.md)
- [IOUSBDeviceCapabilityDescriptorHeader](usbdriverkit/iousbdevicecapabilitydescriptorheader.md)
- [IOUSBDeviceCapabilityBillboard](usbdriverkit/iousbdevicecapabilitybillboard.md)
- [IOUSBDeviceCapabilityBillboardAltConfig](usbdriverkit/iousbdevicecapabilitybillboardaltconfig.md)
- [IOUSBDeviceCapabilityBillboardAltConfigCompatibility](usbdriverkit/iousbdevicecapabilitybillboardaltconfigcompatibility.md)
- [IOUSBDeviceCapabilityBillboardAltMode](usbdriverkit/iousbdevicecapabilitybillboardaltmode.md)
- [IOUSBDeviceCapabilityContainerID](usbdriverkit/iousbdevicecapabilitycontainerid.md)
- [IOUSBDeviceCapabilitySuperSpeedUSB](usbdriverkit/iousbdevicecapabilitysuperspeedusb.md)
- [IOUSBDeviceCapabilitySuperSpeedPlusUSB](usbdriverkit/iousbdevicecapabilitysuperspeedplususb.md)
- [IOUSBDeviceCapabilityUSB2Extension](usbdriverkit/iousbdevicecapabilityusb2extension.md)
- [IOUSBPlatformCapabilityDescriptor](usbdriverkit/iousbplatformcapabilitydescriptor.md)
- [tIOUSBDeviceCapabilityType](usbdriverkit/tiousbdevicecapabilitytype.md)
- [SuperSpeed Device Capabilities](usbdriverkit/superspeed_device_capabilities-enum.md)
- [SuperSpeedPlus Device Capabilities](usbdriverkit/superspeedplus_device_capabiliti-enum.md)

### USB Descriptors

- [IOUSB20HubDescriptor](usbdriverkit/iousb20hubdescriptor.md)
- [IOUSBSuperSpeedHubDescriptor](usbdriverkit/iousbsuperspeedhubdescriptor.md)
- [SuperSpeed Hub Characteristics](usbdriverkit/superspeed_hub_characteristics-enum.md)
- [UASPipeDescriptor](usbdriverkit/uaspipedescriptor.md)

### HID Descriptors

- [IOUSBHIDDescriptor](usbdriverkit/iousbhiddescriptor.md)
- [IOUSBHIDReportDesc](usbdriverkit/iousbhidreportdesc.md)

### Firmware Update Descriptor

- [IOUSBDFUDescriptor](usbdriverkit/iousbdfudescriptor.md)

## See Also

### USB Specifications

- [Additional Specifications](usbdriverkit/additional-specifications.md)
- [Registry Property Names](usbdriverkit/registry-property-names.md)
- [Utilities](usbdriverkit/utilities.md)
