Función ZwFlushBuffersFileEx (ntifs.h)

Un controlador de filtro del sistema de archivos llama a la rutina ZwFlushBuffersFileEx para enviar una solicitud de vaciado de un archivo determinado al sistema de archivos. Se puede establecer una marca de operación de vaciado opcional para controlar cómo se escriben los datos de archivo en el almacenamiento.

Sintaxis

NTSYSAPI NTSTATUS ZwFlushBuffersFileEx(
  [in]  HANDLE           FileHandle,
        ULONG            FLags,
        PVOID            Parameters,
        ULONG            ParametersSize,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

Parámetros

[in] FileHandle

Identificador devuelto por ZwCreateFile o ZwOpenFile para el archivo cuyos búferes se vaciarán. Este parámetro es obligatorio y no puede ser NULL.

FLags

Marcas de operación de vaciado. Las marcas pueden ser 0 o uno de los valores siguientes.

Valor Significado
FLUSH_FLAGS_FILE_DATA_ONLY

Si el archivo está en un sistema de archivos NTFS, se escribirán los datos de archivo en la caché de archivos. No se escribe ningún metadato y el almacenamiento subyacente no se sincroniza para vaciar su caché. Esta marca no es válida con identificadores de volumen.

FLUSH_FLAGS_NO_SYNC

Si el archivo está en un sistema de archivos NTFS, se escribirán los datos de archivo y los metadatos de la caché de archivos. El almacenamiento subyacente no se sincroniza para vaciar su caché. Esta marca no es válida con identificadores de volumen.

 

Parameters

Dirección del bloque de estado de E/S del autor de la llamada. Este parámetro es obligatorio y no puede ser NULL.

ParametersSize

Tamaño, en bytes, del bloque de parámetros.

[out] IoStatusBlock

Dirección del bloque de estado de E/S del autor de la llamada. Este parámetro es obligatorio y no puede ser NULL.

Valor devuelto

ZwFlushBuffersFileEx devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_MEDIA_WRITE_PROTECTED
El archivo reside en un volumen protegido por escritura; se trata de un código de error.
STATUS_VOLUME_DISMOUNTED
El archivo reside en un volumen que no está montado actualmente; se trata de un código de error.
STATUS_ACCESS_DENIED
El archivo no tiene acceso de escritura o anexión.

Comentarios

Un controlador de filtro del sistema de archivos puede llamar a ZwFlushBuffersFileEx para emitir una solicitud de IRP_MJ_FLUSH_BUFFERS al sistema de archivos para un archivo determinado. La operación de vaciado es sincrónica.

Los controladores de minifiltro deben llamar a FltFlushBuffers en lugar de llamar a ZwFlushBuffersFileEx.

Los autores de llamadas de ZwFlushBuffersFileEx deben ejecutarse en IRQL = PASSIVE_LEVEL y con las API de kernel especiales habilitadas.

Nota Si la llamada a la función ZwFlushBuffersFileEx se produce en modo de usuario, debe usar el nombre "NtFlushBuffersFileEx" en lugar de "ZwFlushBuffersFileEx".
 
En el caso de las llamadas desde controladores en modo kernel, las versiones **Nt*Xxx*** y **Zw*Xxx*** 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 **Nt*Xxx*** y **Zw*Xxx*** de una rutina, vea [Uso de las versiones Nt y Zw de las rutinas nativas de servicios del sistema](/windows-hardware/drivers/kernel/using-nt-and-zw-versions-of-the-native-system-services-routines).

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (consulte la sección Comentarios).

Consulte también

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

Uso de las versiones Nt y Zw de las rutinas nativas de System Services

ZwCreateFile

ZwOpenFile