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 |