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 necesario y no puede ser NULL.
[in] Flags
Marcas de operación de vaciado. flags puede 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 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. 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 compatibles: 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 Parámetros apuntar. 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 necesario 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 ni de anexión. |
Observaciones
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 API de kernel especiales habilitadas.
En el caso de las llamadas desde controladores en modo kernel, las NtXxx y Zwversiones de Xxx 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 8 |
de la plataforma de destino de | Universal |
encabezado de | ntifs.h (incluya Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | PASSIVE_LEVEL (consulte la sección Comentarios). |
Consulte también
usar versiones Nt y Zw de las rutinas de servicios del sistema nativo