#ifndef _NTMMAPI_H
// private
typedef struct _MEMORY_REGION_INFORMATION
{
PVOID AllocationBase; // Base address of the allocation.
ULONG AllocationProtect; // Page protection when the allocation was created (individual pages can be different from this value).
union
{
ULONG RegionType;
struct
{
ULONG Private : 1; // Region is private to the process (not shared).
ULONG MappedDataFile : 1; // Region is a mapped view of a data file (read/write data mapping).
ULONG MappedImage : 1; // Region is a mapped view of an image file (executable/DLL mapping).
ULONG MappedPageFile : 1; // Region is a mapped view of a pagefile-backed section.
ULONG MappedPhysical : 1; // Region is a mapped view of the \Device\PhysicalMemory section.
ULONG DirectMapped : 1; // Region is a mapped view of a direct-mapped file.
ULONG SoftwareEnclave : 1; // Region is a mapped view of a software enclave. // since REDSTONE3
ULONG PageSize64K : 1; // Region uses 64 KB page size.
ULONG PlaceholderReservation : 1; // Region uses placeholder reservations. // since REDSTONE4
ULONG MappedAwe : 1; // 21H1 // Region uses Address Windowing Extensions (AWE).
ULONG MappedWriteWatch : 1; // Region uses write-watch protection.
ULONG PageSizeLarge : 1; // Region uses large page size.
ULONG PageSizeHuge : 1; // Region uses huge page size.
ULONG Reserved : 19;
};
};
SIZE_T RegionSize; // The combined size of pages in the region.
SIZE_T CommitSize; // The commit charge associated with the allocation.
ULONG_PTR PartitionId; // 19H1
ULONG_PTR NodePreference; // 20H1
} MEMORY_REGION_INFORMATION, *PMEMORY_REGION_INFORMATION;
View code on GitHubThis structure is documented in Windows SDK.