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 |