Поделиться через


структура MEMORY_BASIC_INFORMATION (winnt.h)

Содержит сведения о диапазоне страниц в виртуальном адресном пространстве процесса. Эта структура используется в функциях VirtualQuery и VirtualQueryEx .

Синтаксис

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

Члены

BaseAddress

Указатель на базовый адрес области страниц.

AllocationBase

Указатель на базовый адрес диапазона страниц, выделенных функцией VirtualAlloc . Страница, на которую указывает элемент BaseAddress , находится в этом диапазоне выделения.

AllocationProtect

Параметр защиты памяти при первоначальном выделении региона. Этот элемент может быть одной из констант защиты памяти или 0, если у вызывающего объекта нет доступа.

PartitionId

RegionSize

Размер области, начинающейся с базового адреса, в котором все страницы имеют одинаковые атрибуты в байтах.

State

Состояние страниц в регионе. Этот элемент может иметь одно из следующих значений.

Состояние Значение
MEM_COMMIT
0x1000
Указывает зафиксированные страницы, для которых было выделено физическое хранилище, либо в памяти, либо в файле подкачки на диске.
MEM_FREE
0x10000
Указывает, что бесплатные страницы недоступны для вызывающего процесса и доступны для выделения. Для бесплатных страниц информация в элементах AllocationBase, AllocationProtect, Protect и Type не определена.
MEM_RESERVE
0x2000
Указывает зарезервированные страницы, на которых зарезервирован диапазон виртуального адресного пространства процесса без выделения физического хранилища. Для зарезервированных страниц информация в элементе Protect не определена.

Protect

Защита доступа к страницам в регионе. Этот элемент является одним из значений, перечисленных для элемента AllocationProtect .

Type

Тип страниц в регионе. Определены следующие типы.

Тип Значение
MEM_IMAGE
0x1000000
Указывает, что страницы памяти в регионе сопоставляются с представлением раздела изображения.
MEM_MAPPED
0x40000
Указывает, что страницы памяти в регионе сопоставляются с представлением раздела.
MEM_PRIVATE
0x20000
Указывает, что страницы памяти в регионе являются частными (то есть не являются общими для других процессов).

Комментарии

Чтобы разрешить отладчику выполнять отладку целевого объекта, работающего в другой архитектуре (32-разрядной и 64-разрядной), используйте одну из явных форм этой структуры.

typedef struct _MEMORY_BASIC_INFORMATION32 {
    DWORD BaseAddress;
    DWORD AllocationBase;
    DWORD AllocationProtect;
    DWORD RegionSize;
    DWORD State;
    DWORD Protect;
    DWORD Type;
} MEMORY_BASIC_INFORMATION32, *PMEMORY_BASIC_INFORMATION32;

typedef struct DECLSPEC_ALIGN(16) _MEMORY_BASIC_INFORMATION64 {
    ULONGLONG BaseAddress;
    ULONGLONG AllocationBase;
    DWORD     AllocationProtect;
    DWORD     __alignment1;
    ULONGLONG RegionSize;
    DWORD     State;
    DWORD     Protect;
    DWORD     Type;
    DWORD     __alignment2;
} MEMORY_BASIC_INFORMATION64, *PMEMORY_BASIC_INFORMATION64;

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть winnt.h (включая Windows.h)

См. также раздел

VirtualAlloc

VirtualQuery

VirtualQueryEx