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 值設定為 TRUE 的 NdisAllocateNetBufferListPool 函式。 在此情況下,NET_BUFFER結構會預先配置呼叫端從集區配置的每個NET_BUFFER_LIST結構。 您可以呼叫 NdisAllocateNetBufferAndNetBufferList 函式或 NdisAllocateNetBufferList 函式,可從這類集區配置NET_BUFFER_LIST結構。 只有在 fAllocateNetBuffer 為 TRUE 且 DataSize 為零時,才呼叫 NdisAllocateNetBufferAndNetBufferList。
您也可以呼叫 NdisAllocateNetBufferListPool ,並在建立NET_BUFFER_LIST結構集區時,將 DataSize 成員設定為非零值。 在此情況下,呼叫端從集區配置的每個NET_BUFFER_LIST結構都會預先配置NET_BUFFER結構、MDL 和數據。
NET_BUFFER配置的結構、MDL 和數據緩衝區 NdisAllocateNetBufferAndNetBufferList 或 NdisAllocateNetBufferList 不應與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_LIST_POOL_PARAMETERS
NdisAllocateNetBufferAndNetBufferList