1e41f4b71Sopenharmony_ci# UsbDeviceDescriptor 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci## Overview 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ciDefines standard device descriptors, which correspond to **Standard Device Descriptor** in the USB protocol. 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci**Since** 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci10 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci**Related Modules** 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci[UsbDdk](_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| [bcdUSB](#bcdusb) | USB protocol release number.| 27e41f4b71Sopenharmony_ci| [bDeviceClass](#bdeviceclass) | Interface class code allocated by the USB-IF.| 28e41f4b71Sopenharmony_ci| [bDeviceSubClass](#bdevicesubclass) | Device subclass code allocated by USB-IF. The value is limited by that of bDeviceClass.| 29e41f4b71Sopenharmony_ci| [bDeviceProtocol](#bdeviceprotocol) | Protocol code allocated by USB-IF. The value is limited by that of [bDeviceClass](#bdeviceclass) and [bDeviceSubClass](#bdevicesubclass).| 30e41f4b71Sopenharmony_ci| [bMaxPacketSize0](#bmaxpacketsize0) | Maximum packet size of endpoint 0. Only values 8, 16, 32, and 64 are valid.| 31e41f4b71Sopenharmony_ci| [idVendor](#idvendor) | Vendor ID allocated by USB-IF.| 32e41f4b71Sopenharmony_ci| [idProduct](#idproduct) | Product ID allocated by the vendor.| 33e41f4b71Sopenharmony_ci| [bcdDevice](#bcddevice) | Device release number.| 34e41f4b71Sopenharmony_ci| [iManufacturer](#imanufacturer) | Index of the string descriptor that describes the vendor.| 35e41f4b71Sopenharmony_ci| [iProduct](#iproduct) | Index of the string descriptor that describes the product.| 36e41f4b71Sopenharmony_ci| [iSerialNumber](#iserialnumber) | Index of the string descriptor that describes the device SN.| 37e41f4b71Sopenharmony_ci| [bNumConfigurations](#bnumconfigurations) | Configuration quantity.| 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci## Member Variable Description 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci### bcdDevice 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci``` 47e41f4b71Sopenharmony_ciuint16_t UsbDeviceDescriptor::bcdDevice 48e41f4b71Sopenharmony_ci``` 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci**Description** 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ciDevice release number. 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci### bcdUSB 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci 58e41f4b71Sopenharmony_ci``` 59e41f4b71Sopenharmony_ciuint16_t UsbDeviceDescriptor::bcdUSB 60e41f4b71Sopenharmony_ci``` 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci**Description** 63e41f4b71Sopenharmony_ci 64e41f4b71Sopenharmony_ciUSB protocol release number. 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci### bDescriptorType 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci``` 71e41f4b71Sopenharmony_ciuint8_t UsbDeviceDescriptor::bDescriptorType 72e41f4b71Sopenharmony_ci``` 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci**Description** 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ciDescriptor type. 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci### bDeviceClass 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci``` 83e41f4b71Sopenharmony_ciuint8_t UsbDeviceDescriptor::bDeviceClass 84e41f4b71Sopenharmony_ci``` 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci**Description** 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ciInterface class code allocated by the USB-IF. 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci### bDeviceProtocol 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci``` 95e41f4b71Sopenharmony_ciuint8_t UsbDeviceDescriptor::bDeviceProtocol 96e41f4b71Sopenharmony_ci``` 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ci**Description** 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_ciProtocol code allocated by USB-IF. The value is limited by that of [bDeviceClass](#bdeviceclass) and [bDeviceSubClass](#bdevicesubclass). 101e41f4b71Sopenharmony_ci 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci### bDeviceSubClass 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_ci``` 107e41f4b71Sopenharmony_ciuint8_t UsbDeviceDescriptor::bDeviceSubClass 108e41f4b71Sopenharmony_ci``` 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci**Description** 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ciDevice subclass code allocated by USB-IF. The value is limited by that of bDeviceClass. 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci 115e41f4b71Sopenharmony_ci### bLength 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci``` 119e41f4b71Sopenharmony_ciuint8_t UsbDeviceDescriptor::bLength 120e41f4b71Sopenharmony_ci``` 121e41f4b71Sopenharmony_ci 122e41f4b71Sopenharmony_ci**Description** 123e41f4b71Sopenharmony_ci 124e41f4b71Sopenharmony_ciSize of the descriptor, in bytes. 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_ci### bMaxPacketSize0 128e41f4b71Sopenharmony_ci 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci``` 131e41f4b71Sopenharmony_ciuint8_t UsbDeviceDescriptor::bMaxPacketSize0 132e41f4b71Sopenharmony_ci``` 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci**Description** 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ciMaximum packet size of endpoint 0. Only values 8, 16, 32, and 64 are valid. 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ci### bNumConfigurations 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci``` 143e41f4b71Sopenharmony_ciuint8_t UsbDeviceDescriptor::bNumConfigurations 144e41f4b71Sopenharmony_ci``` 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ci**Description** 147e41f4b71Sopenharmony_ci 148e41f4b71Sopenharmony_ciConfiguration quantity. 149e41f4b71Sopenharmony_ci 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci### idProduct 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci``` 155e41f4b71Sopenharmony_ciuint16_t UsbDeviceDescriptor::idProduct 156e41f4b71Sopenharmony_ci``` 157e41f4b71Sopenharmony_ci 158e41f4b71Sopenharmony_ci**Description** 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_ciProduct ID allocated by the vendor. 161e41f4b71Sopenharmony_ci 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci### idVendor 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci 166e41f4b71Sopenharmony_ci``` 167e41f4b71Sopenharmony_ciuint16_t UsbDeviceDescriptor::idVendor 168e41f4b71Sopenharmony_ci``` 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci**Description** 171e41f4b71Sopenharmony_ci 172e41f4b71Sopenharmony_ciVendor ID allocated by USB-IF. 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci### iManufacturer 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_ci``` 179e41f4b71Sopenharmony_ciuint8_t UsbDeviceDescriptor::iManufacturer 180e41f4b71Sopenharmony_ci``` 181e41f4b71Sopenharmony_ci 182e41f4b71Sopenharmony_ci**Description** 183e41f4b71Sopenharmony_ci 184e41f4b71Sopenharmony_ciIndex of the string descriptor that describes the vendor. 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci### iProduct 188e41f4b71Sopenharmony_ci 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci``` 191e41f4b71Sopenharmony_ciuint8_t UsbDeviceDescriptor::iProduct 192e41f4b71Sopenharmony_ci``` 193e41f4b71Sopenharmony_ci 194e41f4b71Sopenharmony_ci**Description** 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_ciIndex of the string descriptor that describes the product. 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ci### iSerialNumber 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_ci 202e41f4b71Sopenharmony_ci``` 203e41f4b71Sopenharmony_ciuint8_t UsbDeviceDescriptor::iSerialNumber 204e41f4b71Sopenharmony_ci``` 205e41f4b71Sopenharmony_ci 206e41f4b71Sopenharmony_ci**Description** 207e41f4b71Sopenharmony_ci 208e41f4b71Sopenharmony_ciIndex of the string descriptor that describes the device SN. 209