NDIS_OFFLOAD_ENCAPSULATION structure (ndis/encapsulationconfig.h)

The NDIS_OFFLOAD_ENCAPSULATION structure specifies encapsulation settings when it is used with the OID_OFFLOAD_ENCAPSULATION OID.

Syntax

typedef struct _NDIS_OFFLOAD_ENCAPSULATION {
  NDIS_OBJECT_HEADER Header;
  struct {
    ULONG Enabled;
    ULONG EncapsulationType;
    ULONG HeaderSize;
  } IPv4;
  struct {
    ULONG Enabled;
    ULONG EncapsulationType;
    ULONG HeaderSize;
  } IPv6;
} NDIS_OFFLOAD_ENCAPSULATION, *PNDIS_OFFLOAD_ENCAPSULATION;

Members

Header

The NDIS_OBJECT_HEADER structure for the NDIS_OFFLOAD_ENCAPSULATION structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_OFFLOAD_ENCAPSULATION, the Revision member to NDIS_OFFLOAD_ENCAPSULATION_ REVISION _1, and the Size member to NDIS_SIZEOF_OFFLOAD_ENCAPSULATION_REVISION_1.

IPv4

A structure within NDIS_OFFLOAD_ENCAPSULATION that specifies IPv4 encapsulation and that contains the following members:

IPv4.Enabled

A ULONG value that enables IPv4 encapsulation. A protocol driver sets Enabled to NDIS_OFFLOAD_SET_ON if it is enabling IPv4 large send offload version 1 (LSOV1), large send offload version 2 (LSOV2), or checksum offloads. If a protocol driver is deactivating all offloads, it sets Enabled to NDIS_OFFLOAD_SET_OFF. Otherwise, the protocol driver sets Enabled to NDIS_OFFLOAD_SET_NO_CHANGE.

IPv4.EncapsulationType

The IPv4 encapsulation type. If the Enabled member is not set to NDIS_OFFLOAD_SET_ON, this member is zero. If the Enabled member is set to NDIS_OFFLOAD_SET_ON, a protocol driver must set EncapsulationType to one of the following:

Value Meaning
NDIS_ENCAPSULATION_IEEE_802_3
Specifies IEEE 802.3 encapsulation. When this value is specified, a miniport driver should also use NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q or NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB encapsulation where applicable. See documentation for NDIS_OFFLOAD for more information.
NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED
Specifies logical link control (LLC) encapsulation for routed protocols, as described in RFC 1483. This flag is also used to indicate Ethernet LLC/SNAP encapsulation.

IPv4.HeaderSize

The Ethernet header length that is used in IPv4 packets. If the Enabled member is not set to NDIS_OFFLOAD_SET_ON, this member is zero. If the Enabled member is set to NDIS_OFFLOAD_SET_ON, a protocol driver must set HeaderSize to the size of the Ethernet header that it uses.

IPv6

A structure within NDIS_OFFLOAD_ENCAPSULATION that specifies IPv6 encapsulation and that contains the following members:

IPv6.Enabled

A ULONG value that enables IPv6 encapsulation. A protocol driver sets Enabled to NDIS_OFFLOAD_SET_ON if it is enabling IPv6 LSOV1, LSOV2, or checksum offloads. If a protocol driver is deactivating all offloads, it sets Enabled to NDIS_OFFLOAD_SET_OFF. Otherwise, the protocol driver sets Enabled to NDIS_OFFLOAD_SET_NO_CHANGE.

IPv6.EncapsulationType

The IPv6 encapsulation type. If the Enabled member is not set to NDIS_OFFLOAD_SET_ON, EncapsulationType is zero. If the Enabled member is set to NDIS_OFFLOAD_SET_ON, a protocol driver must set EncapsulationType to one of the following:

Value Meaning
NDIS_ENCAPSULATION_IEEE_802_3
Specifies IEEE 802.3 encapsulation. When this value is specified, a miniport driver should also use NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q or NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB encapsulation where applicable. See documentation for NDIS_OFFLOAD for more information.
NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED
Specifies LLC encapsulation for routed protocols, as described in RFC 1483. This flag is also used to indicate Ethernet LLC/SNAP encapsulation.

IPv6.HeaderSize

The Ethernet header length that is used in IPv6 packets. If the Enabled member is not set to NDIS_OFFLOAD_SET_ON, this member is zero. If the Enabled member is set to NDIS_OFFLOAD_SET_ON, a protocol driver must set HeaderSize to the size of the Ethernet header that it uses.

Remarks

The NDIS_OFFLOAD_ENCAPSULATION structure specifies the requested encapsulation settings that a miniport adapter should use for task offload services.

In a set of OID_OFFLOAD_ENCAPSULATION, a protocol driver specifies an NDIS_OFFLOAD_ENCAPSULATION structure in the InformationBuffer member of the NDIS_OID_REQUEST structure.

Requirements

Requirement Value
Minimum supported client Supported in NDIS 6.0 and later.
Header ndis/encapsulationconfig.h (include ndis.h)

See also

NDIS_OBJECT_HEADER

NDIS_OID_REQUEST

OID_OFFLOAD_ENCAPSULATION