struct libusb_interface_descriptor
Overview
A structure representing the standard USB interface descriptor. Moreā¦
#include <libusb.h> struct libusb_interface_descriptor { // fields uint8_t bLength; uint8_t bDescriptorType; uint8_t bInterfaceNumber; uint8_t bAlternateSetting; uint8_t bNumEndpoints; uint8_t bInterfaceClass; uint8_t bInterfaceSubClass; uint8_t bInterfaceProtocol; uint8_t iInterface; const struct libusb_endpoint_descriptor* endpoint; const unsigned char* extra; int extra_length; };
Detailed Documentation
A structure representing the standard USB interface descriptor.
This descriptor is documented in section 9.6.5 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_INTERFACE LIBUSB_DT_INTERFACE in this context.
uint8_t bInterfaceNumber
Number of this interface.
uint8_t bAlternateSetting
Value used to select this alternate setting for this interface.
uint8_t bNumEndpoints
Number of endpoints used by this interface (excluding the control endpoint).
uint8_t bInterfaceClass
USB-IF class code for this interface.
See libusb_class_code.
uint8_t bInterfaceSubClass
USB-IF subclass code for this interface, qualified by the bInterfaceClass value.
uint8_t bInterfaceProtocol
USB-IF protocol code for this interface, qualified by the bInterfaceClass and bInterfaceSubClass values.
uint8_t iInterface
Index of string descriptor describing this interface.
const struct libusb_endpoint_descriptor* endpoint
Array of endpoint descriptors.
This length of this array is determined by the bNumEndpoints field.
const unsigned char* extra
Extra descriptors.
If libusb encounters unknown interface descriptors, it will store them here, should you wish to parse them.
int extra_length
Length of the extra descriptors, in bytes.