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
Uso de las versiones Nt y Zw de las rutinas nativas de System Services