Share via


Funzione ZwFlushBuffersFileEx (ntifs.h)

La routine ZwFlushBuffersFileEx viene chiamata da un driver di filtro del file system per inviare 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

NTSYSAPI NTSTATUS ZwFlushBuffersFileEx(
  [in]  HANDLE           FileHandle,
        ULONG            FLags,
        PVOID            Parameters,
        ULONG            ParametersSize,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

Parametri

[in] FileHandle

Handle restituito da ZwCreateFile o ZwOpenFile per il file i cui buffer verranno scaricati. Questo parametro è obbligatorio e non può essere NULL.

FLags

Flag dell'operazione di scaricamento. I flag possono essere 0 o uno dei valori seguenti.

Valore Significato
FLUSH_FLAGS_FILE_DATA_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 e lo spazio di archiviazione sottostante non viene sincronizzato per scaricare la cache. Questo flag non è valido con handle di volume.

FLUSH_FLAGS_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 è sincronizzata per scaricare la cache. Questo flag non è valido con handle di volume.

 

Parameters

Indirizzo del blocco di stato di I/O del chiamante. Questo parametro è obbligatorio e non può essere NULL.

ParametersSize

Dimensione, in byte, del blocco di parametri.

[out] IoStatusBlock

Indirizzo del blocco di stato di I/O del chiamante. Questo parametro è obbligatorio e non può essere NULL.

Valore restituito

ZwFlushBuffersFileEx 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 risiede in un volume attualmente non montato; si tratta di un codice di errore.
STATUS_ACCESS_DENIED
Il file non ha accesso in scrittura o accodamento.

Commenti

Un driver di filtro del file system può chiamare ZwFlushBuffersFileEx per inviare una richiesta di IRP_MJ_FLUSH_BUFFERS al file system per un determinato file. L'operazione di scaricamento è sincrona.

I driver minifilter devono chiamare FltFlushBuffers anziché chiamare ZwFlushBuffersFileEx.

I chiamanti di ZwFlushBuffersFileEx devono essere in esecuzione in IRQL = PASSIVE_LEVEL e con API kernel speciali abilitate.

Nota Se la chiamata alla funzione ZwFlushBuffersFileEx si verifica in modalità utente, è necessario usare il nome "NtFlushBuffersFileEx" anziché "ZwFlushBuffersFileEx".
 
Per le chiamate da driver in modalità kernel, le versioni **Nt*Xxx** e **Zw*Xxx** di una routine di Servizi di sistema nativi di Windows possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per ulteriori informazioni sulla relazione tra le versioni **Nt*Xxx** e **Zw*Xxx** di una routine, vedere [Using Nt and Zw Versions of the Native System Services Routines](/windows-hardware/drivers/kernel/using-nt-and-zw-versions-of-the-native-system-services-routines).

Requisiti

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).

Vedi anche

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

Uso delle versioni Nt e Zw delle routine native di Servizi di sistema

ZwCreateFile

ZwOpenFile