---
title: "IOUSBGetUSB20ExtensionDeviceCapabilityDescriptor(_:)"
framework: iousbhost
role: symbol
role_heading: Function
path: "iousbhost/iousbgetusb20extensiondevicecapabilitydescriptor(_:)"
---

# IOUSBGetUSB20ExtensionDeviceCapabilityDescriptor(_:)

Obtains the first USB 2.0 extension capability descriptor in a BOS descriptor.

## Declaration

```swift
func IOUSBGetUSB20ExtensionDeviceCapabilityDescriptor(_ bosDescriptor: UnsafePointer<IOUSBBOSDescriptor>!) -> UnsafePointer<IOUSBDeviceCapabilityUSB2Extension>!
```

## Parameters

- `bosDescriptor`: A BOS descriptor that contains the descriptors to iterate through.

## Return Value

Return Value The device capability extension pointer, or nil if no matching descriptor returns.

## Discussion

Discussion This method uses IOUSBGetNextCapabilityDescriptorWithType(_:_:_:) to find the first device capability extension.

## See Also

### BOS Descriptor Parsing

- [IOUSBGetNextCapabilityDescriptorWithType(_:_:_:)](iousbhost/iousbgetnextcapabilitydescriptorwithtype(_:_:_:).md)
- [IOUSBGetNextCapabilityDescriptor(_:_:)](iousbhost/iousbgetnextcapabilitydescriptor(_:_:).md)
- [IOUSBGetSuperSpeedDeviceCapabilityDescriptor(_:)](iousbhost/iousbgetsuperspeeddevicecapabilitydescriptor(_:).md)
- [IOUSBGetContainerIDDescriptor(_:)](iousbhost/iousbgetcontaineriddescriptor(_:).md)
- [IOUSBGetBillboardDescriptor(_:)](iousbhost/iousbgetbillboarddescriptor(_:).md)
