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 で指定する構造体の Type メンバーをNDIS_OBJECT_TYPE_DEFAULTに設定し、Revision メンバーを NET_BUFFER_POOL_PARAMETERS_REVISION_1、Size メンバーを NDIS_SIZEOF_NET_BUFFER_POOL_PARAMETERS_REVISION_1に設定します。
PoolTag
呼び出し元がこのプールから NET_BUFFER 構造体を割り当てるときに使用するカーネル プール タグ。 タグは、一重引用符で区切られた文字列で、通常は逆の順序で指定される最大 4 文字です。 カーネル プール タグは、NDIS がこのプールから割り当てられているNET_BUFFER構造体の所有者を識別するのに役立ちます。
DataSize
このプールに関連付けられているデータ バッファーの既定のデータ サイズ。 呼び出し元は、 を呼び出す場合にこの値を設定する必要があります。 NdisAllocateNetBufferMdlAndData 関数。 NDIS では、この値を使用して、NET_BUFFER構造体に割り当てるデータ バッファーのサイズを設定します。 呼び出し元がこの機能を使用しない場合は、この値を 0 に設定する必要があります。
戻り値
NdisAllocateNetBufferPool は、NDIS が割り当てるNET_BUFFER構造体プールへのハンドルを返します。 割り当てが失敗した場合、このハンドルは NULL です。 このハンドルは、このプールからNET_BUFFER構造体を割り当てて解放する NDIS 関数の後続の呼び出しで必要なパラメーターです。
注釈
次の関数を呼び出して 、NET_BUFFER 構造体プールからNET_BUFFER構造体を割り当てます。
NdisAllocateNetBufferMdlAndDataNdisAllocateNetBufferMdlAndData で割り当てられた MDL バッファーとデータ バッファーは、NET_BUFFER構造体とは別に解放しないでください。 このような構造体は、 NdisFreeNetBuffer 関数を呼び出すと、NET_BUFFER構造体で解放されます。
NdisFreeNetBufferPool 関数を呼び出して、NdisAllocateNetBufferPool で作成されたNET_BUFFER構造体プールを解放します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
対象プラットフォーム | ユニバーサル |
Header | ndis/nblapi.h (ndis.h を含む) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | Irql_NetBuffer_Function(ndis)、NdisAllocateNetBufferPool(ndis)、NdisAllocateNetBufferPool_InitFail(ndis) |