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


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

Содержит сведения о диапазоне страниц в виртуальном адресном пространстве процесса. Эта структура используется в подпрограмме ZwQueryVirtualMemory .

Синтаксис

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

Члены

BaseAddress

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

AllocationBase

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

AllocationProtect

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

Значение Значение
PAGE_NOACCESS 0x01 Доступ к региону страниц не разрешен. Попытка чтения, записи или выполнения в регионе приводит к нарушению доступа.
PAGE_EXECUTE 0x10 Доступ для выполнения к области страниц разрешен. Попытка чтения или записи в регионе приводит к нарушению доступа.
PAGE_READONLY 0x02 Разрешен доступ только для чтения и выполнения к области страниц. Попытка записи в регионе приводит к нарушению доступа.
PAGE_READWRITE 0x04 Доступ на чтение, запись и выполнение к области страниц разрешен. Если доступ на запись к базовому разделу разрешен, одна копия страниц предоставляется совместно. В противном случае страницы будут совместно использоваться только для чтения или копирования при записи.
PAGE_GUARD 0x100 Доступ на чтение, запись и выполнение к региону страниц разрешен; Однако доступ к региону приводит к возникновению условия "вводимый регион защиты" в процессе субъекта.
PAGE_NOCACHE 0x200 Отключите размещение зафиксированных страниц в кэше данных.
PAGE_WRITECOMBINE 0x400 Отключите размещение зафиксированных страниц в кэше данных, а также объедините операции записи.

PartitionId

Зарезервировано для системного использования.

RegionSize

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

State

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

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

Protect

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

Type

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

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

Требования

Требование Значение
Минимальная версия клиента Windows 10
Верхняя часть ntifs.h

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

ZwQueryVirtualMemory