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;
} NDIS_OFFLOAD_PARAMETERS, *PNDIS_OFFLOAD_PARAMETERS;
成员
Header
NDIS_OFFLOAD_PARAMETERS 结构的NDIS_OBJECT_HEADER结构。 将 Header 指定的结构的 Type 成员设置为NDIS_OBJECT_TYPE_DEFAULT。
若要指示 NDIS_OFFLOAD_PARAMETERS 结构的版本,请将 Revision 成员设置为以下值之一:
IPv4Checksum
微型端口适配器的 IPv4 校验和设置。 有关更多信息,请参见下面的“备注”部分。
TCPIPv4Checksum
TCP 数据包的微型端口适配器的 IPv4 校验和设置。 有关更多信息,请参见下面的“备注”部分。
UDPIPv4Checksum
UDP 数据包的微型端口适配器的 IPv4 校验和设置。 有关更多信息,请参见下面的“备注”部分。
TCPIPv6Checksum
TCP 数据包的微型端口适配器的 IPv6 校验和设置。 有关更多信息,请参见下面的“备注”部分。
UDPIPv6Checksum
UDP 数据包的微型端口适配器的 IPv6 校验和设置。 有关更多信息,请参见下面的“备注”部分。
LsoV1
大型发送卸载版本 1 (LSOV1) 微型端口适配器的设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
|
微型端口驱动程序不应更改当前设置。 |
|
LSOV1 已禁用。 |
|
LSOV1 已启用。 |
IPsecV1
Internet 协议安全性 (IPsec) 微型端口适配器的卸载设置。 此设置应为以下值之一:
LsoV2IPv4
IPv4 大型发送卸载版本 2 (LSOV2) 微型端口适配器的设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
|
微型端口驱动程序不应更改当前设置。 |
|
LSOV2 for IPv4 已禁用。 |
|
已启用 LSOV2 for IPv4。 |
LsoV2IPv6
微型端口适配器的 IPv6 LSOV2 设置。 这些设置指定为以下值之一:
值 | 含义 |
---|---|
|
微型端口驱动程序不应更改当前设置。 |
|
IPv6 的 LSOV2 已禁用。 |
|
LSOV2 for IPv6 已启用。 |
TcpConnectionIPv4
微型端口适配器的 IPv4 连接卸载设置。 这些设置指定为以下值之一:
值 | 含义 |
---|---|
|
微型端口驱动程序不应更改当前设置。 |
TcpConnectionIPv6
微型端口适配器的 IPv6 连接卸载设置。 这些设置指定为以下值之一:
值 | 含义 |
---|---|
|
微型端口驱动程序不应更改当前设置。 |
Flags
一组可以与按位 OR 运算组合的标志。 将此成员设置为零。 当前未定义任何标志。
IPsecV2
Internet 协议安全性 (IPsec) 卸载支持 IPv6 和 IPv4 的微型端口适配器的版本 2 设置。 此成员指定 IPv6 和 IPv4 支持的设置。 此设置应为以下值之一:
IPsecV2IPv4
Internet 协议安全性 (IPsec) 卸载支持 IPv4 且不支持 IPv6 的微型端口适配器的版本 2 设置。 如果微型端口驱动程序支持 IPv6,则 IPsecV2 成员指定 IPv4 设置,并且不使用此成员。 此设置应为以下值之一:
RscIPv4
指示 IPv4 的接收段合并状态。
值 | 含义 |
---|---|
|
RSC 状态保持不变。 |
|
RSC 状态已启用。 |
|
RSC 状态已禁用。 |
RscIPv6
指示 IPv6 的接收段合并状态。
值 | 含义 |
---|---|
|
RSC 状态保持不变。 |
|
RSC 状态已启用。 |
|
RSC 状态已禁用。 |
EncapsulatedPacketTaskOffload
协议驱动程序按如下所示设置 EncapsulatedPacketTaskOffload :
值 | 含义 |
---|---|
|
NVGRE 和 VXLAN 任务卸载状态保持不变。 |
|
启用 NVGRE 和 VXLAN 任务卸载。 |
|
禁用 NVGRE 和 VXLAN 任务卸载。 |
EncapsulationTypes
仅当 EncapsulatedPacketTaskOffload 设置为 NDIS_OFFLOAD_SET_ON 时,此字段才有效。 如果 EncapsulatedPacketTaskOffload 成员未设置为 NDIS_OFFLOAD_SET_ON,则此成员为零。 协议驱动程序必须将 EncapsulationTypes 设置为它所需的封装类型所对应的标志的按位 OR。 它可以从以下各项中选择标志:
值 | 含义 |
---|---|
|
指定 GRE MAC 封装 (NVGRE) 。 |
|
指定 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) 设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
|
微型端口驱动程序不应更改当前设置。 |
|
禁用 USO。 |
|
已启用 USO。 |
UdpSegmentation.IPv6
IPv6 UDP 分段卸载 (微型端口适配器的 USO) 设置。 此设置应为以下值之一:
值 | 含义 |
---|---|
|
微型端口驱动程序不应更改当前设置。 |
|
USO 已禁用。 |
|
USO 已启用。 |
注解
为了响应 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) |
另请参阅
OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈