FltFlushBuffers2-Funktion (fltkernel.h)
Ein Minifiltertreiber ruft FltFlushBuffers2- auf, um eine flush-Anforderung an das Dateisystem für eine bestimmte Datei zu senden.
Syntax
NTSTATUS FLTAPI FltFlushBuffers2(
PFLT_INSTANCE Instance,
PFILE_OBJECT FileObject,
ULONG FlushType,
PFLT_CALLBACK_DATA CallbackData
);
Parameter
Instance
[in] Undurchsichtiger Instanzzeiger für die aufrufende Minifiltertreiberinstanz. Dieser Parameter ist erforderlich und kann nicht NULL sein.
FileObject
[in] Dateiobjektzeiger für die Datei oder das Volume, die geleert werden soll. Dieser Parameter ist erforderlich und kann nicht NULL sein.
FlushType
[in] Gibt den Typ des Leerens an, den das Dateisystem für die Datei ausführen soll. FlushType- kann eine der folgenden Sein:
FlushType-Vorgangswert | Beschreibung |
---|---|
0 | Wenn FileObject- für eine Datei gilt, 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 vorgesehen ist, bewirkt das Dateisystem sowohl die Dateidaten als auch die Metadaten für alle geänderten Dateien auf dem Volume, 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 auch nach Abschluss des Leerens 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 zum Verteilen der IRP-Erweiterung des Aufrufers verwendet wird. Siehe FltPropagateIrpExtension.
Rückgabewert
FltFlushBuffers2 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 bereitgestellt wird. Dies ist ein Fehlercode. |
Bemerkungen
Ein Minifiltertreiber kann FltFlushBuffers2- aufrufen, um eine IRP_MJ_FLUSH_BUFFERS Anforderung an das Dateisystem für eine bestimmte Datei auszugeben. Der Flush-Vorgang ist synchron und wird an die Instanzen unterhalb der angegebenen Instanceausgegeben.
Wenn sich die Datei in einem NTFS-Dateisystem befindet, kann der Minifilter den Typ des Leerens über den FlushType Parameter steuern.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10, Version 1903 |
Header- | fltkernel.h |