uint16_tbcdUSB;///< BUSB Specification Release Number in Binary-Coded Decimal (i.e., 2.10 is 210H). This field identifies the release of the USB Specification with which the device and its descriptors are compliant.
uint8_tbDeviceClass;///< Class code (assigned by the USB-IF). \li If this field is reset to zero, each interface within a configuration specifies its own class information and the various interfaces operate independently. \li If this field is set to a value between 1 and FEH, the device supports different class specifications on different interfaces and the interfaces may not operate independently. This value identifies the class definition used for the aggregate interfaces. \li If this field is set to FFH, the device class is vendor-specific.
uint8_tbDeviceSubClass;///< Subclass code (assigned by the USB-IF). These codes are qualified by the value of the bDeviceClass field. \li If the bDeviceClass field is reset to zero, this field must also be reset to zero. \li If the bDeviceClass field is not set to FFH, all values are reserved for assignment by the USB-IF.
uint8_tbDeviceProtocol;///< Protocol code (assigned by the USB-IF). These codes are qualified by the value of the bDeviceClass and the bDeviceSubClass fields. If a device supports class-specific protocols on a device basis as opposed to an interface basis, this code identifies the protocols that the device uses as defined by the specification of the device class. \li If this field is reset to zero, the device does not use class-specific protocols on a device basis. However, it may use classspecific protocols on an interface basis. \li If this field is set to FFH, the device uses a vendor-specific protocol on a device basis.
uint8_tbMaxPacketSize0;///< Maximum packet size for endpoint zero (only 8, 16, 32, or 64 are valid). For HS devices is fixed to 64.
uint16_tidVendor;///< Vendor ID (assigned by the USB-IF).
uint16_tidProduct;///< Product ID (assigned by the manufacturer).
uint16_tbcdDevice;///< Device release number in binary-coded decimal.
uint8_tiManufacturer;///< Index of string descriptor describing manufacturer.
uint8_tiProduct;///< Index of string descriptor describing product.
uint8_tiSerialNumber;///< Index of string descriptor describing the device's serial number.
uint8_tbNumConfigurations;///< Number of possible configurations.
uint8_tbLength;///< Size of this descriptor in bytes
uint8_tbDescriptorType;///< CONFIGURATION Descriptor Type
uint16_twTotalLength;///< Total length of data returned for this configuration. Includes the combined length of all descriptors (configuration, interface, endpoint, and class- or vendor-specific) returned for this configuration.
uint8_tbNumInterfaces;///< Number of interfaces supported by this configuration
uint8_tbConfigurationValue;///< Value to use as an argument to the SetConfiguration() request to select this configuration.
uint8_tiConfiguration;///< Index of string descriptor describing this configuration
uint8_tbmAttributes;///< Configuration characteristics \n D7: Reserved (set to one)\n D6: Self-powered \n D5: Remote Wakeup \n D4...0: Reserved (reset to zero) \n D7 is reserved and must be set to one for historical reasons. \n A device configuration that uses power from the bus and a local source reports a non-zero value in bMaxPower to indicate the amount of bus power required and sets D6. The actual power source at runtime may be determined using the GetStatus(DEVICE) request (see USB 2.0 spec Section 9.4.5). \n If a device configuration supports remote wakeup, D5 is set to one.
uint8_tbMaxPower;///< Maximum power consumption of the USB device from the bus in this specific configuration when the device is fully operational. Expressed in 2 mA units (i.e., 50 = 100 mA).
uint8_tbLength;///< Size of this descriptor in bytes
uint8_tbDescriptorType;///< INTERFACE Descriptor Type
uint8_tbInterfaceNumber;///< Number of this interface. Zero-based value identifying the index in the array of concurrent interfaces supported by this configuration.
uint8_tbAlternateSetting;///< Value used to select this alternate setting for the interface identified in the prior field
uint8_tbNumEndpoints;///< Number of endpoints used by this interface (excluding endpoint zero). If this value is zero, this interface only uses the Default Control Pipe.
uint8_tbInterfaceClass;///< Class code (assigned by the USB-IF). \li A value of zero is reserved for future standardization. \li If this field is set to FFH, the interface class is vendor-specific. \li All other values are reserved for assignment by the USB-IF.
uint8_tbInterfaceSubClass;///< Subclass code (assigned by the USB-IF). \n These codes are qualified by the value of the bInterfaceClass field. \li If the bInterfaceClass field is reset to zero, this field must also be reset to zero. \li If the bInterfaceClass field is not set to FFH, all values are reserved for assignment by the USB-IF.
uint8_tbInterfaceProtocol;///< Protocol code (assigned by the USB). \n These codes are qualified by the value of the bInterfaceClass and the bInterfaceSubClass fields. If an interface supports class-specific requests, this code identifies the protocols that the device uses as defined by the specification of the device class. \li If this field is reset to zero, the device does not use a class-specific protocol on this interface. \li If this field is set to FFH, the device uses a vendor-specific protocol for this interface.
uint8_tiInterface;///< Index of string descriptor describing this interface