WIN32_MEMORY_REGION_INFORMATION 结构 (memoryapi.h)
包含有关内存区域的信息。 内存区域是使用内存分配函数(例如 VirtualAlloc 或 MapViewOfFile)创建的单个分配。
语法
typedef struct WIN32_MEMORY_REGION_INFORMATION {
PVOID AllocationBase;
ULONG AllocationProtect;
union {
ULONG Flags;
struct {
ULONG Private : 1;
ULONG MappedDataFile : 1;
ULONG MappedImage : 1;
ULONG MappedPageFile : 1;
ULONG MappedPhysical : 1;
ULONG DirectMapped : 1;
ULONG Reserved : 26;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
SIZE_T RegionSize;
SIZE_T CommitSize;
} WIN32_MEMORY_REGION_INFORMATION;
成员
AllocationBase
分配的基址。
AllocationProtect
创建分配时指定的页保护值。 对分配中各个页面的保护可能不同于此值。 若要查询各个页面的保护值,请使用 VirtualQuery 函数。
DUMMYUNIONNAME
DUMMYUNIONNAME.Flags
将所有内存区域标志表示为单个 ULONG 值。 应用程序不应使用此字段。 请改为测试下面定义的单个位字段标志。
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.Private
值为 1 表示该分配是进程的专用分配。
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MappedDataFile
值为 1 表示分配是数据文件的映射视图。
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MappedImage
值为 1 表示分配是可执行映像的映射视图。
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MappedPageFile
值 1 指示分配是页面文件支持的节的映射视图。
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MappedPhysical
值 1 指示分配是 \Device\PhysicalMemory 节的视图。
DUMMYUNIONNAME.DUMMYSTRUCTNAME.DirectMapped
值为 1 表示分配是直接映射文件的映射视图。
DUMMYUNIONNAME.DUMMYSTRUCTNAME.Reserved
保留。
RegionSize
分配的大小。
CommitSize
与分配关联的提交费用。 对于专用分配,这是区域中已提交的页面的组合大小,而不是保留的。 对于映射视图,这是具有写入时复制保护或因写入时复制而设为私有的页面的组合大小。
注解
WIN32_MEMORY_REGION_INFORMATION 结构包含有关单个内存分配的信息。 相比之下,VirtualQuery 函数返回的 MEMORY_BASIC_INFORMATION 结构描述了单个分配中所有具有相同类型、状态和保护的页的连续运行。 WIN32_MEMORY_REGION_INFORMATION字段与 VirtualQuery 返回的内存类型值之间的映射如下所示:
WIN32_MEMORY_REGION_INFORMATION | MEMORY_BASIC_INFORMATION::Type |
---|---|
私有 | MEM_PRIVATE |
MappedDataFile | MEM_MAPPED |
MappedImage | MEM_IMAGE |
MappedPageFile | MEM_MAPPED |
MappedPhysical | MEM_MAPPED |
要求
最低受支持的客户端 | Windows 10版本 1607 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2016 [仅限桌面应用] |
标头 | memoryapi.h (包括 Windows.h) |