Compartilhar via


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 das páginas a serem consultadas. Esse valor é arredondado para baixo para 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.

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_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.

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, 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 de Sistema Nativo do Windows.

Para chamadas de drivers no modo kernel, as versões NtXxx**** e ZwXxx**** 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 10
da Plataforma de Destino Universal
cabeçalho ntifs.h
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe

Consulte também

POWER_PLATFORM_INFORMATION