Compartir a través de


Función ZwQueryVirtualMemory (ntifs.h)

La rutina ZwQueryVirtualMemory determina el estado, la protección y el tipo de una región de páginas dentro del espacio de direcciones virtuales del proceso del asunto.

Sintaxis

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

Identificador del proceso en cuyo contexto residen las páginas que se van a consultar. Use la macro ZwCurrentProcess para especificar el proceso actual.

[in, optional] BaseAddress

Dirección base de la región de las páginas que se van a consultar. Este valor se redondea hacia abajo hasta el siguiente límite de dirección de la página host.

[in] MemoryInformationClass

Clase de información de memoria sobre la que se va a recuperar información. Actualmente, el único valor de MEMORY_INFORMATION_CLASS admitido es MemoryBasicInformation.

[out] MemoryInformation

Puntero a un búfer que recibe la información especificada. El formato y el contenido del búfer dependen de la clase de información especificada en el parámetro MemoryInformationClass. Cuando el valor MemoryBasicInformation se pasa a MemoryInformationClass, el valor del parámetro memoryInformation es una estructura MEMORY_BASIC_INFORMATION.

[in] MemoryInformationLength

Especifica la longitud en bytes del búfer de información de memoria.

[out, optional] ReturnLength

Puntero opcional que, si se especifica, recibe el número de bytes colocados en el búfer de información de memoria.

Valor devuelto

Devuelve STATUS_SUCCESS si la llamada se realiza correctamente. Si se produce un error en la llamada, los códigos de error posibles incluyen lo siguiente:

Código devuelto Descripción
STATUS_INVALID_PARAMETER La dirección base especificada está fuera del intervalo de direcciones accesibles.
STATUS_ACCESS_DENIED El autor de la llamada no tenía derechos de acceso suficientes para realizar la acción solicitada.
STATUS_INFO_LENGTH_MISMATCH El búfer de MemoryInformation es mayor que MemoryInformationLength.
STATUS_INVALID_INFO_CLASS Se pasó un valor distinto de memoryBasicInformation al parámetro MemoryInformationClass.

Observaciones

ZwQueryVirtualMemory determina el estado de la primera página dentro de la región y, a continuación, examina las entradas posteriores en el mapa de direcciones del proceso desde la dirección base hacia arriba hasta que se haya examinado todo el intervalo de páginas o hasta que se encuentre una página con un conjunto no coincidente de atributos. Se devuelven los atributos de región, la longitud de la región de páginas con atributos coincidentes y un valor de estado adecuado.

Si toda la región de páginas no tiene un conjunto coincidente de atributos, se puede usar el valor de parámetro ReturnLength para calcular la dirección y la longitud de la región de las páginas que no se examinaron.

NtQueryVirtualMemory y ZwQueryVirtualMemory son dos versiones de la misma rutina de Servicios del sistema nativo de Windows.

En el caso de las llamadas de controladores en modo kernel, las versiones de NtXxx*** y ZwXxx*** de una rutina de Servicios del sistema nativo de Windows pueden comportarse de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones de NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10
de la plataforma de destino de Universal
encabezado de ntifs.h
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe

Consulte también

POWER_PLATFORM_INFORMATION