NDIS_TCP_LARGE_SEND_OFFLOAD_V1结构(ntddndis.h)

NDIS_TCP_LARGE_SEND_OFFLOAD_V1结构在 NDIS_OFFLOAD 结构中提供大型发送卸载版本 1(LSOV1)信息。

语法

typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V1 {
  struct {
    ULONG Encapsulation;
    ULONG MaxOffLoadSize;
    ULONG MinSegmentCount;
    ULONG TcpOptions : 2;
    ULONG IpOptions : 2;
  } IPv4;
} NDIS_TCP_LARGE_SEND_OFFLOAD_V1, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V1;

成员

IPv4

包含以下成员的NDIS_TCP_LARGE_SEND_OFFLOAD_V1中的结构:

IPv4.Encapsulation

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

IPv4.MaxOffLoadSize

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

IPv4.MinSegmentCount

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

IPv4.TcpOptions

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

IPv4.IpOptions

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

言论

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

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_CONFIGNDIS_OFFLOAD 结构指定微型端口适配器支持的任务卸载功能。 如果当前卸载功能发生更改,微型端口驱动程序在 中报告新功能 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示。

封装NDIS_TCP_LARGE_SEND_OFFLOAD_V1 成员定义微型端口适配器的 LSOV1 封装功能或设置。

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

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

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

NDIS_ENCAPSULATION_NONE或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 封装。

TcpOptionsIpOptions 中的值 NDIS_TCP_LARGE_SEND_OFFLOAD_V1指定微型端口适配器支持 OID_TCP_OFFLOAD_CURRENT_CONFIG OID 或 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示。 这些成员可以具有以下值之一:

NDIS_OFFLOAD_NOT_SUPPORTED
微型端口适配器不支持成员指定的功能。

NDIS_OFFLOAD_SUPPORTED
微型端口适配器支持成员指定的功能

要求

要求 价值
最低支持的客户端 NDIS 6.0 及更高版本中受支持。
标头 ntddndis.h (include 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_V2

NET_BUFFER_LIST

OID_TCP_OFFLOAD_CURRENT_CONFIG