次の方法で共有


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 を使用してください。
ターゲット プラットフォーム デスクトップ
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
IRQL IRQL <= DISPATCH_LEVEL

関連項目

MmBuildMdlForNonPagedPool

mmGetSystemAddressForMdlSafe

MmProbeAndLockPages