---
title: "IOUSBGetNextDescriptorWithType(_:_:_:)"
framework: iousbhost
role: symbol
role_heading: Function
path: "iousbhost/iousbgetnextdescriptorwithtype(_:_:_:)"
---

# IOUSBGetNextDescriptorWithType(_:_:_:)

Obtains the next descriptor in a configuration descriptor that matches the type.

## Declaration

```swift
func IOUSBGetNextDescriptorWithType(_ configurationDescriptor: UnsafePointer<IOUSBConfigurationDescriptor>!, _ currentDescriptor: UnsafePointer<IOUSBDescriptorHeader>!, _ type: UInt8) -> UnsafePointer<IOUSBDescriptorHeader>!
```

## Parameters

- `configurationDescriptor`: A configuration descriptor that contains the descriptors to iterate through.
- `currentDescriptor`: A descriptor pointer within the bounds of configurationDescriptor, or nil.
- `type`: The descriptor type to find.

## Return Value

Return Value A descriptor pointer, or nil if no matching descriptor returns.

## Discussion

Discussion This method uses IOUSBGetNextDescriptor(_:_:), and further validates that the returned descriptor’s bDescriptorType field matches the type parameter.

## See Also

### Configuration Descriptor Parsing

- [IOUSBGetNextDescriptor(_:_:)](iousbhost/iousbgetnextdescriptor(_:_:).md)
- [IOUSBGetNextAssociatedDescriptor(_:_:_:)](iousbhost/iousbgetnextassociateddescriptor(_:_:_:).md)
- [IOUSBGetNextAssociatedDescriptorWithType(_:_:_:_:)](iousbhost/iousbgetnextassociateddescriptorwithtype(_:_:_:_:).md)
- [IOUSBGetNextInterfaceAssociationDescriptor(_:_:)](iousbhost/iousbgetnextinterfaceassociationdescriptor(_:_:).md)
- [IOUSBGetNextInterfaceDescriptor(_:_:)](iousbhost/iousbgetnextinterfacedescriptor(_:_:).md)
- [IOUSBGetConfigurationMaxPowerMilliAmps(_:_:)](iousbhost/iousbgetconfigurationmaxpowermilliamps(_:_:).md)
