NDIS_TCP_LARGE_SEND_OFFLOAD_V2 结构 (ntddndis.h)

NDIS_TCP_LARGE_SEND_OFFLOAD_V2 结构在 NDIS_OFFLOAD 结构中提供大型发送卸载版本 2 (LSOV2 ) 信息。

语法

typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V2 {
  struct {
    ULONG Encapsulation;
    ULONG MaxOffLoadSize;
    ULONG MinSegmentCount;
  } IPv4;
  struct {
    ULONG Encapsulation;
    ULONG MaxOffLoadSize;
    ULONG MinSegmentCount;
    ULONG IpExtensionHeadersSupported : 2;
    ULONG TcpOptionsSupported : 2;
  } IPv6;
} NDIS_TCP_LARGE_SEND_OFFLOAD_V2, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V2;

成员

IPv4

NDIS_TCP_LARGE_SEND_OFFLOAD_V2 中的结构,它指定 IPv4 信息并包含以下成员:

IPv4.Encapsulation

IPv4 的封装设置。 有关此成员的详细信息,请参阅以下“备注”部分。

IPv4.MaxOffLoadSize

传输可以传递到单个数据包中的微型端口驱动程序的最大用户数据字节数。 传输不会将数据包传递到包含的用户数据字节多于 MaxOffLoadSize 指定的微型端口驱动程序。 如果必须传输此类数据包,则传输本身会将数据包分段为较小的数据包。

IPv4.MinSegmentCount

在传输可以将其卸载到硬件进行分段之前,大型 TCP 数据包必须被除以的最小段数。 除非微型端口驱动程序至少可以创建 MinSegmentCount 从数据包指定的段数,否则传输不会将大型数据包卸载到微型端口驱动程序进行分段。 如果大型 TCP 数据包不满足最小段要求,TCP/IP 传输本身会将数据包分段为较小的数据包。

IPv6

NDIS_TCP_LARGE_SEND_OFFLOAD_V2 中的一个结构,它指定 IPv6 信息并包含以下成员:

IPv6.Encapsulation

IPv6 的封装设置。 有关此成员的详细信息,请参阅以下“备注”部分。

IPv6.MaxOffLoadSize

传输可以传递到单个数据包中的微型端口驱动程序的最大用户数据字节数。 传输不会将数据包传递到包含的用户数据字节多于 MaxOffLoadSize 指定的微型端口驱动程序。 如果必须传输此类数据包,则传输本身会将数据包分段为较小的数据包。

IPv6.MinSegmentCount

大型 TCP 数据包在传输可以将其卸载到 NIC 进行分段之前必须被除的最小段数。 除非微型端口驱动程序至少可以创建 MinSegmentCount 从数据包指定的段数,否则传输不会将大型数据包卸载到微型端口驱动程序进行分段。 如果大型 TCP 数据包不满足最小段要求,TCP/IP 传输本身会将数据包分段为较小的数据包。

IPv6.IpExtensionHeadersSupported

微型端口驱动程序设置为指示微型端口适配器可以分段其 IP 标头包含 IPv6 扩展标头的大型 TCP 数据包的 ULONG 值。

IPv6.TcpOptionsSupported

微型端口驱动程序设置的 ULONG 值,指示微型端口驱动程序可以分段其 TCP 标头包含 TCP 选项的大型 TCP 数据包,或指示启用或禁用此功能。

注解

NDIS_TCP_LARGE_SEND_OFFLOAD_V2 结构用于 NDIS_OFFLOAD 结构的 LsoV2 成员中。 NDIS_TCP_LARGE_SEND_OFFLOAD_V2结构指定微型端口适配器为将大型 TCP 数据包分段成较小数据包而提供的当前或受支持的服务。 NDIS 还提供大型发送卸载版本 1 (LSOV1) ,这是 LSOV2 的早期版本。 有关 LSOV1 的详细信息,请参阅 NDIS_TCP_LARGE_SEND_OFFLOAD_V1

NDIS_OFFLOAD 用于 NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 结构 、NDIS_BIND_PARAMETERS 结构、 NDIS_FILTER_ATTACH_PARAMETERS 结构, OID_TCP_OFFLOAD_CURRENT_CONFIG OID 和 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示。

对于OID_TCP_OFFLOAD_CURRENT_CONFIG,NDIS_OFFLOAD结构指定微型端口适配器支持的任务卸载功能。 如果当前卸载功能发生更改,微型端口驱动程序会报告 中的新功能 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示。

NDIS_TCP_LARGE_SEND_OFFLOAD_V2封装成员定义微型端口适配器的 LSOV2 封装设置。

响应 OID_TCP_OFFLOAD_CURRENT_CONFIG 查询请求中,NDIS 在每个封装成员中提供封装标志的按位 OR,这些标志指示支持的 封装 设置。 微型端口驱动程序必须提供以太网封装 (NDIS_ENCAPSULATION_IEEE_802_3) 。 其他类型的封装是可选的。

对于 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示,微型端口驱动程序在每个 封装成员中 提供封装标志的按位 OR,这些标志指示当前功能。

封装 成员定义了以下标志:

NDIS_ENCAPSULATION_NOT_SUPPORTED
指定不支持封装卸载。

NDIS_ENCAPSULATION_NULL
指定 NULL 封装。

NDIS_ENCAPSULATION_IEEE_802_3
指定 IEEE 802.3 封装。

NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q
指定 IEEE 802.3p 和 IEEE 802.3q 封装。

NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB
指定在每个 NET_BUFFER_LIST 结构的 NetBufferListInfo 成员中指定 IEEE 802.3p 和 IEEE 802.3q 封装设置。

NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED
为路由协议指定逻辑链接控制 (LLC) 封装,如 RFC 1483 中所述。 此标志还用于指示以太网 LLC/SNAP 封装。

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
标头 ntddndis.h (包括 Ndis.h)

另请参阅

NDIS_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES

NDIS_OFFLOAD

NDIS_OID_REQUEST

NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG NDIS_TCP_LARGE_SEND_OFFLOAD_V1

NET_BUFFER_LIST

OID_TCP_OFFLOAD_CURRENT_CONFIG