Funzione FltFlushBuffers2 (fltkernel.h)

Un driver minifilter chiama FltFlushBuffers2 per inviare una richiesta di scaricamento al file system per un determinato file system.

Sintassi

NTSTATUS FLTAPI FltFlushBuffers2(
  PFLT_INSTANCE      Instance,
  PFILE_OBJECT       FileObject,
  ULONG              FlushType,
  PFLT_CALLBACK_DATA CallbackData
);

Parametri

Instance

[in] Puntatore istanza opaca per l'istanza del driver minifilter chiamante. Questo parametro è obbligatorio e non può essere NULL.

FileObject

[in] Puntatore a oggetti file per il file o il volume da scaricare. Questo parametro è obbligatorio e non può essere NULL.

FlushType

[in] Specifica il tipo di scaricamento che il file system deve eseguire nel file. FlushType può essere uno dei seguenti:

Valore dell'operazione FlushType Descrizione
0 Se FileObject è per un file, sia i dati dei file che i metadati nella cache file verranno scritti e l'archiviazione sottostante verrà sincronizzata per scaricare la cache. Se FileObject è per un volume, il file system causerà la scrittura dei dati dei file e dei metadati per tutti i file modificati nel volume e l'archiviazione sottostante da sincronizzare per scaricare la cache. Questa operazione equivale a FltFlushBuffers.
FLT_FLUSH_TYPE_FLUSH_AND_PURGE Uguale a 0 (FltFlushBuffers), ad eccezione del fatto che la cache viene eliminata anche dopo il completamento dello scaricamento.
FLT_FLUSH_TYPE_FILE_DATA_ONLY Se il file si trova in un file system NTFS, verranno scritti solo i dati dei file nella cache dei file. Nessun metadati viene scritto e l'archiviazione sottostante non viene sincronizzata per scaricare la cache. Questo flag non è valido se FileObject è per un volume.
FLT_FLUSH_TYPE_NO_SYNC Se il file si trova in un file system NTFS, verranno scritti i dati dei file e i metadati nella cache dei file. L'archiviazione sottostante non verrà sincronizzata per scaricare la cache. Questo flag non è valido se FileObject è per un volume.
FLT_FLUSH_TYPE_DATA_SYNC_ONLY Se il file si trova in un file system NTFS, i dati dei file nella cache dei file verranno scritti. Non vengono scritti metadati. L'archiviazione sottostante viene sincronizzata per scaricare la cache. Questo flag non è valido se FileObject è per un volume o una directory.

CallbackData

[in/facoltativo] Puntatore alla struttura facoltativa di FLT_CALLBACK_DATA usata per propagare l'estensione IRP del chiamante. Vedere FltPropagateIrpExtension.

Valore restituito

FltFlushBuffers2 restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_MEDIA_WRITE_PROTECTED Il file si trova in un volume protetto da scrittura. Si tratta di un codice di errore.
STATUS_VOLUME_DISMOUNTED Il file si trova in un volume attualmente non montato. Si tratta di un codice di errore.

Commenti

Un driver minifilter può chiamare FltFlushBuffers2 per inviare una richiesta di IRP_MJ_FLUSH_BUFFERS al file system per un determinato file system. L'operazione di scaricamento è sincrona e viene rilasciata alle istanze sotto l'istanza specificata.

Se il file si trova in un file system NTFS, il minifilter può controllare il tipo di scaricamento tramite il parametro FlushType .

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 1903
Intestazione fltkernel.h

Vedi anche

FltFlushBuffers

FltPropagateIrpExtension

IRP_MJ_FLUSH_BUFFERS