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,指示当前的封装设置。
为 封装 成员定义了以下标志:
TCP 烟囱卸载查询
当 NDIS 响应查询时 OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 或 OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 卸载目标,NDIS 提供 SupportIp4、SupportIp6、SupportIp6ExtensionHeaders,以及 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) |