NDIS_TCP_CONNECTION_OFFLOAD 结构 (ntddndis.h)

NDIS_TCP_CONNECTION_OFFLOAD 结构为当前设置和支持的功能提供连接卸载信息。

语法

typedef struct _NDIS_TCP_CONNECTION_OFFLOAD {
  NDIS_OBJECT_HEADER Header;
  ULONG              Encapsulation;
  ULONG              SupportIPv4 : 2;
  ULONG              SupportIPv6 : 2;
  ULONG              SupportIPv6ExtensionHeaders : 2;
  ULONG              SupportSack : 2;
  ULONG              CongestionAlgorithm : 4;
  ULONG              TcpConnectionOffloadCapacity;
  ULONG              Flags;
} NDIS_TCP_CONNECTION_OFFLOAD, *PNDIS_TCP_CONNECTION_OFFLOAD;

成员

Header

NDIS_TCP_CONNECTION_OFFLOAD 结构的NDIS_OBJECT_HEADER结构。 将 Header 指定的结构的 Type 成员设置为 NDIS_OBJECT_TYPE_DEFAULT将 Revision 成员设置为 NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1将 Size 成员设置为 NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_1

Encapsulation

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

SupportIPv4

卸载目标设置的 ULONG 值,指示它支持 IPv4。 TCP/IP 驱动程序堆栈将此成员设置为启用 IPv4。

SupportIPv6

卸载目标设置的 ULONG 值,指示它支持 IPv6。 TCP/IP 驱动程序堆栈将此成员设置为启用 IPv6。 请注意,卸载目标可以同时支持 IPv4 和 IPv6。

SupportIPv6ExtensionHeaders

卸载目标设置的 ULONG 值,指示它支持 IPv6 扩展标头 (即路由、碎片/重新组装、身份验证、封装、逐跃处理和目标选项) 。 TCP/IP 驱动程序堆栈将此成员设置为启用 IPv6 扩展标头。

SupportSack

卸载目标设置的 ULONG 值,指示它支持传输和接收操作的 TCP 选择性确认 (SDK) 。 TCP/IP 驱动程序堆栈将此成员设置为为发送和接收操作启用 SACK。

如果卸载目标设置了 SupportSack 成员,则目标必须能够生成和使用 SACK 段。 如果卸载目标不支持 SACK 选项,则目标必须能够忽略 SACK 选项并正常处理 TCP 段的其余部分。

CongestionAlgorithm

保留供将来使用。

如果你是 (IHV) 的独立硬件供应商,并且想要实现非默认拥塞控制算法(例如复合 TCP),请通过 外部 TCP 卸载会审联系 Microsoft。

TcpConnectionOffloadCapacity

卸载目标设置的 ULONG 值,指示它支持的最大卸载 TCP 连接数。 此数字包括 IPv4 和 IPv6 连接。

Flags

保留。

注解

NDIS_TCP_CONNECTION_OFFLOAD结构指定微型端口适配器为 TCP 烟囱卸载提供的当前或受支持的服务。

NDIS_TCP_CONNECTION_OFFLOAD 结构用于 NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 结构、 NDIS_BIND_PARAMETERS 结构、 OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES OID、NDIS_STATUS_OFFLOAD_RESUME状态指示和 NDIS_STATUS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 状态指示。 (有关NDIS_STATUS_OFFLOAD_RESUME的信息,请参阅 NDIS 6.0 TCP 烟囱卸载文档。)

微型端口驱动程序不接收 OID 查询。 NDIS 使用微型端口驱动程序在属性和状态指示中提供的信息来提供对 OID 查询的响应并提供绑定参数。

NDIS 提供NDIS_TCP_CONNECTION_OFFLOAD结构,以响应OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG或OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES查询。 为了响应OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG查询,NDIS_TCP_CONNECTION_OFFLOAD 结构指定卸载目标的当前配置设置。 为了响应OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES查询,NDIS_TCP_CONNECTION_OFFLOAD结构指定卸载目标的硬件功能,以便从 TCP/IP 传输中卸载 TCP 连接。

NDIS_TCP_CONNECTION_OFFLOAD 的 封装 成员定义微型端口适配器的 TCP 烟囱卸载封装设置。

对于 OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 查询请求,NDIS 在 封装成员中 提供一个指示硬件封装功能的标志。

对于 OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 查询请求,NDIS 提供封装标志的按位 OR,指示当前封装设置。

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

重要 支持烟囱的微型端口或复用器驱动程序必须将 封装 成员设置为NDIS_ENCAPSULATION_IEEE_802_3、NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED或两者。 否则,将无法识别烟囱功能。
 

TCP 烟囱卸载查询

当 NDIS 响应 查询时 OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 卸载目标,NDIS 提供 NDIS_TCP_CONNECTION_OFFLOAD 结构的 SupportIp4SupportIp6SupportIp6ExtensionHeadersSupportISack 成员。 这些成员可以具有以下值之一:

卸载目标必须支持 IPv4 或 IPv6 (或同时支持两者) 。 卸载目标可以选择性地支持 IPv6 扩展标头。

卸载目标不应支持任何 IPv4 选项。 卸载目标必须将任何接收的包含 IPv4 选项的 IP 数据报转发到 TCP/IP 驱动程序堆栈。 卸载目标通过调用将此类 IP 数据报指示到 TCP/IP 驱动程序堆栈 NdisMIndicateReceiveNetBufferLists。 TCP/IP 驱动程序堆栈处理 IPv4 选项,并将数据报返回到卸载目标的 MiniportTcpOffloadForward 函数。 (有关 MiniportTcpOffloadForward 的信息,请参阅 NDIS 6.0 TCP 烟囱卸载文档。)

卸载目标还必须为 NDIS_TCP_CONNECTION_OFFLOAD 的 TcpConnectionOffloadCapacity 成员提供值。 此值应是卸载目标可以支持的最大同时卸载 TCP 连接数。

请注意,卸载目标不能直接指示新的卸载功能。 相反,卸载目标必须请求 TCP/IP 驱动程序堆栈暂停,然后恢复卸载。 当微型端口适配器准备好继续卸载 TCP 连接时,它会发出NDIS_STATUS_OFFLOAD_RESUME状态指示来报告新的连接卸载功能。 有关NDIS_STATUS_OFFLOAD_RESUME的详细信息,请参阅 NDIS 6.0 TCP 烟囱卸载文档

要求

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

另请参阅

NDIS_BIND_PARAMETERS

NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_OFFLOAD

NDIS_STATUS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES NdisMIndicateReceiveNetBufferLists OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES