NDIS_OFFLOAD_PARAMETERS 结构 (ntddndis.h)
NDIS_OFFLOAD_PARAMETERS 结构指定当前任务卸载配置设置,以响应 OID_TCP_OFFLOAD_PARAMETERS 的 OID 集请求。
语法
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;
struct {
UCHAR Enabled;
} UdpRsc;
} NDIS_OFFLOAD_PARAMETERS, *PNDIS_OFFLOAD_PARAMETERS;
成员
Header
NDIS_OFFLOAD_PARAMETERS 结构的NDIS_OBJECT_HEADER结构。 将 Header 指定的结构的 Type 成员设置为 NDIS_OBJECT_TYPE_DEFAULT。
若要指示 NDIS_OFFLOAD_PARAMETERS 结构的版本,请将 Revision 成员设置为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_REVISION_6 6 |
支持 NDIS 6.89 的 UdpRsc 成员。 将 Size 成员设置为 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_6。 |
NDIS_OFFLOAD_PARAMETERS_REVISION_5 5 |
支持适用于 IPv4 的 UdpSegmentation 和用于 NDIS 6.83 的 IPv6。 将 Size 成员设置为 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_5。 |
NDIS_OFFLOAD_PARAMETERS_REVISION_4 4 |
支持 NDIS 6.50 的 封装ProtocolParameters 及其嵌套 VxlanParameters 。 将 Size 成员设置为 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_4。 |
NDIS_OFFLOAD_PARAMETERS_REVISION_3 3 |
支持 NDIS 6.30 的 RscIPv4、 RscIPv6、 EncapsulatedPacketTaskOffload 和 EncapsulationTypes 成员。 将 Size 成员设置为 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_3。 |
NDIS_OFFLOAD_PARAMETERS_REVISION_2 2 |
支持 NDIS 6.1 的 IPsecV2、 IPsecV2IPv4、 Reserved1 和 Reserved2 成员。 将 Size 成员设置为 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2。 |
NDIS_OFFLOAD_PARAMETERS_REVISION_1 1 |
NDIS 6.0 的原始版本。 将 Size 成员设置为 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_1。 |
IPv4Checksum
微型端口适配器的 IPv4 校验和设置。 有关更多信息,请参见下面的“备注”部分。
TCPIPv4Checksum
TCP 数据包的微型端口适配器的 IPv4 校验和设置。 有关更多信息,请参见下面的“备注”部分。
UDPIPv4Checksum
UDP 数据包的微型端口适配器的 IPv4 校验和设置。 有关更多信息,请参见下面的“备注”部分。
TCPIPv6Checksum
TCP 数据包的微型端口适配器的 IPv6 校验和设置。 有关更多信息,请参见下面的“备注”部分。
UDPIPv6Checksum
UDP 数据包的微型端口适配器的 IPv6 校验和设置。 有关更多信息,请参见下面的“备注”部分。
LsoV1
大型发送卸载版本 1 (LSOV1) 微型端口适配器的设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | 微型端口驱动程序不应更改当前设置。 |
NDIS_OFFLOAD_PARAMETERS_LSOV1_DISABLED | LSOV1 已禁用。 |
NDIS_OFFLOAD_PARAMETERS_LSOV1_ENABLED | LSOV1 已启用。 |
IPsecV1
Internet 协议安全性 (IPsec) 微型端口适配器的卸载设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | 微型端口驱动程序不应更改当前设置。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV1_DISABLED | IPsec 卸载已禁用。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_ENABLED | 应启用 IPsec 卸载身份验证标头 (AH) 功能进行传输和接收。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV1_ESP_ENABLED | 应启用 IPsec 卸载封装安全有效负载 (ESP) 功能,以便进行传输和接收。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_AND_ESP_ENABLED | 为传输和接收启用了 IPsec 卸载 AH 和 ESP 功能。 |
LsoV2IPv4
IPv4 大型发送卸载版本 2 (LSOV2) 微型端口适配器的设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | 微型端口驱动程序不应更改当前设置。 |
NDIS_OFFLOAD_PARAMETERS_LSOV2_DISABLED | LSOV2 for IPv4 已禁用。 |
NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED | 已启用 LSOV2 for IPv4。 |
LsoV2IPv6
微型端口适配器的 IPv6 LSOV2 设置。 这些设置指定为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | 微型端口驱动程序不应更改当前设置。 |
NDIS_OFFLOAD_PARAMETERS_LSOV2_DISABLED | IPv6 的 LSOV2 处于禁用状态。 |
NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED | 已启用 LSOV2 for IPv6。 |
TcpConnectionIPv4
微型端口适配器的 IPv4 连接卸载设置。 这些设置指定为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | 微型端口驱动程序不应更改当前设置。 |
TcpConnectionIPv6
微型端口适配器的 IPv6 连接卸载设置。 这些设置指定为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | 微型端口驱动程序不应更改当前设置。 |
Flags
一组可以与按位 OR 运算组合的标志。 将此成员设置为零或以下值:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_SKIP_REGISTRY_UPDATE 0x00000001 |
允许仅在运行时禁用 UDP 接收段合并卸载 (URO) 。 使用此标志所做的更改不会保存到注册表中。 |
IPsecV2
Internet 协议安全性 (IPsec) 卸载支持 IPv6 和 IPv4 的微型端口适配器的版本 2 设置。 此成员指定 IPv6 和 IPv4 支持的设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | 微型端口驱动程序不应更改当前设置。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV2_DISABLED | IPsec 卸载版本 2 已禁用。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_ENABLED | 应为传输和接收启用 IPsec 卸载版本 2 身份验证标头 (AH) 功能。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV2_ESP_ENABLED | 应为传输和接收启用 IPsec 卸载版本 2 封装安全有效负载 (ESP) 功能。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_AND_ESP_ENABLED | 为传输和接收启用了 IPsec 卸载版本 2 AH 和 ESP 功能。 |
IPsecV2IPv4
Internet 协议安全性 (IPsec) 卸载支持 IPv4 且不支持 IPv6 的微型端口适配器的版本 2 设置。 如果微型端口驱动程序支持 IPv6,则 IPsecV2 成员指定 IPv4 设置,并且不使用此成员。 此设置应为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | 微型端口驱动程序不应更改当前设置。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV2_DISABLED | IPsec 卸载版本 2 已禁用。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_ENABLED | 应为传输和接收启用 IPsec 卸载版本 2 身份验证标头 (AH) 功能。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV2_ESP_ENABLED | 应为传输和接收启用 IPsec 卸载版本 2 封装安全有效负载 (ESP) 功能。 |
NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_AND_ESP_ENABLED | 为传输和接收启用了 IPsec 卸载版本 2 AH 和 ESP 功能。 |
RscIPv4
指示 IPv4 的接收段合并状态。
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | RSC 状态保持不变。 |
NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED | RSC 状态已启用。 |
NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED | RSC 状态已禁用。 |
RscIPv6
指示 IPv6 的接收段合并状态。
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | RSC 状态保持不变。 |
NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED | RSC 状态已启用。 |
NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED | RSC 状态已禁用。 |
EncapsulatedPacketTaskOffload
协议驱动程序按如下所示设置 EncapsulatedPacketTaskOffload :
注意:对于接收端卸载(如 VMQ 和 RSS),协议驱动程序会发送其他集 OID 来启用和配置卸载参数, (例如队列、哈希和间接表) 。 EncapsulatedPacketTaskOffload 成员是对这些 OID 的补充,并指示 NIC 也为封装的数据包执行这些卸载。
值 | 含义 |
---|---|
NDIS_OFFLOAD_SET_NO_CHANGE 0 |
NVGRE 和 VXLAN 任务卸载状态保持不变。 |
NDIS_OFFLOAD_SET_ON 1 |
启用 NVGRE 和 VXLAN 任务卸载。 |
NDIS_OFFLOAD_SET_OFF 2 |
禁用 NVGRE 和 VXLAN 任务卸载。 |
EncapsulationTypes
仅当 EncapsulatedPacketTaskOffload 设置为 NDIS_OFFLOAD_SET_ON 时,此字段才有效。 如果 EncapsulatedPacketTaskOffload 成员未设置为 NDIS_OFFLOAD_SET_ON,则此成员为零。 协议驱动程序必须将 EncapsulationTypes 设置为它所需的封装类型所对应的标志的按位 OR。 它可以从以下各项中选择标志:
值 | 含义 |
---|---|
NDIS_ENCAPSULATION_TYPE_GRE_MAC 0x00000001 |
指定 GRE MAC 封装 (NVGRE) 。 |
NDIS_ENCAPSULATION_TYPE_VXLAN 0x00000002 |
指定 VXLAN 封装。 |
EncapsulationProtocolParameters
描述 VXLAN 封装的封装参数的联合。
如果微型端口驱动程序将 VxlanUDPPortNumerConfigurable 播发为 TRUE,则协议驱动程序可以将 EncapsulationProtocolParameters.VxlanParameters.VxlanUDPPortNumber 设置为非 0 值。 微型端口驱动程序必须在成功 OID 后使用此端口号来匹配和生成 VXLAN 帧,并在其功能中播发更新的值。 如果协议驱动程序传递的值为 0,则微型端口驱动程序继续使用从标准化关键字 (keyword) 初始化的端口号。
EncapsulationProtocolParameters.VxlanParameters
包含 VxlanUDPPortNumber 的结构。
EncapsulationProtocolParameters.VxlanParameters.VxlanUDPPortNumber
VXLAN 目标端口值。 默认情况下,此值设置为 IANA 分配的值 4789。 如果微型端口驱动程序支持 NDIS_OFFLOAD 结构中播发的可配置端口号,则协议驱动程序可以发出 OID_TCP_OFFLOAD_PARAMETERS OID,以便在 VxlanUDPPortNumber 中启用具有不同值的NDIS_ENCAPSULATION_TYPE_VXLAN。 微型端口驱动程序必须使用 VxlanUDPPortNumber 来确定用于执行接收卸载的 VXLAN 封装数据包。
EncapsulationProtocolParameters.Value
如果未将 EncapsulationTypes 设置为 NDIS_ENCAPSULATION_TYPE_VXLAN,则为端口值。
_ENCAPSULATION_PROTOCOL_PARAMETERS
封装ProtocolParameters 的类型名称。
UdpSegmentation
描述微型端口适配器的 UDP 分段卸载 (USO) 设置的结构。
UdpSegmentation.IPv4
IPv4 UDP 分段卸载 (微型端口适配器的 USO) 设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | 微型端口驱动程序不应更改当前设置。 |
NDIS_OFFLOAD_PARAMETERS_UDP_SEG_DISABLED | 禁用 USO。 |
NDIS_OFFLOAD_PARAMETERS_UDP_SEG_ENABLED | 已启用 USO。 |
UdpSegmentation.IPv6
IPv6 UDP 分段卸载 (微型端口适配器的 USO) 设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE | 微型端口驱动程序不应更改当前设置。 |
NDIS_OFFLOAD_PARAMETERS_UDP_SEG_DISABLED | 禁用 USO。 |
NDIS_OFFLOAD_PARAMETERS_UDP_SEG_ENABLED | 已启用 USO。 |
UdpRsc
描述微型端口适配器的 UDP 接收段合并卸载 (URO) 设置的结构。
UdpRsc.Enabled
微型端口适配器的 URO 设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
NDIS_OFFLOAD_PARAMETERS_UDP_RSC_NO_CHANGE 0 |
微型端口驱动程序不应更改当前设置。 |
NDIS_OFFLOAD_PARAMETERS_UDP_RSC_DISABLED 1 |
URO 已禁用。 |
NDIS_OFFLOAD_PARAMETERS_UDP_RSC_ENABLED 2 |
已启用 URO。 |
注解
为了响应 OID_TCP_OFFLOAD_PARAMETERS OID 集请求,微型端口驱动程序使用 NDIS_OFFLOAD_PARAMETERS 结构中的设置来设置微型端口适配器的当前配置。
NDIS 在卸载标准化关键字的注册表中保留请求的设置。 当 NDIS 重启微型端口适配器时,微型端口驱动程序将读取卸载标准化关键字,并使用它们来设置 NIC 的默认卸载配置。
若要访问校验和卸载设置,请使用 NDIS_OFFLOAD_PARAMETERS 结构的以下成员:
IPv4Checksum
TCPIPv4Checksum
UDPIPv4Checksum
TCPIPv6Checksum
UDPIPv6Checksum
上述成员可以具有以下值之一:
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE
微型端口驱动程序不应更改当前设置。
NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED
禁用成员指定的功能。
NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED
为传输启用成员指定的功能,并为接收禁用该功能。
NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED
为接收启用成员指定的功能,并为传输禁用该功能。
NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED
为传输和接收启用成员指定的功能。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista,在 NDIS 6.0 及更高版本中受支持。 |
最低受支持的服务器 | Windows Server 2008 |
标头 | ntddndis.h (包括 Ndis.h) |