Freigeben über


ZwFlushBuffersFileEx-Funktion (ntifs.h)

Die ZwFlushBuffersFileEx-Routine wird von einem Dateisystemfiltertreiber aufgerufen, um eine Flush-Anforderung für eine bestimmte Datei an das Dateisystem zu senden. Ein optionales Flag für den Löschvorgang kann festgelegt werden, um zu steuern, wie Dateidaten in den Speicher geschrieben werden.

Syntax

NTSYSAPI NTSTATUS ZwFlushBuffersFileEx(
  [in]  HANDLE           FileHandle,
        ULONG            FLags,
        PVOID            Parameters,
        ULONG            ParametersSize,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

Parameter

[in] FileHandle

Handle, das von ZwCreateFile oder ZwOpenFile für die Datei zurückgegeben wird, deren Puffer geleert werden. Dieser Parameter ist erforderlich und darf nicht NULL sein.

FLags

Vorgangsflags werden geleert. Flags können 0 oder einer der folgenden Werte sein.

Wert Bedeutung
FLUSH_FLAGS_FILE_DATA_ONLY

Wenn sich die Datei in einem NTFS-Dateisystem befindet, werden Dateidaten im Dateicache geschrieben. Es werden keine Metadaten geschrieben, und der zugrunde liegende Speicher wird nicht synchronisiert, um den Cache zu leeren. Dieses Flag ist für Volumehandles ungültig.

FLUSH_FLAGS_NO_SYNC

Wenn sich die Datei in einem NTFS-Dateisystem befindet, werden Dateidaten und Metadaten im Dateicache geschrieben. Der zugrunde liegende Speicher wird nicht synchronisiert, um den Cache zu leeren. Dieses Flag ist für Volumehandles ungültig.

 

Parameters

Adresse des E/A-status Blocks des Aufrufers. Dieser Parameter ist erforderlich und darf nicht NULL sein.

ParametersSize

Die Größe des Parameterblocks in Bytes.

[out] IoStatusBlock

Adresse des E/A-status Blocks des Aufrufers. Dieser Parameter ist erforderlich und darf nicht NULL sein.

Rückgabewert

ZwFlushBuffersFileEx gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_MEDIA_WRITE_PROTECTED
Die Datei befindet sich auf einem schreibgeschützten Volume. Dies ist ein Fehlercode.
STATUS_VOLUME_DISMOUNTED
Die Datei befindet sich auf einem Volume, das derzeit nicht eingebunden ist. Dies ist ein Fehlercode.
STATUS_ACCESS_DENIED
Die Datei hat weder Schreib- noch Anfügezugriff.

Hinweise

Ein Dateisystemfiltertreiber kann ZwFlushBuffersFileEx aufrufen, um eine IRP_MJ_FLUSH_BUFFERS Anforderung an das Dateisystem für eine bestimmte Datei auszusetzen. Der Löschvorgang ist synchron.

Minifiltertreiber sollten FltFlushBuffers anstelle von ZwFlushBuffersFileEx aufrufen.

Aufrufer von ZwFlushBuffersFileEx müssen unter IRQL = PASSIVE_LEVEL und mit aktivierten speziellen Kernel-APCs ausgeführt werden.

Hinweis Wenn der Aufruf der ZwFlushBuffersFileEx-Funktion im Benutzermodus erfolgt, sollten Sie den Namen "NtFlushBuffersFileEx" anstelle von "ZwFlushBuffersFileEx" verwenden.
 
Bei Aufrufen von Kernelmodustreibern können sich die Versionen **Nt*Xxx*** und **Zw*Xxx*** einer Windows Native System Services-Routine anders verhalten, wenn sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Versionen **Nt*Xxx*** und **Zw*Xxx*** einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen(/windows-hardware/drivers/kernel/using-nt-and-zw-versions-of-the-native-system-services-routines).

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (siehe Abschnitt Hinweise.)

Weitere Informationen

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen

ZwCreateFile

ZwOpenFile