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 上使用。

注解

只能在已映射的 MDL 上调用 MmProtectMdlSystemAddress 例程。 例如,可以在 由 MmMapLockedPagesSpecifyCache 映射的 MDL 上调用例程。

要求

要求
最低受支持的客户端 在 Windows XP 和更高版本的 Windows 中可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

另请参阅

MmMapLockedPagesSpecifyCache