Share via


USB_INTERFACE_DESCRIPTOR (Compact 2013)

3/26/2014

This structure describes a specific interface with respect to a specific configuration. Therefore, the same physical interface on a universal serial bus (USB) device has one USB_INTERFACE_DESCRIPTOR structure for each of the USB device's possible configurations.

Syntax

typedef struct {
  UCHAR bLength;
  UCHAR bDescriptorType;
  UCHAR bInterfaceNumber;
  UCHAR bAlternateSetting;
  UCHAR bNumEndpoints;
  UCHAR bInterfaceClass;
  UCHAR bInterfaceSubClass;
  UCHAR bInterfaceProtocol;
  UCHAR iInterface;
} USB_INTERFACE_DESCRIPTOR;

Members

  • bLength
    Length, in bytes, of this structure.
  • bDescriptorType
    Constant value USB_INTERFACE_DESCRIPTOR_TYPE.
  • bInterfaceNumber
    Interface's number. This value is a zero-based index into an array of interfaces supported by the relevant configuration.
  • bAlternateSetting
    Value used to select an alternate setting for the interface identified in bInterfaceNumber.
  • bNumEndpoints
    Number of endpoints used by this interface, excluding endpoint zero (0). If this value is zero (0), the interface only uses the default control pipe.
  • bInterfaceClass
    Interface class code. The USB working group defines class codes. The value 0xFF represents a vendor-specific class code.
  • bInterfaceSubClass
    Interface subclass code. The USB working group defines subclass codes. The meaning of this member depends on the value of bInterfaceClass.
  • bInterfaceProtocol
    Interface protocol code. The USB working group defines protocol codes. The value 0xFF indicates a vendor-specific protocol code.
  • iInterface
    Index of a string descriptor describing this interface.

Remarks

USB_INTERFACE_DESCRIPTOR structures are accessed by the USB software or device drivers in response to requests for configuration information.

Requirements

Header

usbtypes.h

See Also

Reference

USB Driver Structures