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 |