// usbspec.h
typedef struct _USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bMaxBurst;
union {
UCHAR AsUchar;
struct {
UCHAR MaxStreams : 5;
UCHAR Reserved1 : 3;
} Bulk;
struct {
UCHAR Mult : 2;
UCHAR Reserved2 : 5;
UCHAR SspCompanion : 1;
} Isochronous;
} bmAttributes;
USHORT wBytesPerInterval;
} USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR, *PUSB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR;
View the official Windows Driver Kit DDI referenceNo description available.
The USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined SuperSpeed Endpoint Companion descriptor.
The members of this structure are described in the Universal Serial Bus 3.1 Specification available at USB Document Library. See section 9.6.7.
bLengthSpecifies the length, in bytes, of this descriptor.
bDescriptorTypeSpecifies the descriptor type. Must be set to USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR.
bMaxBurstSpecifies the maximum number of packets that the endpoint can send or receive as a part of a burst.
bmAttributesbmAttributes.AsUcharSpecifies the length of the structures.
bmAttributes.BulkbmAttributes.Bulk.MaxStreamsSpecifies the maximum number of streams supported by the bulk endpoint.
bmAttributes.Bulk.Reserved1Reserved. Do not use.
bmAttributes.IsochronousbmAttributes.Isochronous.MultSpecifies a zero-based number that determines the maximum number of packets (bMaxBurst * (Mult + 1)) that can be sent to the endpoint within a service interval.
bmAttributes.Isochronous.Reserved2Reserved. Do not use.
bmAttributes.Isochronous.SspCompanionwBytesPerIntervalNumber of bytes per interval.
A client driver that supports streams associated with a bulk endpoint, uses USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR to get the maximum number of streams supported by the endpoint. That information is required by the client driver in an open-streams request. In the request, the specified value for NumberOfStreams member of the _URB_OPEN_STATIC_STREAMS structure cannot exceed the MaxStreams value reported in USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR. For more information about opening streams, see How to Open and Close Static Streams in a USB Bulk Endpoint.