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 |