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 指標,然後傳回 。 卸除目標一律會呼叫 以異步方式完成卸除作業 NdisMInitiateOffloadComplete。 OffloadBlockList 指標所指向的狀態樹狀結構有效,直到迷你埠驅動程式呼叫 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 | 任何層級 |