// 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 reference
No description available.
The NDIS_OFFLOAD structure specifies several computational tasks that can be offloaded to the network adapter.
Header
The 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:
Checksum
Checksum offload information in an NDIS_TCP_IP_CHECKSUM_OFFLOAD structure.
LsoV1
Large send offload version 1 (LSOV1) information in an NDIS_TCP_LARGE_SEND_OFFLOAD_V1 structure.
IPsecV1
Internet protocol security (IPsec) offload information in an NDIS_IPSEC_OFFLOAD_V1 structure.
LsoV2
Large send offload version 2 (LSOV2) offload information in an NDIS_TCP_LARGE_SEND_OFFLOAD_V2 structure.
Flags
A 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. |
IPsecV2
Internet protocol security (IPsec) offload version 2 information in an NDIS_IPSEC_OFFLOAD_V2 structure.
Rsc
Receive Segment Coalescing (RSC) offload information in an NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD structure.
EncapsulatedPacketTaskOffloadGre
Network 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.
EncapsulatedPacketTaskOffloadVxlan
VXLAN 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.
EncapsulationTypes
The enabled encapsulation types for encapsulated packet task offload.
Note: This member is available only in NDIS 6.50 and later.
Rfc6877Xlat
464XLAT hardware offload information in an NDIS_RFC6877_464XLAT_OFFLOAD structure.
Note: This member is available only in NDIS 6.70 and later.
UdpSegmentation
UDP 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.
UdpRsc
UDP 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)