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
微型端口驱动程序设置的 ULONG 值,指示微型端口驱动程序可以分段其 TCP 标头包含 TCP 选项的大型 TCP 数据包,或指示此功能已启用或禁用。 TCP/IP 传输将此值设置为启用或禁用此功能。
IPv4.IpOptions
微型端口驱动程序设置的 ULONG 值,指示微型端口适配器可以分段其 IP 标头包含 IP 选项的大型 TCP 数据包,或者指示已启用或禁用此功能。
注解
NDIS_TCP_LARGE_SEND_OFFLOAD_V1 结构在 NDIS_OFFLOAD 结构的 LsoV1 成员中使用。 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_CONFIG,NDIS_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 封装。
tcpOptions 和 ipOptions 成员中的值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 (包括 Ndis.h) |