ZwFlushBuffersFileEx routine
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.
Syntax
NTSTATUS ZwFlushBuffersFileEx( _In_ HANDLE FileHandle, _In_ ULONG Flags, _Out_ PIO_STATUS_BLOCK IoStatusBlock );
Parameters
- FileHandle [in]
-
Handle returned by ZwCreateFile or ZwOpenFile for the file whose buffers will be flushed. This parameter is required and cannot be NULL.
- Flags [in]
-
Flush operation flags. Flags can be 0 or one of the following values.
- IoStatusBlock [out]
-
Address of the caller's I/O status block. This parameter is required and cannot be NULL.
Return value
ZwFlushBuffersFileEx 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. |
|
The file does has neither write or append access. |
Remarks
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.
Note If the call to the ZwFlushBuffersFileEx function occurs in user mode, you should use the name "NtFlushBuffersFileEx" instead of "ZwFlushBuffersFileEx".
Requirements
|
Version | Available starting with Windows 8. |
|---|---|
|
Header |
|
|
Library |
|
|
IRQL | PASSIVE_LEVEL (See Remarks section.) |
See also
Send comments about this topic to Microsoft
Build date: 5/2/2013