Función ZwFlushVirtualMemory (ntifs.h)
La rutina ZwFlushVirtualMemory vacía un intervalo de direcciones virtuales dentro del espacio de direcciones virtuales de un proceso especificado que se asigna a un archivo de datos de vuelta al archivo de datos si se han modificado.
Sintaxis
NTSYSAPI NTSTATUS ZwFlushVirtualMemory(
[in] HANDLE ProcessHandle,
[in, out] PVOID *BaseAddress,
[in, out] PSIZE_T RegionSize,
[out] PIO_STATUS_BLOCK IoStatus
);
Parámetros
[in] ProcessHandle
Identificador abierto del proceso en cuyo contexto residen las páginas que se van a vaciar. Use la macro NtCurrentProcess , definida en Ntddk.h, para especificar el proceso actual.
[in, out] BaseAddress
Puntero a la dirección base del intervalo de direcciones virtuales.
En la entrada, este parámetro especifica un puntero al valor inicial de la dirección base de la región de páginas que se va a vaciar.
A la devolución, este parámetro proporciona un puntero a una variable que recibirá la dirección base de la región vacía.
[in, out] RegionSize
Tamaño, en bytes, del intervalo de direcciones virtuales.
En la entrada, este parámetro especifica un puntero al valor inicial del tamaño en bytes de la región de páginas que se va a vaciar en el disco. Este argumento se redondea al siguiente límite de tamaño de página host por zwflushVirtualMemory. Si este valor se especifica como cero, se vacía el intervalo asignado de la dirección base al final del intervalo.
En la devolución, este parámetro especifica un puntero a una variable que recibirá el tamaño real en bytes de la región vacía de páginas.
[out] IoStatus
Puntero a una estructura IO_STATUS_BLOCK . Esta estructura es donde el valor del estado de E/S para la última operación de E/S intentada se almacena en la salida.
Valor devuelto
ZwFlushVirtualMemory devuelve STATUS_SUCCESS o un código de estado de error. Entre los posibles códigos de estado de error se incluyen los siguientes:
Código devuelto | Descripción |
---|---|
STATUS_ACCESS_DENIED | El parámetro ProcessHandle especificado no era un identificador de proceso válido. |
STATUS_INSUFFICIENT_RESOURCES | No había recursos adicionales necesarios para esta función. |
STATUS_INVALID_PARAMETER_2 | La baseAddress especificada era una dirección no válida dentro del espacio de direcciones virtuales o RegionSize no era válida. |
STATUS_INVALID_HANDLE | El parámetro ProcessHandle especificado no era un identificador de proceso válido. |
STATUS_NOT_MAPPED_VIEW | No se pudo encontrar ningún descriptor de espacio de direcciones virtual para la baseaddress proporcionada. |
STATUS_PROCESS_IS_TERMINATING | Se eliminó el proceso y el espacio de direcciones virtuales asociado. |
STATUS_FILE_LOCK_CONFLICT | El sistema de archivos encontró un conflicto de bloqueo. |
Comentarios
Esta rutina acepta, como parámetros de entrada, un intervalo de direcciones en memoria virtual que asigna un archivo de datos. Si se ha modificado alguna memoria de este intervalo desde que se copió el archivo en la memoria, la rutina vuelve a vaciar esta memoria en el archivo de datos.
Para obtener más información sobre la compatibilidad con la administración de memoria para controladores en modo kernel, consulte Administración de memoria para controladores de Windows.
Nota
Si la llamada a la función ZwFlushVirtualMemory se produce en modo de usuario, debe usar el nombre "NtFlushVirtualMemory" en lugar de "ZwFlushVirtualMemory".
En el caso de las llamadas desde controladores en modo kernel, las versiones NtXxx y ZwXxx de una rutina de Windows Native System Services 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 NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de