Partager via


MEMORY_BASIC_INFORMATION (Compact 2013)

3/28/2014

This structure contains information about a range of pages in the virtual address space of a process. The VirtualQuery function uses this structure.

Syntax

typedef struct _MEMORY_BASIC_INFORMATION {
  PVOID BaseAddress;
  PVOID AllocationBase;
  DWORD AllocationProtect;
  DWORD RegionSize;
    DWORD State;
  DWORD Protect;
  DWORD Type;
  } MEMORY_BASIC_INFORMATION;
typedef MEMORY_BASIC_INFORMATION *PMEMORY_BASIC_INFORMATION;

Members

  • BaseAddress
    Pointer to the base address of the region of pages.
  • AllocationBase
    Pointer to the base address of a range of pages allocated by the VirtualAlloc function. The page pointed to by the BaseAddress member is contained within this allocation range.
  • AllocationProtect
    Specifies the access protection given when the region was initially allocated.

    Note

    This field is not supported.

    The following table shows this member's flags. Any one of these flags can be present, along with the PAGE_GUARD and PAGE_NOCACHE protection modifier flags.

    Value

    Description

    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 and is only valid when used with a page protection 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, called a general protection (GP) fault.

    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 is not recommended for general use. It is useful for device drivers; for example, mapping a video frame buffer with no caching.

    This flag is a page protection modifier and is only valid when used with a page protection 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 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.

  • RegionSize
    Specifies the size, in bytes, of the region beginning at the base address in which all pages have identical attributes.
  • State
    Specifies the state of the pages in the region.

    The following table shows the possible values.

    Value

    Description

    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 virtual address space of the process is reserved without physical storage being allocated.

    For reserved pages, the information in the Protect member is undefined.

  • Protect
    Specifies the access protection of the pages in the region.

    One of the flags listed for the AllocationProtect member is specified.

  • Type
    Specifies the type of pages in the region.

    The following table shows the possible values.

    Value

    Description

    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 (that is, not shared by other processes).

Requirements

Header

winnt.h

See Also

Reference

Memory Management Structures
VirtualAlloc
VirtualQuery