Функция ZwQueryVirtualMemory (ntifs.h)
Подпрограмма ZwQueryVirtualMemory определяет состояние, защиту и тип области страниц в виртуальном адресном пространстве процесса темы.
Синтаксис
NTSYSAPI NTSTATUS ZwQueryVirtualMemory(
[in] HANDLE ProcessHandle,
[in, optional] PVOID BaseAddress,
[in] MEMORY_INFORMATION_CLASS MemoryInformationClass,
[out] PVOID MemoryInformation,
[in] SIZE_T MemoryInformationLength,
[out, optional] PSIZE_T ReturnLength
);
Параметры
[in] ProcessHandle
Дескриптор процесса, в контексте которого будут запрашиваться страницы. Используйте макрос ZwCurrentProcess, чтобы указать текущий процесс.
[in, optional] BaseAddress
Базовый адрес области страниц, запрашиваемой. Это значение округляется до следующей границы адреса страницы узла.
[in] MemoryInformationClass
Класс сведений о памяти, о котором требуется получить информацию. В настоящее время единственным поддерживаемым значением MEMORY_INFORMATION_CLASS является MemoryBasicInformation.
[out] MemoryInformation
Указатель на буфер, получающий указанные сведения. Формат и содержимое буфера зависят от указанного класса информации, указанного в параметре MemoryInformationClass. Если значение MemoryBasicInformation передается MemoryInformationClass, значение параметра MemoryInformation является структурой MEMORY_BASIC_INFORMATION.
[in] MemoryInformationLength
Задает длину в байтах буфера сведений о памяти.
[out, optional] ReturnLength
Необязательный указатель, который, если указан, получает количество байтов, помещенных в буфер сведений о памяти.
Возвращаемое значение
Возвращает STATUS_SUCCESS, если вызов выполнен успешно. Если вызов завершается сбоем, возможные коды ошибок включают следующие:
Возвращаемый код | Описание |
---|---|
STATUS_INVALID_PARAMETER | Указанный базовый адрес находится за пределами диапазона доступных адресов. |
STATUS_ACCESS_DENIED | Вызывающий объект имел недостаточно прав доступа для выполнения запрошенного действия. |
STATUS_INFO_LENGTH_MISMATCH | Буфер MemoryInformation больше MemoryInformationLength. |
STATUS_INVALID_INFO_CLASS | Значение, отличное от MemoryBasicInformation, было передано параметру MemoryInformationClass. |
Замечания
ZwQueryVirtualMemory определяет состояние первой страницы в регионе, а затем сканирует последующие записи в карте адресов процесса с базового адреса вверх до тех пор, пока не будет сканирован весь диапазон страниц или до тех пор, пока страница с несоединяющим набором атрибутов не будет обнаружена. Атрибуты региона, длина области страниц с соответствующими атрибутами и соответствующее значение состояния возвращаются.
Если вся область страниц не имеет соответствующего набора атрибутов, то значение параметра returnLength
NtQueryVirtualMemory и ZwQueryVirtualMemory являются двумя версиями одной подпрограммы Windows Native System Services.
Для вызовов драйверов в режиме ядра NtXxx*** и ZwXxx**** подпрограммы windows Native System Services могут вести себя по-разному так, как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между NtXxx и ZwXxx версиями подпрограммы см. в разделе Using Nt and Zw Versions of the Native System Services Routines.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 |
целевая платформа | Всеобщий |
заголовка | ntifs.h |
библиотеки |
NtosKrnl.lib |
DLL | NtosKrnl.exe |