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 成員、將 Revision 成員設定為 NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1,並將 Size 成員設定為 NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_1。
Encapsulation
封裝 TCP chimney 卸除的設定。 如需此成員的詳細資訊,請參閱下列一節。
SupportIPv4
卸除目標設定的ULONG值,表示它支援IPv4。 TCP/IP 驅動程式堆疊會將此成員設定為啟用IPv4。
SupportIPv6
卸除目標設定的ULONG值,表示它支援IPv6。 TCP/IP 驅動程式堆疊會將此成員設定為啟用IPv6。 請注意,卸除目標可以同時支援 IPv4 和 IPv6。
SupportIPv6ExtensionHeaders
卸除目標所設定的ULONG值,表示它支援IPv6延伸模組標頭 (也就是路由、片段/重新組態、驗證、封裝、逐一躍點處理,以及目的地選項) 。 TCP/IP 驅動程式堆疊會將此成員設定為啟用IPv6擴充功能標頭。
SupportSack
卸除目標所設定的ULONG值,表示它支援傳輸和接收作業 (SDK) TCP 選擇性通知。 TCP/IP 驅動程式堆疊會將此成員設定為啟用傳輸和接收作業的 SACK。
如果卸除目標設定 SupportSack 成員,目標必須能夠產生及取用 SACK 區段。 如果卸除目標不支援 SACK 選項,目標必須能夠忽略 SACK 選項,並正常處理其餘 TCP 區段。
CongestionAlgorithm
保留供未來使用。
如果您是獨立硬體廠商 (IHV) ,而且您想要實作非預設壅塞控制演算法,例如複合 TCP,請連絡 Microsoft at External TCP Offload Triage。
TcpConnectionOffloadCapacity
卸除目標設定的 ULONG 值,表示其支援的卸除 TCP 連線數目上限。 此數位同時包含 IPv4 和 IPv6 連線。
Flags
保留的。
備註
NDIS_TCP_CONNECTION_OFFLOAD 結構會指定迷你埠配接器為 TCP chimney 卸除所提供的目前或支持服務。
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 chimney 卸除檔.)
迷你埠驅動程式不會收到 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 chimney 卸除封裝設定。
針對 OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 查詢要求,NDIS 會提供單一旗標,指出 封裝 成員中的硬體封裝功能。
針對 OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 查詢要求,NDIS 會提供封裝旗標的位OR,表示目前的封裝設定。
下列旗標是針對 封裝 成員所定義的:
TCP Chimney 卸除查詢
當 NDIS 回應查詢時 OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 或 OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 卸除目標,NDIS 會提供NDIS_TCP_CONNECTION_OFFLOAD結構的 SupportIp4、 SupportIp6、 SupportIp6ExtensionHeaders 和 SupportISack 成員。 這些成員可以有下列其中一個值:卸除目標必須支援 IPv4 或 IPv6 (或兩者) 。 卸除目標可以選擇性地支援 IPv6 擴充功能標頭。
卸除目標不應支援任何 IPv4 選項。 卸除目標必須將包含 IPv4 選項的任何接收 IP 數據報轉送至 TCP/IP 驅動程式堆疊。 卸除目標會藉由呼叫 來指出 TCP/IP 驅動程式堆疊的這類 IP 數據報 NdisMIndicateReceiveNetBufferLists。 TCP/IP 驅動程式堆疊會處理 IPv4 選項,並將數據報傳回卸除目標的 MiniportTcpOffloadForward 函式。 (如需 MiniportTcpOffloadForward的相關信息,請參閱 NDIS 6.0 TCP chimney 卸除檔.)
卸除目標也必須提供NDIS_TCP_CONNECTION_OFFLOAD TcpConnectionOffloadCapacity 成員的值。 此值應該是卸除目標可支持的同時卸除 TCP 連線數目上限。
請注意,卸除目標無法直接指出新的卸除功能。 相反地,卸除目標必須要求 TCP/IP 驅動程式堆疊暫停,然後繼續卸除。 當迷你埠配接器準備好繼續卸除 TCP 連線時,它會發出NDIS_STATUS_OFFLOAD_RESUME狀態指示來報告新的連線卸除功能。 如需NDIS_STATUS_OFFLOAD_RESUME的詳細資訊,請參閱 NDIS 6.0 TCP chimney 卸除檔。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
標頭 | ntddndis.h (包含 Ndis.h) |