This structure contains general information about USB devices.


typedef struct {
  UCHAR bLength;
  UCHAR bDescriptorType;
  UCHAR bDeviceClass;
  UCHAR bDeviceSubClass;
  UCHAR bDeviceProtocol;
  UCHAR bMaxPacketSize0;
  USHORT idVendor;
  USHORT idProduct;
  USHORT bcdDevice;
  UCHAR iManufacturer;
  UCHAR iSerialNumber;
  UCHAR bNumConfigurations;


  • bLength
    Size, in bytes, of this structure.
  • bDescriptorType
  • bcdUSB
    Version number of the USB specification for which the device is compliant, in binary-coded decimal form. For example, version 2.10 is represented as 0x210.
  • bDeviceClass
    Device class code. The USB working group assigns device class codes. If this member is zero (0), each of the USB device's interfaces within a configuration specifies its own class information. The interfaces act independently. If this member is between 0x01 and 0xFE inclusive, the USB device supports different device classes on different interfaces. Thus, this member represents the aggregate of all the interfaces, and the interfaces might not act independently. The bDeviceClass value 0xFF is vendor specific.
  • bDeviceSubClass
    Device subclass code. The USB working group assigns device class codes. The meaning of the value in this member depends on the value in the bDeviceClass member. If bDeviceClass is reset to zero (0), bDeviceSubClass must also be reset to zero (0).
  • bDeviceProtocol
    Protocol code. The USB working group assigns protocol codes. The meaning of the value in this member depends on the values in the bDeviceClass and bDeviceSubClass members. The value 0xFF indicates a vendor-specific protocol.
  • bMaxPacketSize0
    Maximum packet size allowed for endpoint zero (0). Only values 8, 16, 32, and 64 are valid.
  • idVendor
    Vendor identifier. The USB working group assigns vendor identifiers.
  • idProduct
    Product identifier. Manufacturers assign product identifiers.
  • bcdDevice
    USB device's release number, in binary-coded decimal format.
  • iManufacturer
    Index of a string descriptor describing the manufacturer.
  • iSerialNumber
    Index of a string descriptor containing the USB device's serial number.
  • bNumConfigurations
    Number of possible configurations for the USB device.


The Universal Serial Bus Specification defines this structure.




See Also


USB Driver Structures