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_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.
 

Remarks

The NDIS_OFFLOAD structure is used in the following places:

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_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_IPSEC_OFFLOAD_V1

NDIS_IPSEC_OFFLOAD_V2

NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_OID_REQUEST

NDIS_STATUS_INDICATION

NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG

NDIS_TCP_IP_CHECKSUM_OFFLOAD

NDIS_TCP_LARGE_SEND_OFFLOAD_V1 NDIS_TCP_LARGE_SEND_OFFLOAD_V2

Network Virtualization using Generic Routing Encapsulation (NVGRE) Task Offload

OID_OFFLOAD_ENCAPSULATION

OID_TCP_OFFLOAD_CURRENT_CONFIG

OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES

TCP/IP Task Offload

UDP Segmentation Offload (USO)