The ZwFlushBuffersFileEx routine is called by a file system filter driver to send a flush request for a given file to the file system. An optional flush operation flag can be set to control how file data is written to storage.
__kernel_entry NTSYSCALLAPI NTSTATUS NtFlushBuffersFileEx( HANDLE FileHandle, ULONG Flags, PVOID Parameters, ULONG ParametersSize, PIO_STATUS_BLOCK IoStatusBlock );
Flush operation flags. Flags can be 0 or one of the following values.
Address of the caller's I/O status block. This parameter is required and cannot be NULL.
ZwFlushBuffersFileEx returns STATUS_SUCCESS or an appropriate NTSTATUS value, such as one of the following:
||The file resides on a write-protected volume; this is an error code.|
||The file resides on a volume that is not currently mounted; this is an error code.|
||The file does has neither write or append access.|
A file system filter driver can call ZwFlushBuffersFileEx to issue an IRP_MJ_FLUSH_BUFFERS request to the file system for a given file. The flush operation is synchronous.
Minifilter drivers should call FltFlushBuffers instead of calling ZwFlushBuffersFileEx.
Callers of ZwFlushBuffersFileEx must be running at IRQL = PASSIVE_LEVEL and with special kernel APCs enabled.
|Windows version||Available starting with Windows 8.|
|Header||ntifs.h (include Ntifs.h)|
|IRQL||PASSIVE_LEVEL (See Remarks section.)|