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 中可用。
目标平台 普遍
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

另请参阅

mmMapLockedPagesSpecifyCache