USB_ENDPOINT_DESCRIPTOR

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/28/2008

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 ENDPOINT.
  • 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
Windows Embedded CE Windows CE 2.10 and later