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