struct libusb_endpoint_descriptor
Overview
A structure representing the standard USB endpoint descriptor. Moreā¦
#include <libusb.h> struct libusb_endpoint_descriptor { // fields uint8_t bLength; uint8_t bDescriptorType; uint8_t bEndpointAddress; uint8_t bmAttributes; uint16_t wMaxPacketSize; uint8_t bInterval; uint8_t bRefresh; uint8_t bSynchAddress; const unsigned char* extra; int extra_length; };
Detailed Documentation
A structure representing the standard USB endpoint descriptor.
This descriptor is documented in section 9.6.6 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_ENDPOINT LIBUSB_DT_ENDPOINT in this context.
uint8_t bEndpointAddress
The address of the endpoint described by this descriptor.
Bits 0:3 are the endpoint number. Bits 4:6 are reserved. Bit 7 indicates direction, see libusb_endpoint_direction.
uint8_t bmAttributes
Attributes which apply to the endpoint when it is configured using the bConfigurationValue.
Bits 0:1 determine the transfer type and correspond to libusb_transfer_type. Bits 2:3 are only used for isochronous endpoints and correspond to libusb_iso_sync_type. Bits 4:5 are also only used for isochronous endpoints and correspond to libusb_iso_usage_type. Bits 6:7 are reserved.
uint16_t wMaxPacketSize
Maximum packet size this endpoint is capable of sending/receiving.
uint8_t bInterval
Interval for polling endpoint for data transfers.
uint8_t bRefresh
For audio devices only: the rate at which synchronization feedback is provided.
uint8_t bSynchAddress
For audio devices only: the address if the synch endpoint.
const unsigned char* extra
Extra descriptors.
If libusb encounters unknown endpoint descriptors, it will store them here, should you wish to parse them.
int extra_length
Length of the extra descriptors, in bytes.