1# UsbInterfaceDescriptor 2 3 4## Overview 5 6Defines standard interface descriptors, which correspond to **Standard Interface Descriptor** in the USB protocol. 7 8**Since** 9 1010 11 12**Related Modules** 13 14[USB DDK](_usb_ddk.md) 15 16 17## Summary 18 19 20### Member Variables 21 22| Name| Description| 23| -------- | -------- | 24| [bLength](#blength) | Size of the descriptor, in bytes.| 25| [bDescriptorType](#bdescriptortype) | Descriptor type.| 26| [bInterfaceNumber](#binterfacenumber) | Interface ID.| 27| [bAlternateSetting](#balternatesetting) | Value used to select the alternate setting of the interface.| 28| [bNumEndpoints](#bnumendpoints) | Number of endpoints (excluding endpoint 0) used by the interface.| 29| [bInterfaceClass](#binterfaceclass) | Interface class code allocated by the USB-IF.| 30| [bInterfaceSubClass](#binterfacesubclass) | Device subclass code allocated by USB-IF. The value is limited by that of [bInterfaceClass](#binterfaceclass).| 31| [bInterfaceProtocol](#binterfaceprotocol) | Protocol code allocated by USB-IF. The value is limited by that of [bInterfaceClass](#binterfaceclass) and [bInterfaceSubClass](#binterfacesubclass).| 32| [iInterface](#iinterface) | Index of the string descriptor that describes the interface.| 33 34 35## Member Variable Description 36 37 38### bAlternateSetting 39 40 41``` 42uint8_t UsbInterfaceDescriptor::bAlternateSetting 43``` 44 45**Description** 46 47Value used to select the alternate setting of the interface. 48 49 50### bDescriptorType 51 52 53``` 54uint8_t UsbInterfaceDescriptor::bDescriptorType 55``` 56 57**Description** 58 59Descriptor type. 60 61 62### bInterfaceClass 63 64 65``` 66uint8_t UsbInterfaceDescriptor::bInterfaceClass 67``` 68 69**Description** 70 71Interface class code allocated by the USB-IF. 72 73 74### bInterfaceNumber 75 76 77``` 78uint8_t UsbInterfaceDescriptor::bInterfaceNumber 79``` 80 81**Description** 82 83Interface ID. 84 85 86### bInterfaceProtocol 87 88 89``` 90uint8_t UsbInterfaceDescriptor::bInterfaceProtocol 91``` 92 93**Description** 94 95Protocol code allocated by USB-IF. The value is limited by that of [bInterfaceClass](#binterfaceclass) and [bInterfaceSubClass](#binterfacesubclass). 96 97 98### bInterfaceSubClass 99 100 101``` 102uint8_t UsbInterfaceDescriptor::bInterfaceSubClass 103``` 104 105**Description** 106 107Device subclass code allocated by USB-IF. The value is limited by that of [bInterfaceClass](#binterfaceclass). 108 109 110### bLength 111 112 113``` 114uint8_t UsbInterfaceDescriptor::bLength 115``` 116 117**Description** 118 119Size of the descriptor, in bytes. 120 121 122### bNumEndpoints 123 124 125``` 126uint8_t UsbInterfaceDescriptor::bNumEndpoints 127``` 128 129**Description** 130 131Number of endpoints (excluding endpoint 0) used by the interface. 132 133 134### iInterface 135 136 137``` 138uint8_t UsbInterfaceDescriptor::iInterface 139``` 140 141**Description** 142 143Index of the string descriptor that describes the interface. 144