次の方法で共有


IPortWaveRTStream::AllocateContiguousPagesForMdl メソッド (portcls.h)

メソッドは AllocateContiguousPagesForMdl 、連続する非ページの物理メモリ ページのリストを割り当て、それらを記述するメモリ記述子リスト (MDL) へのポインターを返します。

構文

PMDL AllocateContiguousPagesForMdl(
  [in] PHYSICAL_ADDRESS LowAddress,
  [in] PHYSICAL_ADDRESS HighAddress,
  [in] SIZE_T           TotalBytes
);

パラメーター

[in] LowAddress

MDL のストレージを割り当てることができるアドレス範囲の下端を指定します。

[in] HighAddress

MDL のストレージを割り当てることができるアドレス範囲のハイエンドを指定します。

[in] TotalBytes

MDL に割り当てる合計バイト数を指定します。 このメソッドは常に整数のメモリ ページを割り当てます。

戻り値

AllocateContiguousPagesForMdl は、物理メモリ ページの一覧を記述する MDL (PMDL) へのポインターを返します。 メソッドが要求されたバッファーを割り当てることができない場合は、 NULL を返します。

注釈

ドライバーは、このメソッドを呼び出して、物理的に連続するメモリ ページのブロックを割り当てます。 MDL 内のすべての物理メモリ ページは、 LowAddress パラメーターと HighAddress パラメーターで指定されたアドレス範囲内にあります。 十分なメモリが使用可能な場合、メモリ割り当ては次のページに切り上げられた要求されたサイズです。それ以外の場合、呼び出しは失敗します。

システムがしばらく実行されると、非ページ メモリのシステム プールが断片化する傾向があり、これにより、連続する物理メモリの大きなブロックを割り当てる要求が失敗する可能性が高くなります。 オーディオ デバイスの DMA コントローラーで物理メモリ ページが連続している必要がない場合、ドライバーは代わりに IPortWaveRTStream::AllocatePagesForMdl を呼び出す必要があります。 とは異なり AllocateContiguousPagesForMdlAllocatePagesForMdl メソッドはメモリの断片化の影響を受けません。

メソッドは AllocateContiguousPagesforMdl 、ロックされている (非ページ) がマップされていないメモリ ページを割り当てます。 ミニポート ドライバーがこのメモリへのソフトウェア アクセスを必要とする場合、ミニポート ドライバーは、カーネル モードのアドレス空間にページをマップする IPortWaveRTStream::MapAllocatedPages への後続の呼び出しを行う必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista 以降の Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header portcls.h
IRQL パッシブ レベル

こちらもご覧ください

IPortWaveRTStream

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::MapAllocatedPages