// usb.h
typedef struct _USBD_ENDPOINT_OFFLOAD_INFORMATION {
ULONG Size;
USHORT EndpointAddress;
ULONG ResourceId;
USBD_ENDPOINT_OFFLOAD_MODE Mode;
ULONG RootHubPortNumber : 8;
ULONG RouteString : 20;
ULONG Speed : 4;
ULONG UsbDeviceAddress : 8;
ULONG SlotId : 8;
ULONG MultiTT : 1;
ULONG LSOrFSDeviceConnectedToTTHub : 1;
ULONG Reserved0 : 14;
PHYSICAL_ADDRESS TransferSegmentLA;
PVOID TransferSegmentVA;
size_t TransferRingSize;
ULONG TransferRingInitialCycleBit;
ULONG MessageNumber;
PHYSICAL_ADDRESS EventRingSegmentLA;
PVOID EventRingSegmentVA;
size_t EventRingSize;
ULONG EventRingInitialCycleBit;
PHYSICAL_ADDRESS ClientTransferRingSegmentPAIn;
size_t ClientTransferRingSizeIn;
PHYSICAL_ADDRESS ClientDataBufferPAIn;
size_t ClientDataBufferSizeIn;
PHYSICAL_ADDRESS ClientDataBufferLAOut;
PVOID ClientDataBufferVAOut;
} USBD_ENDPOINT_OFFLOAD_INFORMATION, *PUSBD_ENDPOINT_OFFLOAD_INFORMATION, USBD_ENDPOINT_OFFLOAD_INFORMATION_V2, *PUSBD_ENDPOINT_OFFLOAD_INFORMATION_V2;
View the official Windows Driver Kit DDI referenceNo description available.
Stores xHCI-specific V2 information that is used by client drivers to transfer data to and from the offloaded endpoints.
SizeThe size of this structure.
EndpointAddressSpecifies the USB-defined endpoint address.
ResourceIdThe resource identifier.
ModeA USBD_ENDPOINT_OFFLOAD_MODE value that indicates whether endpoint offloading is handled in software or the USB device or host controller.
RootHubPortNumberThe port number of the root hub to which the device is connected.
RouteStringThe route string describing the path from the root hub to the device.
SpeedThe speed of the USB device.
UsbDeviceAddressThe USB address of the device.
SlotIdThe slot ID of the device.
MultiTTIndicates if the device is connected to a hub with transaction translators.
LSOrFSDeviceConnectedToTTHubIndicates if the device is a low-speed or full-speed device connected to a hub with transaction translators.
Reserved0Reserved.
TransferSegmentLAThe physical address of the transfer ring segment.
TransferSegmentVAThe virtual address of the transfer ring segment.
TransferRingSizeThe size of the transfer ring.
TransferRingInitialCycleBitThe initial cycle bit of the transfer ring.
MessageNumberThe message number for the secondary event ring.
EventRingSegmentLAThe physical address of the event ring segment.
EventRingSegmentVAThe virtual address of the event ring segment.
EventRingSizeThe size of the event ring, in bytes.
EventRingInitialCycleBitThe initial cycle bit of the event ring.
ClientTransferRingSegmentPAInThe physical address of the client-provided transfer ring segment.
ClientTransferRingSizeInThe size of the client-provided transfer ring segment.
ClientDataBufferPAInThe physical address of the client-provided data buffer.
ClientDataBufferSizeInThe size of the client-provided data buffer.
ClientDataBufferLAOutThe physical address of the mapped data buffer.
ClientDataBufferVAOutThe virtual address of the mapped data buffer.
This structure duplicates and extends USBD_ENDPOINT_OFFLOAD_INFORMATION_V1.
This structure supports two versions, indicated by USBD_ENDPOINT_OFFLOAD_INFORMATION and USBD_ENDPOINT_OFFLOAD_INFORMATION_V2, with the latter possibly including additional fields beyond what is documented here. The structure facilitates detailed configuration and management of USB endpoint offload.