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 を呼び出す必要があります。 とは異なり AllocateContiguousPagesForMdl
、 AllocatePagesForMdl メソッドはメモリの断片化の影響を受けません。
メソッドは AllocateContiguousPagesforMdl
、ロックされている (非ページ) がマップされていないメモリ ページを割り当てます。 ミニポート ドライバーがこのメモリへのソフトウェア アクセスを必要とする場合、ミニポート ドライバーは、カーネル モードのアドレス空間にページをマップする IPortWaveRTStream::MapAllocatedPages への後続の呼び出しを行う必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降の Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | portcls.h |
IRQL | パッシブ レベル |