确定网络适配器的 NVGRE 任务卸载功能
使用泛型路由封装 (NVGRE) 任务卸载支持网络虚拟化的微型端口驱动程序通过其 MiniportInitializeEx 函数传递给 NdisMSetMiniportAttributes的NDIS_OFFLOAD结构来报告此功能。
报告 NVGRE 任务卸载功能
在 NDIS_OFFLOAD 结构中,必须按如下所示设置 标头 成员:
- Revision 成员必须设置为 NDIS_OFFLOAD_REVISION_3。
- Size 成员必须设置为 NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_3。
为了报告对 NVGRE 任务卸载的支持,微型端口驱动程序在 NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD 结构中设置以下成员,该结构存储在微型端口驱动程序的 MiniportInitializeEx 函数传递给 NdisMSetMiniportAttributes的 NDIS_OFFLOAD 结构的封装包TaskOffloadGre 成员中:
将 MaxHeaderSizeSupported 成员设置为从数据包开头到内部 TCP 或 UDP 有效负载开头的最大标头大小, (NIC 必须支持所有这些任务卸载的 TCP 或 UDP 内部标头) 的最后一个字节。 协议驱动程序预期不会卸载其组合封装标头超过此大小的数据包的处理。
注意 256 字节是一个很好的默认值,应涵盖所有可能的情况。
设置其他成员以指示微型端口驱动程序支持封装数据包的任务卸载类型。 有关可为这些成员设置的标志的列表,请参阅 NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD 的“备注”部分。
查询 NVGRE 任务卸载功能
若要确定微型端口驱动程序是否支持 NVGRE 任务卸载,协议和筛选器驱动程序可以发出 OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES OID 请求,这将返回 NDIS_OFFLOAD 结构。
注意 若要确定微型端口驱动程序的 NVGRE 功能当前是否已启用,请使用 OID_TCP_OFFLOAD_CURRENT_CONFIG OID 请求,如 查询和更改 NVGRE 任务卸载状态中所述。
注意 若要启用或禁用微型端口驱动程序的 NVGRE 功能,请使用 OID_TCP_OFFLOAD_PARAMETERS OID 请求,如 查询和更改 NVGRE 任务卸载状态中所述。