NdisAllocateNetBufferPool 函式 (ndis/nblapi.h)
呼叫 NdisAllocateNetBufferPool 函式來配置 NET_BUFFER 結構的集區。
語法
NDIS_EXPORTED_ROUTINE NDIS_HANDLE NdisAllocateNetBufferPool(
[in, optional] NDIS_HANDLE NdisHandle,
[in] NET_BUFFER_POOL_PARAMETERS const *Parameters
);
參數
[in, optional] NdisHandle
在呼叫端初始化期間取得的 NDIS 句柄。
[in] Parameters
定義集區參數之NET_BUFFER_POOL_PARAMETERS結構的指標。 結構的定義如下:
typedef struct _NET_BUFFER_POOL_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG PoolTag;
ULONG DataSize;
} NET_BUFFER_POOL_PARAMETERS, *PNET_BUFFER_POOL_PARAMETERS;
此結構包含下列成員:
標頭
NET_BUFFER_POOL_PARAMETERS 結構的NDIS_OBJECT_HEADER結構。 設定 Header 指定要NDIS_OBJECT_TYPE_DEFAULT的 Type 成員、要NET_BUFFER_POOL_PARAMETERS_REVISION_1的 Revision 成員,以及要NDIS_SIZEOF_NET_BUFFER_POOL_PARAMETERS_REVISION_1的 Size 成員。
PoolTag
呼叫端從這個集區配置 NET_BUFFER 結構時所使用的核心集區標籤。 標記是以單引號分隔的字串,最多四個字元,通常是以反向順序指定。 核心集區標籤可協助 NDIS 識別從這個集區配置之NET_BUFFER結構的擁有者。
DataSize
與此集區相關聯之數據緩衝區的預設數據大小。 如果呼叫端呼叫 ,則呼叫端必須設定此值 NdisAllocateNetBufferMdlAndData 函 式。 NDIS 會使用此值來設定配置給NET_BUFFER結構的數據緩衝區大小。 如果呼叫端未使用這項功能,此值應該設定為零。
傳回值
NdisAllocateNetBufferPool 會將句柄傳回給 NDIS 配置的NET_BUFFER結構集區。 如果配置失敗,此句柄為 NULL。 此句柄是後續呼叫 NDIS 函式的必要參數,可配置和釋放此集區NET_BUFFER結構。
備註
呼叫下列函式,從 NET_BUFFER 結構集區配置NET_BUFFER結構。
NdisAllocateNetBufferMdlAndData使用 NdisAllocateNetBufferMdlAndData 配置的 MDL 和數據緩衝區不應與NET_BUFFER結構分開釋放。 當您呼叫 NdisFreeNetBuffer 函式時,這類結構會釋放NET_BUFFER結構。
呼叫 NdisFreeNetBufferPool 函式,以釋放使用 NdisAllocateNetBufferPool 建立的NET_BUFFER結構集區。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
目標平台 | Universal |
標頭 | ndis/nblapi.h (包含 ndis.h) |
程式庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_NetBuffer_Function (ndis) 、NdisAllocateNetBufferPool (ndis) ,NdisAllocateNetBufferPool_InitFail (ndis) |