MEMORY_BASIC_INFORMATION结构 (ntifs.h)
包含有关进程虚拟地址空间中一系列页面的信息。 ZwQueryVirtualMemory 例程使用此结构。
语法
typedef struct _MEMORY_BASIC_INFORMATION {
PVOID BaseAddress;
PVOID AllocationBase;
ULONG AllocationProtect;
USHORT PartitionId;
SIZE_T RegionSize;
ULONG State;
ULONG Protect;
ULONG Type;
} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION;
成员
BaseAddress
指向页面区域的基址的指针。
AllocationBase
指向已分配页范围的基址的指针。 BaseAddress 成员指向的页面包含在此分配范围内。
AllocationProtect
最初分配区域时的内存保护选项。 此成员可以是 wdm.h 中定义的以下常量之一;如果调用方没有访问权限,则为 0。
价值 | 意义 |
---|---|
PAGE_NOACCESS 0x01 | 不允许访问页面区域。 尝试在区域中读取、写入或执行会导致访问冲突。 |
PAGE_EXECUTE 0x10 | 允许执行对页面区域的访问权限。 尝试读取或写入区域中会导致访问冲突。 |
PAGE_READONLY 0x02 | 允许对页面区域的只读和执行访问权限。 尝试在区域内写入会导致访问冲突。 |
PAGE_READWRITE 0x04 | 允许读取、写入和执行对页面区域的访问权限。 如果允许对基础分区进行写入访问,则共享页面的单个副本。 否则,页面将共享只读/复制写入。 |
PAGE_GUARD 0x100 | 允许读取、写入和执行对页面区域的访问权限;但是,访问该区域会导致在主题过程中引发“进入防护区域”条件。 |
PAGE_NOCACHE 0x200 | 禁用已提交页面放置到数据缓存中。 |
PAGE_WRITECOMBINE 0x400 | 禁用已提交页面放置到数据缓存中,同时合并写入。 |
PartitionId
保留供系统使用。
RegionSize
区域的大小(以字节为单位),以基址开头,其中所有页面都具有相同的属性。
State
区域中页面的状态。 此成员可以是以下值之一。
州 | 意义 |
---|---|
MEM_COMMIT 0x1000 | 指示已为其分配物理存储的已提交页,无论是在内存中还是在磁盘上的分页文件中。 |
MEM_FREE 0x10000 | 指示调用进程无法访问且可供分配的免费页面。 |
MEM_RESERVE 0x2000 | 指示保留页,其中保留进程的虚拟地址空间范围,而无需分配任何物理存储。 |
Protect
区域中页面的访问保护。 此成员是 AllocationProtect 成员列出的值之一。
Type
区域中的页面类型。 定义了以下类型。
类型 | 意义 |
---|---|
MEM_IMAGE 0x1000000 | 指示区域中的内存页映射到图像部分的视图。 |
MEM_MAPPED 0x40000 | 指示区域中的内存页映射到分区的视图中。 |
MEM_PRIVATE 0x20000 | 指示区域中的内存页是专用的(即其他进程不共享)。 |
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 |
标头 | ntifs.h |