次の方法で共有


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)

こちらもご覧ください

NET_BUFFER

NdisAllocateNetBuffer

NdisFreeNetBuffer