共用方式為


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_DEFAULTType 成員、將 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,請連絡 Microsoft 外部 TCP 卸除分級

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 Chimney 卸除查詢

當 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 煙囪卸除檔。)

卸除目標也必須提供 TcpConnectionOffloadCapacity 成員NDIS_TCP_CONNECTION_OFFLOAD的值。 此值應該是卸除目標可支持的同時卸除 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