次の方法で共有


NdisAllocateNetBufferMdlAndData 関数 (ndis/nblapi.h)

NDIS ドライバーは、関連付けられた MDL とデータと共にNET_BUFFER構造体を割り当てるために、NdisAllocateNetBufferMdlAndData 関数を呼び出します。

構文

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_BUFFER プールからNET_BUFFERsを割り当てないようにする必要があります。

NDIS は、PoolHandle パラメーターを使用してメモリ ブロックを取得し、NET_BUFFER、MDL、およびデータ バッファーを作成します。

NET_BUFFERと関連情報を解放するには、NdisFreeNetBuffer 関数を呼び出します。

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.0 以降でサポートされています。
ターゲット プラットフォーム 万国
ヘッダー ndis/nblapi.h (ndis.h を含む)
ライブラリ Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferMdlAndData(ndis), NdisAllocateNetBufferMdlAndData_InitFail(ndis)

関連項目

NET_BUFFER

NdisAllocateNetBuffer

NdisFreeNetBuffer