---
title: IOUSBInterfaceDescriptor
framework: kernel
role: symbol
role_heading: Type Alias
path: kernel/iousbinterfacedescriptor
---

# IOUSBInterfaceDescriptor

A descriptor for a specific interface of a USB device.

## Declaration

```occ
typedef struct IOUSBInterfaceDescriptor IOUSBInterfaceDescriptor;
```

## Discussion

Discussion An IOUSBInterfaceDescriptor object contains information about one of the device’s supported interfaces. A device’s configuration provides one or more interfaces, each with zero or more endpoints that define how to configure the pipes for that device. For more information about this descriptor type, see USB 3.2, 9.6.5.

## Topics

### Getting the Properties

- [bLength](kernel/iousbinterfacedescriptor/1546453-blength.md)
- [bDescriptorType](kernel/iousbinterfacedescriptor/1546203-bdescriptortype.md)
- [bInterfaceNumber](kernel/iousbinterfacedescriptor/1545982-binterfacenumber.md)
- [bAlternateSetting](kernel/iousbinterfacedescriptor/1546130-balternatesetting.md)
- [bNumEndpoints](kernel/iousbinterfacedescriptor/1546478-bnumendpoints.md)
- [bInterfaceClass](kernel/iousbinterfacedescriptor/1546292-binterfaceclass.md)
- [bInterfaceSubClass](kernel/iousbinterfacedescriptor/1546353-binterfacesubclass.md)
- [bInterfaceProtocol](kernel/iousbinterfacedescriptor/1545890-binterfaceprotocol.md)
- [iInterface](kernel/iousbinterfacedescriptor/1545956-iinterface.md)

## See Also

### Interface Descriptors

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

### Related Documentation

- [IOUSBInterfaceDescriptor](iokit/usb_h_user-space/iousbinterfacedescriptor.md)
