USB_ENDPOINT_DESCRIPTOR (Compact 2013)
3/26/2014
This structure contains general information about universal serial bus (USB) endpoints.
Syntax
typedef struct {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bEndpointAddress;
UCHAR bmAttributes;
USHORT wMaxPacketSize;
UCHAR bInterval;
} USB_ENDPOINT;
Members
- bLength
Size, in bytes, of this structure.
- bDescriptorType
Constant value USB_ENDPOINT_DESCRIPTOR_TYPE.
- bEndpointAddress
Address of the endpoint on the USB device described by this structure. Endpoint addresses are encoded as follows: bits zero (0) through 3 are the endpoint number; bits 4 through 6 are reserved and should be zero (0); and bit 7 is the direction of data flow. Data flow of zero (0) indicates an output endpoint, and 1 indicates an input endpoint.
- bmAttributes
Two-bit map describing the endpoint's transfer type. 0x00 represents a control endpoint, 0x01 is an isochronous endpoint, 0x02 is a bulk endpoint, and 0x03 is an interrupt-driven endpoint.
- wMaxPacketSize
Maximum packet size, in bytes, that this endpoint can send or receive.
- bInterval
Interval length, in milliseconds, that the USB system should wait between polling attempts to determine if an interrupt has occurred. For bulk and control endpoints, this value is ignored. Isochronous endpoints must have a bInterval value of 1. Interrupt-driven endpoints can use any value from 1 to 255 inclusive.
Remarks
A USB_ENDPOINT_DESCRIPTOR structure is always returned when configuration information has been requested. However, endpoint zero (0) never has a USB_ENDPOINT_DESCRIPTOR structure.
Requirements
Header |
usb100.h |