共用方式為


W_INITIATE_OFFLOAD_HANDLER回呼函式 (ndischimney.h)

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

MiniportInitiateOffload 從主機堆棧卸除 TCP chimney 狀態。

語法

W_INITIATE_OFFLOAD_HANDLER WInitiateOffloadHandler;

void WInitiateOffloadHandler(
  [in]      IN NDIS_HANDLE MiniportAdapterContext,
  [in, out] IN OUT PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
)
{...}

參數

[in] MiniportAdapterContext

卸除目標所配置內容區域的句柄,卸除目標會維護此配接器實例的狀態資訊。 迷你埠驅動程式在呼叫 NDIS 時提供此句柄 NdisMSetMiniportAttributes from its MiniportInitializeEx 函式。

[in, out] OffloadBlockList

的指標 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 結構,可以是獨立結構或這類結構連結清單的根目錄。

傳回值

備註

MiniportInitiateOffload 函式會儲存 OffloadBlockList 指標,然後傳回 。 卸除目標一律會呼叫 以異步方式完成卸除作業 NdisMInitiateOffloadCompleteOffloadBlockList 指標所指向的狀態樹狀結構有效,直到迷你埠驅動程式呼叫 NdisMInitiateOffloadComplete 為止。

MiniportInitiateOffload 函式傳回之後,卸除目標會從狀態樹狀結構卸除狀態。 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 結構, 其MiniportOffloadContext 成員指向包含 NULL 值的記憶體位置,後面接著要卸除的狀態。 如需詳細資訊,請參閱 儲存和參考卸除狀態。 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 結構的 標頭 成員包含 Type 成員,指定卸除狀態的類型,以及透過隱含方式 卸除狀態結構 或結構,緊接在記憶體中的NDIS_MINIPORT_OFFLOAD_BLOCK_LIST結構之後。

卸除目標會將與NDIS_MINIPORT_OFFLOAD_BLOCK_LIST結構相關聯的卸除狀態卸除至卸除內容區域。 如需詳細資訊,請參閱 儲存和參考卸除狀態

卸除狀態時,卸除目標必須以 深度優先/廣度-下一步的方式周遊狀態樹狀結構。 以這種方式卸除目標卸除狀態非常重要。

傳遞至 MiniportInitiateOffload 函式之狀態樹狀結構中的部分NDIS_MINIPORT_OFFLOAD_BLOCK_LIST結構可以是佔位元或連結沒有要卸除狀態的節點。 如需詳細資訊,請參閱 佔位元、連結器和新的卸除

卸除目標可以從主機堆疊接收緩衝數據,以取得卸除的連線。 卸除目標必須先將此數據複製到自己的緩衝區,才能完成卸除作業。 如需處理緩衝接收數據的詳細資訊,請參閱 處理卸除作業期間和之後的緩衝接收數據

對於卸除的每個狀態物件,卸除目標也必須提供 PVOID 值,以參考卸除目標儲存狀態物件的卸除內容區域。 卸除目標會將這個 PVOID 值寫入至與狀態相關聯之NDIS_MINIPORT_OFFLOAD_BLOCK_LIST結構 之 *MiniportOffloadContext 成員所指向的記憶體位置。 如果卸除目標未成功卸除與NDIS_MINIPORT_OFFLOAD_BLOCK_LIST結構相關聯的狀態,它不應該將值寫入 *MiniportOffloadContext 成員所指向的記憶體位置。 如需詳細資訊,請參閱 儲存和參考卸除狀態

規格需求

需求
目標平台 Windows
標頭 ndischimney.h (包括 Ndischimney.h)
IRQL 任何層級

另請參閱

MiniportInitializeEx

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMInitiateOffloadComplete

NdisMSetMiniportAttributes