Condividi tramite


Funzione FltFlushBuffers2 (fltkernel.h)

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

Sintassi

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

Parametri

Instance

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

FileObject

[in] Puntatore all'oggetto 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 riguarda un file, verranno scritti sia i dati dei file che i metadati nella cache dei file e l'archiviazione sottostante verrà sincronizzata per scaricare la cache. Se fileObject è per un volume, il file system causerà la scrittura dei dati e dei metadati del file per tutti i file modificati nel volume e l'archiviazione sottostante verrà sincronizzata 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 rimossa anche al termine 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. Non vengono scritti metadati 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 e i metadati dei file 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 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 risiede 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.

Osservazioni

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

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

Fabbisogno

Requisito Valore
client minimo supportato Windows 10, versione 1903
intestazione fltkernel.h

Vedere anche

FltFlushBuffers

FltPropagateIrpExtension

IRP_MJ_FLUSH_BUFFERS