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 指定要NDIS_OBJECT_TYPE_DEFAULT的结构的 Type 成员、要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 选择性确认, (SACK) 传输和接收操作。 TCP/IP 驱动程序堆栈设置此成员,以便为传输和接收操作启用 SACK。

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

CongestionAlgorithm

保留供将来使用。

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

TcpConnectionOffloadCapacity

卸载目标设置为指示其支持的卸载 TCP 连接的最大数目的 ULONG 值。 此数字包括 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 Chimney 卸载查询

当 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 驱动程序堆栈。 卸载目标通过调用向 TCP/IP 驱动程序堆栈指示此类 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 及更高版本中受支持。
Header 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