FltFlushBuffers2-Funktion (fltkernel.h)
Ein Minifiltertreiber ruft FltFlushBuffers2 auf, um eine Leerungsanforderung für eine bestimmte Datei an das Dateisystem zu senden.
Syntax
NTSTATUS FLTAPI FltFlushBuffers2(
PFLT_INSTANCE Instance,
PFILE_OBJECT FileObject,
ULONG FlushType,
PFLT_CALLBACK_DATA CallbackData
);
Parameter
Instance
[in] Undurchsichtiger instance Zeiger für den aufrufenden Minifiltertreiber instance. Dieser Parameter ist erforderlich und darf nicht NULL sein.
FileObject
[in] Dateiobjektzeiger für die Datei oder das Volume, das geleert werden soll. Dieser Parameter ist erforderlich und darf nicht NULL sein.
FlushType
[in] Gibt den Typ der Leerung an, die das Dateisystem für die Datei ausführen soll. FlushType kann einer der folgenden Sein:
FlushType-Vorgangswert | BESCHREIBUNG |
---|---|
0 | Wenn FileObject für eine Datei ist, werden sowohl die Dateidaten als auch die Metadaten im Dateicache geschrieben, und der zugrunde liegende Speicher wird synchronisiert, um den Cache zu leeren. Wenn FileObject für ein Volume ist, bewirkt das Dateisystem, dass sowohl die Dateidaten als auch die Metadaten für alle geänderten Dateien auf dem Volume geschrieben werden, und der zugrunde liegende Speicher wird synchronisiert, um den Cache zu leeren. Dieser Vorgang entspricht FltFlushBuffers. |
FLT_FLUSH_TYPE_FLUSH_AND_PURGE | Identisch mit 0 (FltFlushBuffers), mit der Ausnahme, dass der Cache nach Abschluss des Leerens ebenfalls gelöscht wird. |
FLT_FLUSH_TYPE_FILE_DATA_ONLY | Wenn sich die Datei in einem NTFS-Dateisystem befindet, werden nur 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 ungültig, wenn FileObject für ein Volume gilt. |
FLT_FLUSH_TYPE_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 ungültig, wenn FileObject für ein Volume gilt. |
FLT_FLUSH_TYPE_DATA_SYNC_ONLY | Wenn sich die Datei in einem NTFS-Dateisystem befindet, werden Dateidaten im Dateicache geschrieben. Es werden keine Metadaten geschrieben. Der zugrunde liegende Speicher wird synchronisiert, um den Cache zu leeren. Dieses Flag ist ungültig, wenn FileObject für ein Volume oder Verzeichnis gilt. |
CallbackData
[in/optional] Zeiger auf optionale FLT_CALLBACK_DATA Struktur, die verwendet wird, um die IRP-Erweiterung des Aufrufers weiterzuverbreiten. Siehe FltPropagateIrpExtension.
Rückgabewert
FltFlushBuffers2 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 eingebunden ist. Dies ist ein Fehlercode. |
Hinweise
Ein Minifiltertreiber kann FltFlushBuffers2 aufrufen, um eine IRP_MJ_FLUSH_BUFFERS-Anforderung an das Dateisystem für eine bestimmte Datei auszusetzen. Der Leerungsvorgang ist synchron und wird an die instance unter der angegebenen Instanz ausgegeben.
Wenn sich die Datei in einem NTFS-Dateisystem befindet, kann der Minifilter den Typ der Leerung über den FlushType-Parameter steuern.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10, Version 1903 |
Kopfzeile | fltkernel.h |