NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD 结构 (ntddndis.h)
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD 结构包含使用通用路由封装 (NVGRE) 任务卸载 (NVGRE-TO) 的网络虚拟化的卸载支持状态。 此结构在 NDIS_OFFLOAD 结构的封装包TaskOffloadGre 成员中使用。
语法
typedef struct _NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD {
ULONG TransmitChecksumOffloadSupported : 4;
ULONG ReceiveChecksumOffloadSupported : 4;
ULONG LsoV2Supported : 4;
ULONG RssSupported : 4;
ULONG VmqSupported : 4;
ULONG UsoSupported : 4;
ULONG Reserved : 8;
ULONG MaxHeaderSizeSupported;
} NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD, *PNDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD;
成员
TransmitChecksumOffloadSupported
传输校验和的任务卸载设置。
ReceiveChecksumOffloadSupported
接收校验和的任务卸载设置。
LsoV2Supported
大型发送卸载版本 2 (LSOv2) 的任务卸载设置。
RssSupported
接收方缩放 (RSS) 的任务卸载设置。
VmqSupported
虚拟机队列 (VMQ) 的任务卸载设置。
UsoSupported
UDP 分段卸载的任务卸载设置 (USO) 。
Reserved
预留给系统使用。
MaxHeaderSizeSupported
此成员应设置为从数据包开头到内部 TCP 或 UDP 有效负载开头的最大标头大小, (TCP 或 UDP 内部标头) NIC 必须支持所有这些任务卸载的最后一个字节。 协议驱动程序预计不会卸载其合并封装标头超过此大小的数据包的处理。
注意:256 字节是一个很好的默认值,应涵盖所有可能的情况。
注解
在初始功能播发以及 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 和 NDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES 状态指示中,可以将 TransmitChecksumOffloadSupported、 ReceiveChecksumOffloadSupported、 LsoV2Supported、 RssSupported、 VmqSupported 和 UsoSupported 成员设置为以下标志的按位 OR:
术语 | 说明 |
---|---|
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED | 指定微型端口适配器不支持成员指定的相应任务卸载功能。 |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 | 指定微型端口适配器支持成员指定封装数据包的内部 IP 标头为 IPv4 的位置的相应任务卸载功能。 |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 | 指定微型端口适配器支持成员指定封装数据包的外部 IP 标头为 IPv4 的位置的相应任务卸载功能。 |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 | 指定微型端口适配器支持成员指定封装数据包的内部 IP 标头为 IPv6 的位置的相应任务卸载功能。 |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 | 指定微型端口适配器支持成员指定封装数据包的外部 IP 标头为 IPv6 的位置的相应任务卸载功能。 |
例如,如果微型端口适配器和驱动程序仅支持 IPv6 标头作为外部 IP 标头,而不支持作为内部 IP 标头,则会将 TransmitChecksumOffloadSupported、 ReceiveChecksumOffloadSupported、 LsoV2Supported、 RssSupported、 VmqSupported 和 UsoSupported 设置为 NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 的按位 OR 值,NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4和NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6。
关于 IP 选项和 TCP 选项,对封装的数据包进行了以下假设:
- 如果 NIC 在正常校验和卸载和 LSOv2 播发中指定 IpOptions 和 TcpOptions 支持,则如果支持 使用通用路由封装的网络虚拟化 (NVGRE) 任务卸载 ,则必须支持封装数据包的选项处理。 这意味着它将支持封装数据包中的内部和外部 IP 选项以及 TCP 选项。 对于特定于 NVGRE 任务卸载的功能,没有单独的功能播发。
协议驱动程序可以卸载“混合模式”数据包,这意味着内部和外部 IP 标头版本不同的数据包。 例如,数据包可以将外部 IP 标头作为 IPv6,将内部 IP 标头作为 IPv4。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8,在 NDIS 6.30 及更高版本中受支持。 |
最低受支持的服务器 | Windows Server 2012 |
标头 | ntddndis.h (包括 Ndis.h) |