NetAdapterCx 支持在运行时卸载 TCP/IP 校验和任务。
在 TCP/IP 传输将 NET_PACKET 结构传递给客户端驱动程序之前,它会在 NET_PACKET_CHECKSUM 数据包扩展中指定与 NET_PACKET 关联的校验和信息。
TCP/IP 传输在卸载 TCP/UDP 数据包的校验和计算之前,先计算 TCP/UDP 伪头部的反码和,具体如 卸载校验和任务 中所述。
启用 泛型分段卸载(GSO)时,即使关闭校验和卸载,也不会阻止客户端驱动程序在由 GSO 功能生成的数据包中计算和插入校验和。 若要完全禁用校验和卸载,还必须禁用 GSO。
用于控制校验和卸载的 INF 关键字
NetAdapterCx 检查注册表关键字,并在启用主动卸载功能时遵循它们。 驱动程序不需要采取任何进一步措施。
在使用注册表值启用和禁用任务卸载中指定的校验和关键字可用于通过注册表项设置启用或禁用校验和卸载。 不支持分组关键字。
关键字值的类型必须为 REG_SZ。
配置校验和卸载
客户端驱动程序首先在网络适配器初始化期间声明其硬件的校验和卸载功能。 在启动网络适配器之前,可能会在其 EvtDevicePrepareHardware 回调中发生此情况。
若要配置传输 (Tx) 校验和卸载,客户端驱动程序:
- 分配 NET_ADAPTER_OFFLOAD_TX_CHECKSUM_CAPABILITIES 结构。
- 调用 NET_ADAPTER_OFFLOAD_TX_CHECKSUM_CAPABILITIES_INIT 来初始化结构。
- 调用 NetAdapterOffloadSetTxChecksumCapabilities 以向 NetAdapterCx 注册结构。
在调用 NET_ADAPTER_OFFLOAD_TX_CHECKSUM_CAPABILITIES_INIT 时,客户端驱动程序会提供一个指向 EVT_NET_ADAPTER_OFFLOAD_SET_TX_CHECKSUM 回调的指针。 如果活动卸载功能发生更改,系统稍后将调用此回调。
若要配置接收 (Rx) 校验和卸载,客户端驱动程序:
- 分配 NET_ADAPTER_OFFLOAD_RX_CHECKSUM_CAPABILITIES 结构。
- 调用 NET_ADAPTER_OFFLOAD_RX_CHECKSUM_CAPABILITIES_INIT 来初始化结构。
- 调用 NetAdapterOffloadSetRxChecksumCapabilities 以向 NetAdapterCx 注册结构。
在调用 NET_ADAPTER_OFFLOAD_RX_CHECKSUM_CAPABILITIES_INIT 时,客户端驱动程序提供了一个指向 EVT_NET_ADAPTER_OFFLOAD_SET_RX_CHECKSUM 回调的指针。 如果活动卸载功能发生更改,系统稍后将调用此回调。

1万+

被折叠的 条评论
为什么被折叠?



