[This is preliminary documentation and subject to change.]
The MEMORY_BASIC_INFORMATION_VLM structure contains information about a range of pages in the virtual address space of a process. The VirtualQueryVlm function uses this structure.
typedef struct _MEMORY_BASIC_INFORMATION_VLM {
union {
PVOID64 BaseAddress;
ULONGLONG BaseAddressAsUlongLong;
};
union {
PVOID64 AllocationBase;
ULONGLONG AllocationBaseAsUlongLong;
};
ULONGLONG RegionSize;
DWORD AllocationProtect;
DWORD State;
DWORD Protect;
DWORD Type;
} MEMORY_BASIC_INFORMATION_VLM, *PMEMORY_BASIC_INFORMATION_VLM;
Value | Meaning |
---|---|
PAGE_EXECUTE | Enables execute access to the committed region of pages. An attempt to read or write to the committed region results in an access violation. |
PAGE_EXECUTE_READ | Enables execute and read access to the committed region of pages. An attempt to write to the committed region results in an access violation. |
PAGE_EXECUTE_READWRITE | Enables execute, read, and write access to the committed region of pages. |
PAGE_EXECUTE_WRITECOPY | Enables execute, read, and write access to the committed region of pages. The pages are shared read-on-write and copy-on-write. |
PAGE_GUARD | Protects the page with the underlying page protection. However, access to the region causes a "guard page entered" condition to be raised in the subject process. This flag is a page protection modifier, only valid when used with one of the access values other than PAGE_NOACCESS. |
PAGE_NOACCESS | Disables all access to the committed region of pages. An attempt to read from, write to, or execute in the committed region results in an access violation exception. |
PAGE_NOCACHE | Allows no caching of the committed regions of pages. The hardware attributes for the physical memory should be set to no cache. This flag is not recommended for general usage. However, this flag is useful for device drivers, for example when mapping a video frame buffer with no caching. This flag is a page protection modifier, only valid when used with one of the access values other than PAGE_NOACCESS. |
PAGE_READONLY | Enables read access to the committed region of pages. An attempt to write to the committed region results in an access violation. If the operating system differentiates between read-only access and execute access, an attempt to execute code in the committed region results in an access violation. |
PAGE_READWRITE | Enables both read and write access to the committed region of pages. |
PAGE_WRITECOPY | Gives copy-on-write access to the committed region of pages. |
Value | Meaning |
---|---|
MEM_COMMIT | Indicates committed pages for which physical storage has been allocated, either in memory or in the paging file on disk. |
MEM_FREE | Indicates free pages not accessible to the calling process and available to be allocated. For free pages, the information in the AllocationBase, AllocationProtect, Protect, and Type members is undefined. |
MEM_RESERVE | Indicates reserved pages where a range of the process's virtual address space is reserved without allocating any physical storage. For reserved pages, the information in the Protect member is undefined. |
Value | Meaning |
---|---|
MEM_IMAGE | Indicates that the memory pages within the region are mapped into the view of an image section. |
MEM_MAPPED | Indicates that the memory pages within the region are mapped into the view of a section. |
MEM_PRIVATE | Indicates that the memory pages within the region are private (not shared by other processes). |
Windows NT: Requires version 5.0 or later.
Windows: Unsupported.
Windows CE: Unsupported.
Header: Declared in winnt.h.
Memory Management Overview, Memory Management Structures, Very Large Memory (VLM), MEMORY_BASIC_INFORMATION, VirtualAllocVlm, VirtualQueryVlm