Функция NtQueryVirtualMemory (ntifs.h)
Подпрограмма NtQueryVirtualMemory определяет состояние, защиту и тип области страниц в виртуальном адресном пространстве указанного процесса.
Синтаксис
__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryVirtualMemory(
[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
Дескриптор для процесса, в контексте которого находятся страницы для запроса. Используйте макрос NtCurrentProcess , чтобы указать текущий процесс.
[in, optional] BaseAddress
Базовый адрес области запрашиваемых страниц. Это значение округляется до следующей границы адреса страницы узла.
[in] MemoryInformationClass
Класс сведений о памяти, о котором требуется извлечь информацию. В настоящее время единственным поддерживаемым значением MEMORY_INFORMATION_CLASS является MemoryBasicInformation.
[out] MemoryInformation
Указатель на буфер, который получает указанные сведения. Формат и содержимое буфера зависят от класса информации, указанного в параметре MemoryInformationClass . При передаче значения MemoryBasicInformation в MemoryInformationClass значение параметра MemoryInformation является MEMORY_BASIC_INFORMATION структурой.
[in] MemoryInformationLength
Указывает длину (в байтах) буфера, на который указывает MemoryInformation .
[out, optional] ReturnLength
Необязательный указатель, который, если он указан, получает количество байтов, помещенных в буфер MemoryInformation .
Возвращаемое значение
Возвращает STATUS_SUCCESS, если вызов выполнен успешно. Если вызов завершается ошибкой, возможны следующие коды ошибок:
Код возврата | Описание |
---|---|
STATUS_ACCESS_DENIED | У вызывающего объекта недостаточно прав доступа для выполнения запрошенного действия. |
STATUS_ACCESS_VIOLATION | Указанный базовый адрес является недопустимым виртуальным адресом. |
STATUS_INFO_LENGTH_MISMATCH | Буфер MemoryInformation больше, чем MemoryInformationLength. |
STATUS_INVALID_INFO_CLASS | Указанный параметр MemoryInformationClass недопустим. |
STATUS_INVALID_PARAMETER | Указанный базовый адрес выходит за пределы диапазона доступных адресов. |
Комментарии
ZwQueryVirtualMemory определяет состояние первой страницы в регионе, а затем сканирует последующие записи в схеме адресов процесса от базового адреса вверх до тех пор, пока не будет отсканирован весь диапазон страниц или пока не будет обнаружена страница с несовпадающим набором атрибутов. Возвращаются атрибуты региона, длина области страниц с соответствующими атрибутами и соответствующее значение состояния.
Если вся область страниц не имеет соответствующего набора атрибутов, то подрегионы в одном резервировании адресов будут возвращены по отдельности. Они будут иметь одно и то же значение *MemoryInformation.AllocationBase , их отдельные размеры будут находиться в *MemoryInformation.RegionSize, а общий размер резервирования адресов можно получить, суммируя все значения *MemoryInformation.RegionSize , связанные с определенным значением *MemoryInformation.AllocationBase .
NtQueryVirtualMemory и ZwQueryVirtualMemory — это две версии одной и той же подпрограммы windows Native System Services.
Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы собственных системных служб Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями процедуры NtXxx и ZwXxx см. в разделе Использование версий Nt и Zw для процедур собственных системных служб.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 |
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по