Condividi tramite


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

FltFlushBuffers2

IRP_MJ_FLUSH_BUFFERS

uso di versioni Nt e Zw delle routine di Servizi di sistema nativi

NtCreateFile

NtOpenFile