次の方法で共有


MmGetSystemAddressForMdl マクロ (wdm.h)

MmGetSystemAddressForMdl ルーチンは廃止されました。 代わりに MmGetSystemAddressForMdlSafe を使用してください。

MmGetSystemAddressForMdl は、MDL によって記述されたバッファーの非ページ システム空間仮想アドレスを返すマクロです。 指定された MDL によって記述された物理ページがシステム空間にマップされていない場合は、システム空間にマップされます。

構文

PVOID MmGetSystemAddressForMdl(
   MDL
);

パラメーター

[in] MDL

対応するベース仮想アドレスをマップする対象のバッファーへのポインター。

戻り値

なし

解説

MmGetSystemAddressForMdl は、指定された MDL によって記述された物理ページをマップする基本システム空間仮想アドレスを返します。

PIO デバイスのドライバーは、このルーチンを呼び出して、ユーザー バッファーの仮想アドレス範囲 (Irp-MdlAddress> で MDL によって記述) をシステム空間アドレス範囲に変換します。

MDL では、非ページ メモリを記述する必要があります。 つまり、入力 MDL は、 MmProbeAndLockPages によって返される既にロックダウンされたユーザー空間バッファー、 MmBuildMdlForNonPagedPool によって返されるロックダウン バッファー、または非ページ プール、連続したメモリ、またはキャッシュされていないメモリから割り当てられたシステム空間メモリを記述する必要があります。

返されるベース アドレスのオフセットは、MDL 内の仮想アドレスのオフセットと同じです。

システム空間へのマップの試行が失敗した場合、ウィンドウはバグ チェックを発行します。 そのため、代わりに MmGetSystemAddressForMdlSafe を使用する必要があります)。

要件

要件
サポートされている最小のクライアント 互換性のために残されています。 代わりに MmGetSystemAddressForMdlSafe を使用してください。
対象プラットフォーム デスクトップ
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
IRQL IRQL <= DISPATCH_LEVEL

こちらもご覧ください

MmBuildMdlForNonPagedPool

MmGetSystemAddressForMdlSafe

MmProbeAndLockPages