MmMapLockedPages 関数 (wdm.h)
MmMapLockedPages ルーチンは、Windows 2000 以降のバージョンの Windows および Windows Me では使用されなくなりました。 これは、Windows 98 で実行する必要がある WDM ドライバーでのみサポートされています。 それ以外の場合は、 MmMapLockedPagesSpecifyCache を使用します。
MmMapLockedPages ルーチンは、特定の MDL によって記述される物理ページをマップします。
構文
PVOID MmMapLockedPages(
[in] PMDL MemoryDescriptorList,
[in] __drv_strictType(KPROCESSOR_MODE / enum _MODE,__drv_typeConst)KPROCESSOR_MODE AccessMode
);
パラメーター
[in] MemoryDescriptorList
MmProbeAndLockPages によって更新された MDL へのポインター。
[in] AccessMode
MDL をマップするアクセス モード ( KernelMode または UserMode ) を指定します。 ほぼすべてのドライバーで KernelMode を使用する必要があります。
戻り値
MmMapLockedPages は、 マップされたページの開始アドレスを返します。 (WINDOWS NT 4.0 Service Pack 4 (SP4) より前の NT ベースのオペレーティング システムの場合、MmMapLockedPages はマップされたページの最初のページの先頭アドレスを返します)。
注釈
MmUnmapLockedPages を使用して、MmMapLockedPages によってマップされた物理ページのマップを解除します。
AccessMode が KernelMode で、MmMapLockedPages が指定したページをマップできない場合、システムはバグ チェックを発行します。 (このため、ドライバーは、使用可能な場合は MmMapLockedPagesSpecifyCache を使用する必要があります。そのルーチンは、バグのチェックを引き起こすのではなく、エラー時に NULL を返します)。AccessMode が UserMode で、指定したページをマップできない場合、ルーチンは例外を発生させます。 UserMode を指定する呼び出し元は、MmMapLockedPages の呼び出しを try/except ブロックでラップする必要があります。 詳細については、「例外の 処理」を参照してください。
AccessMode が KernelMode の場合、MmMapLockedPages の呼び出し元は IRQL <= DISPATCH_LEVELで実行されている必要があります。 それ以外の場合、呼び出し元は IRQL <= APC_LEVELで実行されている必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降のバージョンの Windows および Windows Me では廃止されました。 このルーチンは、Windows 98 で実行する必要がある WDM ドライバーでのみサポートされます。 それ以外の場合は、MmMapLockedPagesSpecifyCache を使用します。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 「解説」を参照してください。 |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport) |