Función NtFlushBuffersFileEx (ntifs.h)

La rutina NtFlushBuffersFileEx envía una solicitud de vaciado para 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

__kernel_entry NTSYSCALLAPI NTSTATUS NtFlushBuffersFileEx(
  [in]  HANDLE           FileHandle,
  [in]  ULONG            Flags,
  [in]  PVOID            Parameters,
  [in]  ULONG            ParametersSize,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

Parámetros

[in] FileHandle

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

[in] Flags

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

Valor Significado
0 (normal) Los datos de archivo y los metadatos de la caché de archivos se escribirán y el almacenamiento subyacente se sincroniza para vaciar su caché. Sistemas de archivos de Windows compatibles: NTFS, ReFS, FAT, exFAT.
FLUSH_FLAGS_FILE_DATA_ONLY Se escribirán datos de archivo en la memoria 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. Sistemas de archivos de Windows compatibles: NTFS, FAT, exFAT.
FLUSH_FLAGS_NO_SYNC 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. Sistemas de archivos de Windows compatibles: NTFS, FAT, exFAT.
FLUSH_FLAGS_FILE_DATA_SYNC_ONLY Los datos del archivo especificado se escribirán desde la caché en memoria de Windows. Solo se vaciarán los metadatos necesarios para la recuperación de datos (la actualización de marca de tiempo se omitirá tanto como sea posible). El almacenamiento subyacente se sincroniza para vaciar su caché. Esta marca no es válida con identificadores de volumen o directorio. Sistemas de archivos de Windows admitidos: NTFS.

[in] Parameters

Puntero a un bloque con parámetros adicionales. Este parámetro debe establecerse actualmente en NULL.

[in] ParametersSize

Tamaño, en bytes, del bloque al que apuntan Parameters . Este parámetro debe establecerse actualmente en 0.

[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

NtFlushBuffersFileEx 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

Los controladores de minifiltro deben llamar a FltFlushBuffers2 en lugar de llamar a NtFlushBuffersFileEx.

Un controlador de filtro del sistema de archivos heredado puede llamar a NtFlushBuffersFileEx 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 autores de llamadas de NtFlushBuffersFileEx deben ejecutarse en IRQL = PASSIVE_LEVEL y con las API de kernel especiales habilitadas.

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

FltFlushBuffers2

IRP_MJ_FLUSH_BUFFERS

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

NtCreateFile

NtOpenFile