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:

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)