共用方式為


NdisMTerminateOffloadComplete 函式 (ndischimney.h)

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

卸除目標會呼叫 NdisMTerminateOffloadComplete 函式,以完成先前呼叫 所起始的終止卸除作業 MiniportTerminateOffload 卸除目標的函式。

語法

void NdisMTerminateOffloadComplete(
  [in] IN NDIS_HANDLE                       NdisMiniportHandle,
  [in] IN PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
);

參數

[in] NdisMiniportHandle

卸除目標在先前呼叫中取得的句柄 NdisMRegisterMiniportDriver

[in] OffloadBlockList

的指標 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 結構。 卸除目標取得此指標做為其輸入參數 MiniportTerminateOffload 函式。

傳回值

沒有

言論

在呼叫 NdisMTerminateOffloadComplete 函式之前,卸除目標必須將下列任一NDIS_STATUS值寫入狀態樹狀結構中每個NDIS_MINIPORT_OFFLOAD_BLOCK_LIST結構 成員 狀態:

  • NDIS_STATUS_SUCCESS

    卸除目標已成功終止NDIS_MINIPORT_OFFLOAD_BLOCK_LIST結構所參考的狀態物件卸除。 如果NDIS_MINIPORT_OFFLOAD_BLOCK_LIST結構後面接著委派的狀態結構(XXX_OFFLOAD_STATE_DELEGATED),卸除目標會將該狀態物件的委派變數值成功寫入委派狀態結構。

  • NDIS_STATUS_FAILURE

    終止作業未成功。 這類失敗是由導致中斷狀態物件的災難性失敗所造成。 在此情況下,卸除目標硬體可能不會回應。 主機堆疊可能必須中止連線。

呼叫 NdisMTerminateOffloadComplete 函式之前,卸除目標也必須: 如果 TCP 連線上有待終止的未處理傳送數據,卸除目標套件會在 net 緩衝區中這類數據,並將封裝的數據傳遞至 NET_BUFFER_LIST 結構鏈接清單中的主機堆疊。 在此情況下,卸除目標會針對該連線的 NetBufferListChain NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 成員指定非NULL 值。 (NDIS_MINIPORT_OFFLOAD_BLOCK_LIST結構位於 OffloadBlockList 指標所指向的連結清單中。NetBufferListChain 成員會指向與傳送數據相關聯之 NET_BUFFER_LIST 結構的連結清單。

將未處理傳送數據傳遞至主機堆疊時,卸除目標也必須針對即將終止之連線的下列委派 TCP 變數指定非NULL 值:

  • SndUna
  • SndNxt
  • SndMax
如需傳遞未處理傳送數據的詳細資訊,請參閱 卸除作業期間和之後處理未處理的傳送數據

如果 TCP 連線上沒有終止的未處理傳送數據,卸除目標必須指定 NetBufferListChain 成員的 NULL 值。

在上傳的 TCP 連線上,可能會有未處理的接收數據。 這是卸除目標已從網路接收、處理及認可的數據。 如需處理這類數據的詳細資訊,請參閱 終止卸除作業期間處理緩衝接收資料

卸除目標會釋放與終止狀態對象相關聯的所有資源,例如記憶體。

要求

要求 價值
目標平臺 普遍
標頭 ndischimney.h (包括 Ndischimney.h)
IRQL 任何層級

另請參閱

MiniportTerminateOffload

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMRegisterMiniportDriver

TCP_OFFLOAD_STATE_DELEGATED