FltFlushBuffers function (fltkernel.h)
The FltFlushBuffers routine is used by the minifilter driver to send a flush request for a given file to the file system. Use FltFlushBuffers2 to specify different flush type options.
Syntax
NTSTATUS FLTAPI FltFlushBuffers(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject
);
Parameters
[in] Instance
Opaque instance pointer for the caller. This parameter is required and cannot be NULL.
[in] FileObject
File object pointer for the file to be flushed. This parameter is required and cannot be NULL.
Return value
FltFlushBuffers returns STATUS_SUCCESS or an appropriate NTSTATUS value such as one of the following:
Return code | Description |
---|---|
|
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. |
Remarks
A minifilter driver can call FltFlushBuffers to issue an IRP_MJ_FLUSH_BUFFERS request to the file system for a given file. The flush operation is synchronous and is issued to the instance(s) below the specified Instance.
If FileObject is for a file, both the file data and metadata in the file cache will be written, and the underlying storage will be synchronized to flush its cache. If FileObject is for a volume, the file system will cause both the file data and metadata for all modified files on the volume will be written, and the underlying storage to be synchronized to flush its cache. Use FltFlushBuffers2 to more granularly control the flush type that the file system should do.
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Header | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
IRQL | PASSIVE_LEVEL |