使用注册表值启用和禁用任务卸载

调试驱动程序的任务卸载功能时,可能会发现使用注册表项设置启用或禁用任务卸载服务很有用。 可以在 INF 文件和注册表中定义标准化关键字。 有关标准化关键字的详细信息,请参阅网络设备的标准化 INF 关键字

任务卸载关键字属于两个组之一:精细关键字或分组关键字。 精细关键字为每个卸载功能(传输层区分、IP 协议区分)提供关键字。 分组关键字在传输层提供组合关键字功能。

精细关键字

精细关键字的定义如下:

关键字 说明
*IPChecksumOffloadIPv4 描述设备是启用还是禁用了 IPv4 校验和的计算。
*TCPChecksumOffloadIPv4 描述设备是启用还是禁用了通过 IPv4 数据包计算 TCP 校验和。
*TCPChecksumOffloadIPv6 描述设备是启用还是禁用了通过 IPv6 数据包计算 TCP 校验和。
*UDPChecksumOffloadIPv4 描述设备是启用还是禁用了通过 IPv4 数据包计算 UDP 校验和。
*UDPChecksumOffloadIPv6 描述设备是启用还是禁用了通过 IPv6 数据包计算 UDP 校验和。
*LsoV1IPv4 描述设备是启用还是禁用了通过 IPv4 为大型发送卸载版本 1 (LSOv1) 进行大型 TCP 数据包分段。
*LsoV2IPv4 描述设备是启用还是禁用了通过 IPv4 为大型发送卸载版本 2 (LSOv2) 进行大型 TCP 数据包分段。
*LsoV2IPv6 描述设备是启用还是禁用了通过 IPv6 为大型发送卸载版本 2 (LSOv2) 进行大型 TCP 数据包分段。
*IPsecOffloadV1IPv4 描述设备是启用还是禁用了通过 IPv4 计算 IPsec 标头。
*IPsecOffloadV2 描述设备是启用还是禁用了 IPsec 卸载版本 2 (IPsecOV2)。 IPsecOV2 为额外的加密算法、IPv6 和与大型发送卸载版本 2 (LSOv2) 共存提供支持。
*IPsecOffloadV2IPv4 描述设备是仅为 IPv4 启用还是禁用了 IPsecOV2。

下表描述了可用于配置卸载服务的精细关键字。

SubkeyName ParamDesc EnumDesc
IPChecksumOffloadIPv4 IPv4 校验和卸载 0 已禁用
1 Tx 已启用
2 Rx 已启用
3(默认值) Rx & Tx 已启用
TCPChecksumOffloadIPv4 TCP 校验和卸载 (IPv4) 0 已禁用
1 Tx 已启用
2 Rx 已启用
3(默认值) Rx & Tx 已启用
TCPChecksumOffloadIPv6 TCP 校验和卸载 (IPv6) 0 已禁用
1 Tx 已启用
2 Rx 已启用
3(默认值) Rx & Tx 已启用
UDPChecksumOffloadIPv4 UDP 校验和卸载 (IPv4) 0 已禁用
1 Tx 已启用
2 Rx 已启用
3(默认值) Rx & Tx 已启用
UDPChecksumOffloadIPv6 UDP 校验和卸载 (IPv6) 0 已禁用
1 Tx 已启用
2 Rx 已启用
3(默认值) Rx & Tx 已启用
LsoV1IPv4 大型发送卸载版本 1 (IPv4) 0 已禁用
1(默认值) 已启用
LsoV2IPv4 Large Send Offload V2 (IPv4) 0 已禁用
1(默认值) 已启用
LsoV2IPv6 大型发送卸载 V2 (IPv6) 0 已禁用
1(默认值) 已启用
IPsecOffloadV1IPv4 IPsec 卸载版本 1 (IPv4) 0 已禁用
1 身份验证标头已启用
2 已启用 ESP
3(默认值) 身份验证标头 & ESP 已启用
IPsecOffloadV2 IPsec 卸载 0 已禁用
1 身份验证标头已启用
2 已启用 ESP
3(默认值) 身份验证标头 & ESP 已启用
*IPsecOffloadV2IPv4 IPsec 卸载(仅限 IPv4) 0 已禁用
1 身份验证标头已启用
2 已启用 ESP
3(默认值) 身份验证标头 & ESP 已启用

注意

INF 文件可以支持 UI 的“高级属性”页面中显示的精细关键字。 微型端口驱动程序必须在初始化时从注册表读取所有精细设置,包括未显示的设置,才能注册 NDIS 卸载功能。

分组关键字

分组关键字的定义如下:

关键字 说明
*TCPUDPChecksumOffloadIPv4 描述设备是启用还是禁用了通过 IPv4 计算 IP、TCP 和 UDP 校验和。
*TCPUDPChecksumOffloadIPv6 描述设备是启用还是禁用了通过 IPv6 计算 TCP 和 UDP 校验和。

下表描述了可用于配置卸载服务的分组关键字。

SubkeyName ParamDesc EnumDesc
TCPUDPChecksumOffloadIPv4 TCP/UDP 校验和卸载 (IPv4) 0 已禁用
1 Tx 已启用
2 Rx 已启用
3(默认值) Tx & Rx 已启用
TCPUDPChecksumOffloadIPv6 TCP/UDP 校验和卸载 (IPv6) 0 已禁用
1 Tx 已启用
2 Rx 已启用
3(默认值) Tx & Rx 已启用

可以启用的卸载组合存在限制。 例如,如果微型端口适配器支持 LSOV1 或 LSOV2,微型端口适配器还会计算 IP 和 TCP 校验和。 有关卸载的有效组合的详细信息,请参阅组合任务卸载的类型

如果使用注册表项设置禁用任务卸载服务,协议驱动程序不得签发 OID_OFFLOAD_ENCAPSULATION 对象标识符 (OID)。

可以使用以下注册表值来启用或禁用 TCP/IP 协议的任务卸载:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters\DisableTaskOffload
将此值设置为 1 会禁用 TCP/IP 传输中的所有任务卸载。 将此值设置为 0 会启用所有任务卸载。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Ipsec\EnabledOffload
将此值设置为 0 会禁用 TCP/IP 传输中的 Internet 协议安全性 (IPsec) 卸载。 TCP/IP 校验和任务的卸载、大型发送卸载版本 1 (LSOV1) 和大型发送卸载版本 2 (LSOV2) 不会受到影响。 将此值设置为 1 会启用 IPsec 卸载。