Função ZwQueryVirtualMemory (ntifs.h)

A rotina ZwQueryVirtualMemory 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 de assunto.

Sintaxe

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

Parâmetros

[in] ProcessHandle

Um identificador para o processo em cujo contexto as páginas a serem consultadas residem. Use a macro ZwCurrentProcess para especificar o processo atual.

[in, optional] BaseAddress

O endereço base da região de páginas a ser consultada. Esse valor é arredondado para baixo até o próximo limite de endereço da 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

Um 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 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 de informações de memória.

[out, optional] ReturnLength

Um ponteiro opcional que, se especificado, recebe o número de bytes colocados no buffer de informações de memória.

Retornar valor

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_INVALID_PARAMETER O endereço base especificado está fora do intervalo de endereços acessíveis.
STATUS_ACCESS_DENIED O chamador não tinha direitos de acesso suficientes para executar a ação solicitada.
STATUS_INFO_LENGTH_MISMATCH O buffer MemoryInformation é maior que MemoryInformationLength.
STATUS_INVALID_INFO_CLASS Um valor diferente de MemoryBasicInformation foi passado para o parâmetro MemoryInformationClass .

Comentários

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 de páginas não tiver um conjunto correspondente de atributos, o valor do parâmetro ReturnLength poderá ser usado para calcular o endereço e o comprimento da região das páginas que não foram verificadas.

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

Para chamadas de drivers no modo kernel, as versões NtXxx**** e ZwXxx**** de uma rotina dos Serviços do 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 dos Serviços de Sistema Nativo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Plataforma de Destino Universal
Cabeçalho ntifs.h
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe

Confira também

POWER_PLATFORM_INFORMATION