Freigeben über


NtFlushBuffersFileEx-Funktion (ntifs.h)

Die NtFlushBuffersFileEx- Routine sendet eine flush-Anforderung für eine bestimmte Datei an das Dateisystem. Ein optionales Flush-Vorgangskennzeichnung kann festgelegt werden, um zu steuern, wie Dateidaten in den Speicher geschrieben werden.

Syntax

__kernel_entry NTSYSCALLAPI NTSTATUS NtFlushBuffersFileEx(
  [in]  HANDLE           FileHandle,
  [in]  ULONG            Flags,
  [in]  PVOID            Parameters,
  [in]  ULONG            ParametersSize,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

Parameter

[in] FileHandle

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

[in] Flags

Löschvorgangskennzeichnungen. Flags können eines der folgenden Werte sein:

Wert Bedeutung
0 (normal) Dateidaten und Metadaten im Dateicache werden geschrieben, und der zugrunde liegende Speicher wird synchronisiert, um den Cache zu leeren. Unterstützte Windows-Dateisysteme: NTFS, ReFS, FAT, exFAT.
FLUSH_FLAGS_FILE_DATA_ONLY Dateidaten im Dateicache werden geschrieben. Es werden keine Metadaten geschrieben, und der zugrunde liegende Speicher wird nicht synchronisiert, um den Cache zu leeren. Dieses Kennzeichen ist mit Volumehandles nicht gültig. Unterstützte Windows-Dateisysteme: NTFS, FAT, exFAT.
FLUSH_FLAGS_NO_SYNC Dateidaten und Metadaten im Dateicache werden geschrieben. Der zugrunde liegende Speicher wird nicht synchronisiert, um den Cache zu leeren. Dieses Kennzeichen ist mit Volumehandles nicht gültig. Unterstützte Windows-Dateisysteme: NTFS, FAT, exFAT.
FLUSH_FLAGS_FILE_DATA_SYNC_ONLY Daten aus der angegebenen Datei werden aus dem Windows-Speichercache geschrieben. Nur Metadaten, die für den Datenabruf erforderlich sind, werden geleert (Zeitstempelaktualisierung wird so weit wie möglich übersprungen). Der zugrunde liegende Speicher wird synchronisiert, um den Cache zu leeren. Dieses Kennzeichen ist mit Volume- oder Verzeichnishandles nicht gültig. Unterstützte Windows-Dateisysteme: NTFS.

[in] Parameters

Zeiger auf einen Block mit zusätzlichen Parametern. Dieser Parameter muss derzeit auf NULL festgelegt werden.

[in] ParametersSize

Die Größe des Blocks in Bytes, auf den parameter zeigen. Dieser Parameter muss derzeit auf 0 festgelegt werden.

[out] IoStatusBlock

Adresse des E/A-Statusblocks des Anrufers. Dieser Parameter ist erforderlich und darf nicht NULL sein.

Rückgabewert

NtFlushBuffersFileEx gibt STATUS_SUCCESS oder einen geeigneten 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 bereitgestellt ist; Dies ist ein Fehlercode.
STATUS_ACCESS_DENIED Die Datei hat weder Schreib- noch Anfügezugriff.

Bemerkungen

Minifiltertreiber sollten FltFlushBuffers2- aufrufen, anstatt NtFlushBuffersFileEx-aufzurufen.

Ein älteren Dateisystemfiltertreiber kann NtFlushBuffersFileEx- aufrufen, um eine IRP_MJ_FLUSH_BUFFERS Anforderung an das Dateisystem für eine bestimmte Datei auszugeben. Der Löschvorgang ist synchron.

Aufrufer von NtFlushBuffersFileEx- müssen unter IRQL = PASSIVE_LEVEL und mit speziellen Kernel-APCs ausgeführt werden, dieaktiviert sind.

Bei Aufrufen von Kernelmodustreibern können sich die NtXxx und ZwXxx- Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx- Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL (Siehe Abschnitt "Hinweise".)

Siehe auch

FltFlushBuffers2

IRP_MJ_FLUSH_BUFFERS

Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen

NtCreateFile-

NtOpenFile-