struct libusb_device_descriptor

Overview

A structure representing the standard USB device descriptor. Moreā€¦

#include <libusb.h>

struct libusb_device_descriptor {
    // fields

    uint8_t bLength;
    uint8_t bDescriptorType;
    uint16_t bcdUSB;
    uint8_t bDeviceClass;
    uint8_t bDeviceSubClass;
    uint8_t bDeviceProtocol;
    uint8_t bMaxPacketSize0;
    uint16_t idVendor;
    uint16_t idProduct;
    uint16_t bcdDevice;
    uint8_t iManufacturer;
    uint8_t iProduct;
    uint8_t iSerialNumber;
    uint8_t bNumConfigurations;
};

Detailed Documentation

A structure representing the standard USB device descriptor.

This descriptor is documented in section 9.6.1 of the USB 3.0 specification. All multiple-byte fields are represented in host-endian format.

Fields

uint8_t bLength

Size of this descriptor (in bytes)

uint8_t bDescriptorType

Descriptor type.

Will have value libusb_descriptor_type::LIBUSB_DT_DEVICE LIBUSB_DT_DEVICE in this context.

uint16_t bcdUSB

USB specification release number in binary-coded decimal.

A value of 0x0200 indicates USB 2.0, 0x0110 indicates USB 1.1, etc.

uint8_t bDeviceClass

USB-IF class code for the device.

See libusb_class_code.

uint8_t bDeviceSubClass

USB-IF subclass code for the device, qualified by the bDeviceClass value.

uint8_t bDeviceProtocol

USB-IF protocol code for the device, qualified by the bDeviceClass and bDeviceSubClass values.

uint8_t bMaxPacketSize0

Maximum packet size for endpoint 0.

uint16_t idVendor

USB-IF vendor ID.

uint16_t idProduct

USB-IF product ID.

uint16_t bcdDevice

Device release number in binary-coded decimal.

uint8_t iManufacturer

Index of string descriptor describing manufacturer.

uint8_t iProduct

Index of string descriptor describing product.

uint8_t iSerialNumber

Index of string descriptor containing device serial number.

uint8_t bNumConfigurations

Number of possible configurations.