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
[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
[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 |