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 结构。 将 标头 指定为 NDIS_OBJECT_TYPE_DEFAULT的结构的 类型 成员,将 修订 成员设置为 NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1,并将 大小 成员设置为 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, 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 提供 SupportIp4SupportIp6SupportIp6ExtensionHeaders,以及 SupportISack NDIS_TCP_CONNECTION_OFFLOAD 结构的成员。 这些成员可以具有以下值之一:

卸载目标必须支持 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 及更高版本中受支持。
标头 ntddndis.h (include 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