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 成員、將 Revision 成員設定為 NET_BUFFER_POOL_PARAMETERS_REVISION_1,並將 Size 成員設定為 NDIS_SIZEOF_NET_BUFFER_POOL_PARAMETERS_REVISION_1。
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 和更新版本支援。 |
目標平臺 | 普遍 |
標頭 | ndis/nblapi.h (include ndis.h) |
連結庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_NetBuffer_Function(ndis),NdisAllocateNetBufferPool(ndis),NdisAllocateNetBufferPool_InitFail(ndis) |