共用方式為


IP_OFFLOAD_STATS 結構 (ndischimney.h)

[TCP chimney 卸除功能已被取代,不應使用。]

IP_OFFLOAD_STATS結構包含卸除目標為了回應 OID_IP4_OFFLOAD_STATSOID_IP6_OFFLOAD_STATS查詢所提供的統計數據。

語法

typedef struct _IP_OFFLOAD_STATS {
  ULONG64 InReceives;
  ULONG64 InOctets;
  ULONG64 InDelivers;
  ULONG64 OutRequests;
  ULONG64 OutOctets;
  ULONG   InHeaderErrors;
  ULONG   InTruncatedPackets;
  ULONG   InDiscards;
  ULONG   OutDiscards;
  ULONG   OutNoRoutes;
} IP_OFFLOAD_STATS, *PIP_OFFLOAD_STATS;

成員

InReceives

從卸除 TCP 連線的介面收到的輸入 IP 數據報總數,包括收到錯誤的 IP 數據報。 請參閱 RFC 2011 中的“ipInReceives”。

InOctets

卸除 TCP 連線上從介面接收的輸入 IP 數據報中, (個字節的八位) 總數。 此處必須計算 InReceives 中計算之數據報的八位。 InOctets 必須包含IP標頭和承載中的位元元組數目。

InDelivers

已成功傳遞至卸除 TCP 連線的輸入 IP 數據報數目。 請參閱 RFC 2011 中的“ipInDelivers”。

OutRequests

卸除目標在傳輸卸除 TCP 連線的要求中提供給其 IP 層的 IP 數據報數目。 請參閱 RFC 2011 中的“ipOutRequests”。

OutOctets

IP 數據報中的八位 (位元組總數) ,卸除目標在要求傳輸卸除 TCP 連線時提供給其 IP 層的 IP 層。 這裏必須計算 OutRequests 中計算之數據報的八位。 OutOctets 必須包含IP標頭和承載中的位元元組數目。

InHeaderErrors

因為IP標頭發生錯誤而捨棄的卸除 TCP 連線時收到的輸入IP數據報數目。 這類錯誤包括不正確的總和檢查碼、版本號碼不符、其他格式錯誤、超過存留時間,以及在卸除目標支援這類選項時發現處理 IPv6 選項時發現的錯誤。 (卸除目標不會處理 IPv4 選項。) 此計數不包含無效目的地位址所產生的錯誤。 請參閱 RFC 2011 中的“ipInHdrErrors”。

InTruncatedPackets

因為數據報框架沒有足夠數據,所以捨棄的輸入IP數據報數目。 InTruncatedPackets 只有在框架包含有效標頭但比必要短時,才應該遞增。 太短而無法包含有效標頭的框架應該算為 InHeaderErrors

InDiscards

卸除 TCP 連線時收到的輸入 IP 數據報數目,其中包含任何專案以防止其進一步處理,但基於運行時間原因而捨棄,例如缺少可用的記憶體或其他資源。 請參閱 RFC 2011 中的 「ipInDiscards」。

OutDiscards

卸除目標提供給其IP層的輸出IP數據報數目,因為該層不會發生任何問題,但基於運行時間原因而捨棄,例如缺少記憶體或其他資源。 請參閱 RFC 2011 中的“ipOutDiscards”。

OutNoRoutes

卸除目標提供給其IP層的輸出IP數據報數目,因為找不到任何路由 (,例如卸除路徑狀態物件,) 可以將它們傳輸至目的地。 請參閱 RFC 2011 中的“ipOutNoRoutes”。

備註

IP_OFFLOAD_STATS結構中的統計數據只與卸除目標在卸除 TCP 連線上處理的 IP 數據報有關。 卸除目標不得包含非卸除連線上IP數據報的計數。 與單一網路介面相關的統計數據。

如果卸除目標有多個網路介面,則必須維護每個網路介面的個別IP卸除統計數據。 如果卸除目標同時支援網路介面的 IPv4 和 IPv6 連線,則必須維護一組 IPv4 卸除統計數據計數器,以及該網路介面的另一組 IPv6 卸除統計數據計數器。

如果已啟用卸除目標的 TCP chimney 功能, (看到 NDIS_TASK_OFFLOAD) ,而且如果至少有一個鄰近狀態物件卸載至卸除目標,卸除目標就可以處理已接收的封包,該封包具有損毀的IP標頭有兩種方式之一:

  • 卸除目標可以透過非卸除介面來指出封包,方法是呼叫 NdisMIndicateReceiveNetBufferLists 函 式。 在此情況下,卸除目標不得遞增 InHeaderErrors 計數器。 這是建議的方法。
  • 或者,卸除目標可以卸除損毀的封包 NDIS_TASK_OFFLOAD ,並遞增 InHeaderErrors 計數器。
主機堆疊會將卸除目標所傳回的統計數據與主機堆疊針對非卸除 TCP 連線所維護的統計數據整合。

請注意,當設定OID_IP4_OFFLOAD_STATS或OID_IP6_OFFLOAD_STATS時,主機堆疊會提供IP_OFFLOAD_STATS結構。 不過,不論是哪一種情況,卸除目標都不需要檢查IP_OFFLOAD_STATS結構中的值。 相反地,設定OID_IP4_OFFLOAD_STATS時,卸除目標應該重設其所有IPv4統計數據計數器,以進行卸除的 TCP 連線。 設定OID_IP6_OFFLOAD_STATS時,卸除目標應該重設其所有 IPv6 統計數據計數器,以進行卸除的 TCP 連線。

提供IP_OFFLOAD_STATS結構值的所有計數器,當遞增超過其最大計數時,會從零) 換行 (重新啟動。

規格需求

需求
標頭 ndischimney.h (包含 Ndischimney.h)

另請參閱

NDIS_TASK_OFFLOAD

NdisMIndicateReceiveNetBufferLists

OID_IP4_OFFLOAD_STATS

OID_IP6_OFFLOAD_STATS