NDIS_OFFLOAD structure (ntddndis.h)
The NDIS_OFFLOAD structure specifies several computational tasks that can be offloaded to the network adapter.
Syntax
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;
Members
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:
- For NDIS 6.83 and later drivers:
- Set Revision to NDIS_OFFLOAD_REVISION_6 (NDIS 6.83).
- Set Size to NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_6.
- For NDIS 6.70 and later drivers:
- Set Revision to NDIS_OFFLOAD_REVISION_5 (NDIS 6.70).
- Set Size to NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_5.
- For NDIS 6.50 and later drivers:
- Set Revision to NDIS_OFFLOAD_REVISION_4 (NDIS 6.50).
- Set Size to NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_4.
- For NDIS 6.30 and later drivers:
- Set Revision to NDIS_OFFLOAD_REVISION_3 (NDIS 6.30).
- Set Size to NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_3.
- For NDIS 6.1 and 6.20 drivers:
- Set Revision to NDIS_OFFLOAD_REVISION_2 (NDIS 6.1).
- Set Size to NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_2.
- For NDIS 6.0 drivers:
- Set Revision to NDIS_OFFLOAD_REVISION_1 (NDIS 6.0).
- Set Size to NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_1.
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.
Remarks
The NDIS_OFFLOAD structure is used in the following places:
- The DefaultOffloadConfiguration member of the NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES structure
- The DefaultOffloadConfiguration member of the NDIS_BIND_PARAMETERS structure
- The DefaultOffloadConfiguration member of the NDIS_FILTER_ATTACH_PARAMETERS structure
- The InformationBuffer member of the NDIS_OID_REQUEST structure (which is used in the OID_TCP_OFFLOAD_CURRENT_CONFIG OID request)
- The StatusBuffer member of the NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG status indication
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Vista,Supported in NDIS 6.0 and later. |
Minimum supported server | Windows Server 2008 |
Header | ntddndis.h (include Ndis.h) |
See also
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