Condividi tramite


Funzione FlushViewOfFile (memoryapi.h)

Scrive nel disco un intervallo di byte all'interno di una visualizzazione mappata di un file.

Sintassi

BOOL FlushViewOfFile(
  [in] LPCVOID lpBaseAddress,
  [in] SIZE_T  dwNumberOfBytesToFlush
);

Parametri

[in] lpBaseAddress

Puntatore all'indirizzo di base dell'intervallo di byte da scaricare nella rappresentazione su disco del file mappato.

[in] dwNumberOfBytesToFlush

Numero di byte da scaricare. Se dwNumberOfBytesToFlush è zero, il file viene scaricato dall'indirizzo di base alla fine del mapping.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Lo scaricamento di un intervallo di una visualizzazione mappata avvia la scrittura di pagine dirty all'interno di tale intervallo sul disco. Le pagine dirty sono quelle il cui contenuto è stato modificato dopo il mapping della visualizzazione file. La funzione FlushViewOfFile non scarica i metadati del file e non attende di restituire finché le modifiche non vengono scaricate dalla cache del disco hardware sottostante e scritte fisicamente su disco. Per scaricare tutte le pagine dirty e i metadati per il file e assicurarsi che siano scritti fisicamente su disco, chiamare FlushViewOfFile e quindi chiamare la funzione FlushFileBuffers .

Quando si scarica un file mappato alla memoria in una rete, FlushViewOfFile garantisce che i dati siano stati scritti dal computer locale, ma non che i dati si trovino nel computer remoto. Il server può memorizzare nella cache i dati sul lato remoto. Di conseguenza, FlushViewOfFile può restituire prima che i dati siano stati scritti fisicamente su disco.

Quando si modifica un file tramite una visualizzazione mappata, è possibile che il timestamp dell'ultima modifica non venga aggiornato automaticamente. Se necessario, il chiamante deve usare SetFileTime per impostare il timestamp.

In Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0
Failover trasparente SMB 3.0 (TFO)
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO)
File system del volume condiviso cluster (CsvFS)
Resilient File System (ReFS)
 

Quando csvfs viene sospesa, questa chiamata potrebbe non riuscire con un errore che indica che si è verificato un conflitto di blocco.

Esempio

Per un esempio, vedere Lettura e scrittura da una visualizzazione file.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione memoryapi.h (include Windows.h, Memoryapi.h)
Libreria onecore.lib
DLL Kernel32.dll

Vedere anche

CreateFile

Creazione di una visualizzazione file

Funzioni di mapping dei file

MapViewOfFile

UnmapViewOfFile