ZwFlushBuffersFile function (ntifs.h)

The ZwFlushBuffersFile routine is called by a file system filter driver to send a flush request for the specified file to the file system.

Syntax

NTSYSAPI NTSTATUS ZwFlushBuffersFile(
  [in]  HANDLE           FileHandle,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

Parameters

[in] FileHandle

Handle returned by ZwCreateFile or ZwOpenFile for the file whose buffers will be flushed. This parameter is required and cannot be NULL.

[out] IoStatusBlock

Address of the caller's I/O status block. This parameter is required and cannot be NULL.

Return value

ZwFlushBuffersFile returns STATUS_SUCCESS or an appropriate NTSTATUS value, such as one of the following:

Return code Description
STATUS_MEDIA_WRITE_PROTECTED
The file resides on a write-protected volume; this is an error code.
STATUS_VOLUME_DISMOUNTED
The file resides on a volume that is not currently mounted; this is an error code.

Remarks

A file system filter driver can call ZwFlushBuffersFile 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 ZwFlushBuffersFile.

Callers of ZwFlushBuffersFile must be running at IRQL = PASSIVE_LEVEL and with special kernel APCs enabled.

Note  If the call to the ZwFlushBuffersFile function occurs in user mode, you should use the name "NtFlushBuffersFile" instead of "ZwFlushBuffersFile".
 
For calls from kernel-mode drivers, the **Nt*Xxx*** and **Zw*Xxx*** versions of a Windows Native System Services routine can behave differently in the way that they handle and interpret input parameters. For more information about the relationship between the **Nt*Xxx*** and **Zw*Xxx*** versions of a routine, see [Using Nt and Zw Versions of the Native System Services Routines](/windows-hardware/drivers/kernel/using-nt-and-zw-versions-of-the-native-system-services-routines).

Requirements

Requirement Value
Minimum supported client Windows Vista
Target Platform Universal
Header ntifs.h (include Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (see Remarks section)
DDI compliance rules HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

See also

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

Using Nt and Zw Versions of the Native System Services Routines

ZwCreateFile

ZwOpenFile