// ntddndis.h
typedef struct _NDIS_OFFLOAD {
NDIS_OBJECT_HEADER Header;
NDIS_TCP_IP_CHECKSUM_OFFLOAD Checksum;
NDIS_TCP_LARGE_SEND_OFFLOAD_V1 LsoV1;
NDIS_IPSEC_OFFLOAD_V1 IPsecV1;
NDIS_TCP_LARGE_SEND_OFFLOAD_V2 LsoV2;
ULONG Flags;
NDIS_IPSEC_OFFLOAD_V2 IPsecV2;
NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD Rsc;
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD EncapsulatedPacketTaskOffloadGre;
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 EncapsulatedPacketTaskOffloadVxlan;
UCHAR EncapsulationTypes;
NDIS_RFC6877_464XLAT_OFFLOAD Rfc6877Xlat;
NDIS_UDP_SEGMENTATION_OFFLOAD UdpSegmentation;
NDIS_UDP_RSC_OFFLOAD UdpRsc;
} NDIS_OFFLOAD, *PNDIS_OFFLOAD;
View the official Windows Driver Kit DDI referenceNo description available.
The NDIS_OFFLOAD structure specifies several computational tasks that can be offloaded to the network adapter.
HeaderThe NDIS_OBJECT_HEADER structure for the NDIS_OFFLOAD structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_OFFLOAD.
Set the Revision and Size members of the NDIS_OBJECT_HEADER structure as follows:
ChecksumChecksum offload information in an NDIS_TCP_IP_CHECKSUM_OFFLOAD structure.
LsoV1Large send offload version 1 (LSOV1) information in an NDIS_TCP_LARGE_SEND_OFFLOAD_V1 structure.
IPsecV1Internet protocol security (IPsec) offload information in an NDIS_IPSEC_OFFLOAD_V1 structure.
LsoV2Large send offload version 2 (LSOV2) offload information in an NDIS_TCP_LARGE_SEND_OFFLOAD_V2 structure.
FlagsA bitwise OR of flags that specify properties that the network adapter supports. The following flags are defined.
| Value | Meaning |
|---|---|
| IPSEC_OFFLOAD_V2_AND_TCP_CHECKSUM_COEXISTENCE 0x00000002 |
The network adapter supports IPsecV2 and TCP checksums. |
| IPSEC_OFFLOAD_V2_AND_UDP_CHECKSUM_COEXISTENCE 0x00000004 |
The network adapter supports IPsecV2 and UDP checksums. |
IPsecV2Internet protocol security (IPsec) offload version 2 information in an NDIS_IPSEC_OFFLOAD_V2 structure.
RscReceive Segment Coalescing (RSC) offload information in an NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD structure.
EncapsulatedPacketTaskOffloadGreNetwork Virtualization using Generic Routing Encapsulation (NVGRE) Task Offload information in an NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD structure. This member should only be set by miniport drivers that support task offloads for NVGRE-formatted packets.
Note: This member is available only in NDIS 6.30 and later.
EncapsulatedPacketTaskOffloadVxlanVXLAN encapsulated packet task offload information in an NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 structure. This member should only be set by miniport drivers that support task offloads for VXLAN-formatted packets. VXLAN is similar to NVGRE, but with a different protocol.
Note: This member is available only in NDIS 6.50 and later.
EncapsulationTypesThe enabled encapsulation types for encapsulated packet task offload.
Note: This member is available only in NDIS 6.50 and later.
Rfc6877Xlat464XLAT hardware offload information in an NDIS_RFC6877_464XLAT_OFFLOAD structure.
Note: This member is available only in NDIS 6.70 and later.
UdpSegmentationUDP Segmentation Offload (USO) hardware offload information in an NDIS_UDP_SEGMENTATION_OFFLOAD structure.
Note: This member is available only in NDIS 6.83 and later.
UdpRscUDP Receive Segment Coalescing Offload (URO) hardware offload information in an NDIS_UDP_RSC_OFFLOAD structure.
Note: This member is available only in NDIS 6.89 and later.
The NDIS_OFFLOAD structure is used in the following places:
Determining the RSC Capabilities of a Network Adapter
NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES
NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG
NDIS_TCP_LARGE_SEND_OFFLOAD_V1
NDIS_TCP_LARGE_SEND_OFFLOAD_V2
Network Virtualization using Generic Routing Encapsulation (NVGRE) Task Offload
OID_TCP_OFFLOAD_CURRENT_CONFIG
OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES
UDP Segmentation Offload (USO)