Compartilhar via


Função NtQueryVirtualMemory (ntifs.h)

O NtQueryVirtualMemory rotina determina o estado, a proteção e o tipo de uma região de páginas dentro do espaço de endereço virtual do processo especificado.

Sintaxe

__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
);

Parâmetros

[in] ProcessHandle

Manipule o processo em cujo contexto residem as páginas a serem consultadas. Use a macro NtCurrentProcess para especificar o processo atual.

[in, optional] BaseAddress

O endereço base da região das páginas a serem consultadas. Esse valor é arredondado para baixo para o próximo limite de endereço de página de host.

[in] MemoryInformationClass

A classe de informações de memória sobre a qual recuperar informações. Atualmente, o único valor de MEMORY_INFORMATION_CLASS com suporte é MemoryBasicInformation.

[out] MemoryInformation

Ponteiro para um buffer que recebe as informações especificadas. O formato e o conteúdo do buffer dependem da classe de informações especificada no parâmetro MemoryInformationClass. Quando o valor MemoryBasicInformation é passado para MemoryInformationClass, o valor do parâmetro MemoryInformation é uma estrutura MEMORY_BASIC_INFORMATION.

[in] MemoryInformationLength

Especifica o comprimento, em bytes, do buffer para o qual MemoryInformation aponta.

[out, optional] ReturnLength

Um ponteiro opcional que, se especificado, recebe o número de bytes colocados no buffer MemoryInformation.

Valor de retorno

Retorna STATUS_SUCCESS se a chamada for bem-sucedida. Se a chamada falhar, os códigos de erro possíveis incluem o seguinte:

Código de retorno Descrição
STATUS_ACCESS_DENIED O chamador não tinha direitos de acesso suficientes para executar a ação solicitada.
STATUS_ACCESS_VIOLATION O endereço base especificado é um endereço virtual inválido.
STATUS_INFO_LENGTH_MISMATCH O buffer MemoryInformation é maior que MemoryInformationLength.
STATUS_INVALID_INFO_CLASS O parâmetro MemoryInformationClass especificado é inválido.
STATUS_INVALID_PARAMETER O endereço base especificado está fora do intervalo de endereços acessíveis.

Observações

ZwQueryVirtualMemory determina o estado da primeira página dentro da região e verifica as entradas subsequentes no mapa de endereços do processo do endereço base para cima até que todo o intervalo de páginas tenha sido verificado ou até que uma página com um conjunto de atributos não correspondente seja encontrada. Os atributos de região, o comprimento da região das páginas com atributos correspondentes e um valor de status apropriado são retornados.

Se toda a região das páginas não tiver um conjunto correspondente de atributos, as sub-regiões dentro de uma reserva de endereço serão retornadas individualmente. Eles terão o mesmo valor *MemoryInformation.AllocationBase, seus tamanhos individuais estarão em *MemoryInformation.RegionSizee o tamanho total da reserva de endereços pode ser obtido somando todos os valores de *MemoryInformation.RegionSize associados a um determinado valor de *MemoryInformation.AllocationBase.

NtQueryVirtualMemory e ZwQueryVirtualMemory são duas versões da mesma rotina dos Serviços de Sistema Nativo do Windows.

Para chamadas de drivers no modo kernel, as versões NtXxx e Zwxxx versões de uma rotina dos Serviços de Sistema Nativo do Windows podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Usando versões Nt e Zw das rotinas de serviços do sistema nativo.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000
da Plataforma de Destino Universal
cabeçalho ntifs.h
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe

Consulte também

MEMORY_BASIC_INFORMATION

MEMORY_INFORMATION_CLASS

POWER_PLATFORM_INFORMATION

ZwQueryVirtualMemory