NdisAllocateNetBufferListPool 函式 (ndis/nblapi.h)

呼叫 NdisAllocateNetBufferListPool 函式來配置 NET_BUFFER_LIST 結構的集區。

語法

NDIS_EXPORTED_ROUTINE NDIS_HANDLE NdisAllocateNetBufferListPool(
  [in, optional] NDIS_HANDLE                           NdisHandle,
  [in]           NET_BUFFER_LIST_POOL_PARAMETERS const *Parameters
);

參數

[in, optional] NdisHandle

在呼叫端初始化期間取得的 NDIS 句柄。

[in] Parameters

定義集區參數 之NET_BUFFER_LIST_POOL_PARAMETERS 結構的指標。

傳回值

NdisAllocateNetBufferListPool 會將句柄傳回給 NDIS 配置的NET_BUFFER_LIST結構集區。 如果配置失敗,此句柄為 NULL。 此句柄是後續呼叫 NDIS 函式的必要參數,可從這個集區配置和釋放NET_BUFFER_LIST結構。

備註

在大部分情況下,配置 NET_BUFFER_LIST 結構的呼叫端將會在該NET_BUFFER_LIST結構上配置並排入至少一 個NET_BUFFER 結構。 當您配置NET_BUFFER_LIST結構的集區時,將NET_BUFFER結構預先配置比配置NET_BUFFER_LIST結構和NET_BUFFER結構更有效率。

您可以在建立NET_BUFFER_LIST結構集區時,呼叫 fAllocateNetBuffer 值設定為 TRUENdisAllocateNetBufferListPool 函式。 在此情況下,NET_BUFFER結構會預先配置呼叫端從集區配置的每個NET_BUFFER_LIST結構。 您可以呼叫 NdisAllocateNetBufferAndNetBufferList 函式或 NdisAllocateNetBufferList 函式,可從這類集區配置NET_BUFFER_LIST結構。 只有在 fAllocateNetBufferTRUEDataSize 為零時,才呼叫 NdisAllocateNetBufferAndNetBufferList

您也可以呼叫 NdisAllocateNetBufferListPool ,並在建立NET_BUFFER_LIST結構集區時,將 DataSize 成員設定為非零值。 在此情況下,呼叫端從集區配置的每個NET_BUFFER_LIST結構都會預先配置NET_BUFFER結構、MDL 和數據。

NET_BUFFER配置的結構、MDL 和數據緩衝區 NdisAllocateNetBufferAndNetBufferListNdisAllocateNetBufferList 不應與NET_BUFFER_LIST結構分開釋放。 當您呼叫 NdisFreeNetBufferList 函式時,這類結構會釋放NET_BUFFER_LIST結構。

呼叫 NdisFreeNetBufferListPool 函式可釋放NET_BUFFER_LIST結構集區。

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 Universal
標頭 ndis/nblapi.h (包含 ndis.h)
程式庫 Ndis.lib
Dll Ndis.sys
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_NetBuffer_Function (ndis) 、NdisAllocateNetBufferListPool (ndis) ,NdisAllocateNetBufferListPool_InitFail (ndis)

另請參閱

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferAndNetBufferList

NdisAllocateNetBufferList

NdisFreeNetBufferList

NdisFreeNetBufferListPool