Funzione NtFlushBuffersFileEx (ntifs.h)
La routine NtFlushBuffersFileEx invia una richiesta di scaricamento per un determinato file al file system. È possibile impostare un flag di operazione di scaricamento facoltativo per controllare la modalità di scrittura dei dati dei file nell'archiviazione.
Sintassi
__kernel_entry NTSYSCALLAPI NTSTATUS NtFlushBuffersFileEx(
[in] HANDLE FileHandle,
[in] ULONG Flags,
[in] PVOID Parameters,
[in] ULONG ParametersSize,
[out] PIO_STATUS_BLOCK IoStatusBlock
);
Parametri
[in] FileHandle
Handle restituito da NtCreateFile o ntOpenFile per il file i cui buffer verranno scaricati. Questo parametro è obbligatorio e non può essere NULL.
[in] Flags
Flag dell'operazione di scaricamento. Flag può essere uno dei valori seguenti:
Valore | Significato |
---|---|
0 (normale) | I dati e i metadati dei file nella cache dei file verranno scritti e la risorsa di archiviazione sottostante viene sincronizzata per scaricare la cache. File system Windows supportato: NTFS, ReFS, FAT, exFAT. |
FLUSH_FLAGS_FILE_DATA_ONLY | I dati dei file nella cache dei file verranno scritti. Non vengono scritti metadati e l'archiviazione sottostante non viene sincronizzata per scaricare la cache. Questo flag non è valido con handle di volume. File system Windows supportato: NTFS, FAT, exFAT. |
FLUSH_FLAGS_NO_SYNC | Verranno scritti i dati e i metadati dei file nella cache dei file. L'archiviazione sottostante non è sincronizzata per scaricare la cache. Questo flag non è valido con handle di volume. File system Windows supportato: NTFS, FAT, exFAT. |
FLUSH_FLAGS_FILE_DATA_SYNC_ONLY | I dati del file specificato verranno scritti dalla cache in memoria di Windows. Verranno scaricati solo i metadati necessari per il recupero dei dati (l'aggiornamento del timestamp verrà ignorato il più possibile). L'archiviazione sottostante viene sincronizzata per scaricare la cache. Questo flag non è valido con handle di volume o directory. File system Windows supportato: NTFS. |
[in] Parameters
Puntatore a un blocco con parametri aggiuntivi. Questo parametro deve essere attualmente impostato su NULL.
[in] ParametersSize
Dimensione, in byte, del blocco a cui Parametri puntano. Questo parametro deve essere attualmente impostato su 0.
[out] IoStatusBlock
Indirizzo del blocco di stato di I/O del chiamante. Questo parametro è obbligatorio e non può essere NULL.
Valore restituito
NtFlushBuffersFileEx 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 che non è attualmente montato; si tratta di un codice di errore. |
STATUS_ACCESS_DENIED | Il file non ha accesso in scrittura o accodamento. |
Osservazioni
I driver minifiltro devono chiamare FltFlushBuffers2 invece di chiamare NtFlushBuffersFileEx.
Un driver di filtro del file system legacy può chiamare NtFlushBuffersFileEx per inviare una richiesta di IRP_MJ_FLUSH_BUFFERS al file system per un determinato file. L'operazione di scaricamento è sincrona.
I chiamanti di NtFlushBuffersFileEx devono essere in esecuzione in IRQL = PASSIVE_LEVEL e con API kernel speciali abilitate.
Per le chiamate da driver in modalità kernel, le NtXxx e ZwXxx versioni di una routine di Windows Native System Services possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 8 |
piattaforma di destinazione | Universale |
intestazione | ntifs.h (include Ntifs.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (vedere la sezione Osservazioni). |
Vedere anche
uso di versioni Nt e Zw delle routine di Servizi di sistema nativi