NDIS_OFFLOAD_PARAMETERS structure (ntddndis.h)
The NDIS_OFFLOAD_PARAMETERS structure specifies the current task offload configuration settings in response to an OID set request of OID_TCP_OFFLOAD_PARAMETERS.
Syntax
typedef struct _NDIS_OFFLOAD_PARAMETERS {
NDIS_OBJECT_HEADER Header;
UCHAR IPv4Checksum;
UCHAR TCPIPv4Checksum;
UCHAR UDPIPv4Checksum;
UCHAR TCPIPv6Checksum;
UCHAR UDPIPv6Checksum;
UCHAR LsoV1;
UCHAR IPsecV1;
UCHAR LsoV2IPv4;
UCHAR LsoV2IPv6;
UCHAR TcpConnectionIPv4;
UCHAR TcpConnectionIPv6;
ULONG Flags;
UCHAR IPsecV2;
UCHAR IPsecV2IPv4;
struct {
UCHAR RscIPv4;
UCHAR RscIPv6;
};
struct {
UCHAR EncapsulatedPacketTaskOffload;
UCHAR EncapsulationTypes;
};
union {
struct {
USHORT VxlanUDPPortNumber;
} VxlanParameters;
ULONG Value;
} EncapsulationProtocolParameters;
_ENCAPSULATION_PROTOCOL_PARAMETERS _ENCAPSULATION_PROTOCOL_PARAMETERS;
struct {
UCHAR IPv4;
UCHAR IPv6;
} UdpSegmentation;
} NDIS_OFFLOAD_PARAMETERS, *PNDIS_OFFLOAD_PARAMETERS;
Members
Header
The NDIS_OBJECT_HEADER structure for the NDIS_OFFLOAD_PARAMETERS structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_DEFAULT.
To indicate the version of the NDIS_OFFLOAD_PARAMETERS structure, set the Revision member to one of the following values:
IPv4Checksum
The IPv4 checksum setting of the miniport adapter. For more information, see the following Remarks section.
TCPIPv4Checksum
The IPv4 checksum setting of the miniport adapter for TCP packets. For more information, see the following Remarks section.
UDPIPv4Checksum
The IPv4 checksum setting of the miniport adapter for UDP packets. For more information, see the following Remarks section.
TCPIPv6Checksum
The IPv6 checksum setting of the miniport adapter for TCP packets. For more information, see the following Remarks section.
UDPIPv6Checksum
The IPv6 checksum setting of the miniport adapter for UDP packets. For more information, see the following Remarks section.
LsoV1
The large send offload version 1 (LSOV1) setting of the miniport adapter. This setting should be one of the following values:
IPsecV1
The Internet protocol security (IPsec) offload setting of the miniport adapter. This setting should be one of the following values:
LsoV2IPv4
The IPv4 large send offload version 2 (LSOV2) setting of the miniport adapter. This setting should be one of the following values:
LsoV2IPv6
The IPv6 LSOV2 setting of the miniport adapter. These settings are specified as one of the following values:
TcpConnectionIPv4
The IPv4 connection offload setting of the miniport adapter. These settings are specified as one of the following values:
Value | Meaning |
---|---|
|
The miniport driver should not change the current setting. |
TcpConnectionIPv6
The IPv6 connection offload setting of the miniport adapter. These settings are specified as one of the following values:
Value | Meaning |
---|---|
|
The miniport driver should not change the current setting. |
Flags
A set of flags that can be combined with a bitwise OR operation. Set this member to zero. There are currently no flags defined.
IPsecV2
The Internet protocol security (IPsec) offload version 2 setting of a miniport adapter that supports IPv6 and IPv4. This member specifies the setting for both IPv6 and IPv4 support. This setting should be one of the following values:
IPsecV2IPv4
The Internet protocol security (IPsec) offload version 2 setting of a miniport adapter that supports IPv4 and does not support IPv6. If the miniport driver supports IPv6, the IPsecV2 member specifies the IPv4 setting and this member is not used. This setting should be one of the following values:
RscIPv4
Indicates Receive Segment Coalescing state for IPv4.
RscIPv6
Indicates Receive Segment Coalescing state for IPv6.
EncapsulatedPacketTaskOffload
A protocol driver sets EncapsulatedPacketTaskOffload as follows:
EncapsulationTypes
This field is effective only when the EncapsulatedPacketTaskOffload is set to NDIS_OFFLOAD_SET_ON. If the EncapsulatedPacketTaskOffload member is not set to NDIS_OFFLOAD_SET_ON, this member is zero. A protocol driver must set EncapsulationTypes to the bitwise OR of the flags corresponding to encapsulation types that it requires. It can select flags from the following:
Value | Meaning |
---|---|
|
Specifies GRE MAC encapsulation (NVGRE). |
|
Specifies VXLAN encapsulation. |
EncapsulationProtocolParameters
A union that describes the encapsulation parameters for VXLAN encapsulation.
If the miniport driver advertised VxlanUDPPortNumerConfigurable as TRUE, then a protocol driver can set EncapsulationProtocolParameters.VxlanParameters.VxlanUDPPortNumber to a non-0 value. The minport driver must use this port number for matching and generating VXLAN frames after succeeding the OID, and also advertise the updated value in its capabilities. If the protocol driver passes a value of 0, then the miniport driver continues to use the port number initialized from the standardized keyword.
EncapsulationProtocolParameters.VxlanParameters
A structure that contains the VxlanUDPPortNumber.
EncapsulationProtocolParameters.VxlanParameters.VxlanUDPPortNumber
The VXLAN destination port value. This value is set to the IANA-assigned value of 4789 by default. If the miniport driver supports a configurable port number as advertised in the NDIS_OFFLOAD structure, a protocol driver can issue an OID_TCP_OFFLOAD_PARAMETERS OID to enable NDIS_ENCAPSULATION_TYPE_VXLAN with a different value in VxlanUDPPortNumber. The miniport driver must use VxlanUDPPortNumber to determine VXLAN encapsulated packets for performing receive offloads.
EncapsulationProtocolParameters.Value
The port value if EncapsulationTypes is not set to NDIS_ENCAPSULATION_TYPE_VXLAN.
_ENCAPSULATION_PROTOCOL_PARAMETERS
The type name for EncapsulationProtocolParameters.
UdpSegmentation
A structure that describes the miniport adapter's UDP Segmentation Offload (USO) settings.
UdpSegmentation.IPv4
The IPv4 UDP Segmentation Offload (USO) setting of the miniport adapter. This setting should be one of the following values:
UdpSegmentation.IPv6
The IPv6 UDP Segmentation Offload (USO) setting of the miniport adapter. This setting should be one of the following values:
Remarks
In response to an OID_TCP_OFFLOAD_PARAMETERS OID set request, a miniport driver uses the settings in the NDIS_OFFLOAD_PARAMETERS structure to set the current configuration of the miniport adapter.
NDIS retains the requested settings in the registry in the offload standardized keywords. When NDIS restarts the miniport adapter, the miniport driver reads the offload standardized keywords and uses them to set the default offload configuration of the NIC.
To access the checksum offload settings, use the following members of the NDIS_OFFLOAD_PARAMETERS structure:
IPv4Checksum
TCPIPv4Checksum
UDPIPv4Checksum
TCPIPv6Checksum
UDPIPv6Checksum
The preceding members can have one of the following values:
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE
The miniport driver should not change the current setting.
NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED
The feature that the member specifies is disabled.
NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED
The feature that the member specifies is enabled for transmit and disabled for receive.
NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED
The feature that the member specifies is enabled for receive and disabled for transmit.
NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED
The feature that the member specifies is enabled for transmit and receive.
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
OID_TCP_OFFLOAD_HARDWARE_CAPABILITIESFeedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for