次の方法で共有


MmProtectMdlSystemAddress 関数 (wdm.h)

MmProtectMdlSystemAddress ルーチンは、メモリ アドレス範囲の保護の種類を設定します。

構文

NTSTATUS MmProtectMdlSystemAddress(
  [in] PMDL  MemoryDescriptorList,
  [in] ULONG NewProtect
);

パラメーター

[in] MemoryDescriptorList

保護の種類を設定するメモリ アドレス範囲を指定します。

[in] NewProtect

メモリ ページの新しい保護設定を指定します。 ドライバーでは、次のいずれかの値を指定する必要があります。

PAGE_NOACCESS

基になるメモリ ページを読み取ったり書き込んだりすることはできません。

PAGE_READONLY

基になるメモリ ページは読み取り専用であり、書き込みできません。

PAGE_READWRITE

基になるメモリ ページは、読み取りまたは書き込みが可能です。

PAGE_EXECUTE

基になるメモリ ページは実行できますが、読み取りまたは書き込みは実行できません。

PAGE_EXECUTE_READ

基になるメモリ ページは実行または読み取りできますが、書き込みできません。

PAGE_EXECUTE_READWRITE

基になるメモリ ページは、実行、読み取り、または書き込みが可能です。

戻り値

MmProtectMdlSystemAddress は NTSTATUS コードを返します。 可能な戻り値は次のとおりです。

リターン コード 説明
STATUS_SUCCESS
ルーチンは、メモリ アドレス範囲の保護の種類を正常に変更しました。
STATUS_INVALID_PAGE_PROTECTION
NewProtect に指定された値は、このルーチンの有効な値ではありません。
STATUS_NOT_MAPPED_VIEW
MDL はまだマップされていません。 MmProtectMdlSystemAddress は、既にマップされている MDL でのみ使用できます。

注釈

MmProtectMdlSystemAddress ルーチンは、既にマップされている MDL でのみ呼び出すことができます。 たとえば、 MmMapLockedPagesSpecifyCache によってマップされた MDL でルーチンを呼び出すことができます。

要件

要件
サポートされている最小のクライアント Windows XP 以降のバージョンの Windows で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

こちらもご覧ください

MmMapLockedPagesSpecifyCache