NdisAllocateNetBufferMdlAndData 関数 (ndis/nblapi.h)
NDIS ドライバーは NdisAllocateNetBufferMdlAndData 関数を呼び出して、関連付けられた MDL とデータと共にNET_BUFFER構造体を割り当てます。
構文
NDIS_EXPORTED_ROUTINE NET_BUFFER * NdisAllocateNetBufferMdlAndData(
[in] NDIS_HANDLE PoolHandle
);
パラメーター
[in] PoolHandle
NdisAllocateNetBufferPool 関数の呼び出しから以前に返されたNET_BUFFER構造体プール ハンドル。
戻り値
NdisAllocateNetBufferMdlAndData は、NDIS が割り当てたNET_BUFFER構造体へのポインターを返します。 割り当てが失敗した場合、このポインターは NULL です。
注釈
呼び出し元は NdisAllocateNetBufferPool 関数を呼び出し、データ バッファーの最大サイズを指定する必要があります。 この値を指定すると、NDIS は呼び出し元のバッファーを事前割り当てできます。
この関数は、 NET_BUFFER 構造体、MDL、およびデータを 1 つのメモリ バッファーに割り当てます。 これは、NET_BUFFER構造体が頻繁に割り当てられ、解放される場合に、高いパフォーマンスを実現するのに役立ちます。 呼び出し元は NdisAllocateNetBuffer を呼び出して、データを含むプールからNET_BUFFERs NET_BUFFER割り当てないようにする必要があります。
NDIS は PoolHandle パラメーターを使用してメモリ ブロックを取得し、NET_BUFFER、MDL、およびデータ バッファーを作成します。
NET_BUFFERと関連情報を解放するには、 NdisFreeNetBuffer 関数を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
対象プラットフォーム | ユニバーサル |
Header | ndis/nblapi.h (ndis.h を含む) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | Irql_NetBuffer_Function(ndis)、NdisAllocateNetBufferMdlAndData(ndis)、NdisAllocateNetBufferMdlAndData_InitFail(ndis) |