共用方式為


FwpsAllocateDeepCloneNetBufferList0 函式 (fwpsk.h)

FwpsAllocateDeepCloneNetBufferList0 函式會配置NET_BUFFER_LIST結構,該結構是現有NET_BUFFER_LIST結構的深層複製。

語法

NTSTATUS FwpsAllocateDeepCloneNetBufferList0(
  [in, out]      NET_BUFFER_LIST *originalNetBufferList,
  [in, optional] NDIS_HANDLE     netBufferListPoolHandle,
  [in, optional] NDIS_HANDLE     netBufferPoolHandle,
  [out]          NET_BUFFER_LIST **netBufferList
);

參數

[in, out] originalNetBufferList

要複製之原始 NET_BUFFER_LIST 結構的指標。

[in, optional] netBufferListPoolHandle

從先前呼叫 NdisAllocateNetBufferListPool 函式取得的NET_BUFFER_LIST集區句柄。 這個參數是選擇性的,而且可以是 NULL

[in, optional] netBufferPoolHandle

從先前呼叫 NdisAllocateNetBufferPool 函式取得的NET_BUFFER_LIST集區句柄。 這個參數是選擇性的,而且可以是 NULL

[out] netBufferList

接收深層複製 NET_BUFFER_LIST 結構的指標之變數指標。

傳回值

FwpsAllocateDeepCloneNetBufferList0 函式會傳回下列其中一個 NTSTATUS 代碼。

傳回碼 Description
STATUS_SUCCESS 已成功配置深層複製 NET_BUFFER_LIST 結構。
其他狀態代碼 發生錯誤。

備註

圖說文字驅動程式會呼叫 FwpsAllocateDeepCloneNetBufferList0 函式,以配置現有NET_BUFFER_LIST結構的深層複製NET_BUFFER_LIST結構。

此函式是 NdisAllocateCloneNetBufferList 函式的包裝函式,但它特別適合供一個使用於一般數據封 包的封包函式。

如果深層複製 NET_BUFFER_LIST 結構應該有與特定集區相關聯的屬性,圖說文字驅動程式必須在 NetBufferListPoolHandleNetBufferPoolHandle 參數中指定集區句柄。 如果這些參數為 NULL,則會使用 NDIS 預先配置的預設集區。

深層複製 NET_BUFFER_LIST 結構描述原始 NET_BUFFER_LIST 結構所描述的相同數據。 FwpsAllocateDeepCloneNetBufferList0 函式會將原始 MDL 所描述的數據複製到新的數據緩衝區。 複製 NET_BUFFER_LIST 結構包含初始 NET_BUFFER_LIST_CONTEXT 結構。

此函式會將新建立之複製NET_BUFFER_LIST結構的ParentNetBufferList成員設定為指向父NET_BUFFER_LIST結構。 父結構的 ChildRefCount 成員會遞增 1

圖說文字驅動程式可以修改複製NET_BUFFER_LIST結構,並藉由呼叫封包插入函式,將它插入網路堆疊來取代原始NET_BUFFER_LIST結構。 成功將複製NET_BUFFER_LIST結構描述的數據插入網路堆疊之後,圖說文字驅動程式會藉由呼叫 FwpsFreeCloneNetBufferList0 函式釋放複製NET_BUFFER_LIST結構。

圖說文字驅動程式可以在深層複製NET_BUFFER_LIST內插入或取代個別 net 緩衝區, (NET_BUFFER) 或 MDL。 驅動程式必須先復原這些修改, 才能呼叫 FwpsFreeCloneNetBufferList0 函式。

管理複製封包的指導方針

圖說文字驅動程式不得無限期保存複製的封包。 複製的封包可能會干擾閑置計算機上的電源管理作業。

預定用於在一個數據行中深層複製的封包,是要從使用者模式應用程式或其他相對快速的作業取得釐清,而需要與原始封包無關的封包。 註標驅動程式在等候使用者輸入、Web 服務清除或任何其他可能需要任意時間的作業時,不得保存複製的封包。

圖說文字驅動程序應該一律儘快傳回保留的封包。

規格需求

需求
最低支援的用戶端 WIP 組建 25324
目標平台 Universal
標頭 fwpsk.h (包含 Fwpsk.h)
程式庫 Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

另請參閱

FwpsFreeCloneNetBufferList0

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisAllocateNetBufferListPool

NdisAllocateNetBufferPool

封包插入函式