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.