Funzione UnmapViewOfFile (memoryapi.h)
Annulla il mapping di una visualizzazione mappata di un file dallo spazio indirizzi del processo chiamante.
Sintassi
BOOL UnmapViewOfFile(
[in] LPCVOID lpBaseAddress
);
Parametri
[in] lpBaseAddress
Puntatore all'indirizzo di base della visualizzazione mappata di un file da annullare. Questo valore deve essere identico al valore restituito da una chiamata precedente a una delle funzioni della famiglia MapViewOfFile .
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
L'annullamento del mapping di una visualizzazione mappata di un file invalida l'intervallo occupato dalla visualizzazione nello spazio degli indirizzi del processo e rende disponibile l'intervallo per altre allocazioni. Rimuove la voce del set di lavoro per ogni pagina virtuale non mappata che fa parte del set di lavoro del processo e riduce le dimensioni del set di lavoro del processo. Decrementa anche il conteggio delle condivisioni della pagina fisica corrispondente.
Le pagine modificate nella visualizzazione non mappata non vengono scritte su disco fino a quando il numero di condivisioni raggiunge zero o in altre parole, fino a quando non vengono annullate o tagliate dai set di lavoro di tutti i processi che condividono le pagine. Anche in questo caso, le pagine modificate vengono scritte "lazily" su disco; ovvero, le modifiche possono essere memorizzate nella cache in memoria e scritte su disco in un secondo momento. Per ridurre al minimo il rischio di perdita di dati in caso di errore di alimentazione o arresto anomalo del sistema, le applicazioni devono scaricare in modo esplicito le pagine modificate usando la funzione FlushViewOfFile .
Anche se un'applicazione può chiudere l'handle di file usato per creare un oggetto mapping di file, il sistema contiene il file corrispondente aperto fino all'ultima visualizzazione del file non viene annullata. I file per i quali l'ultima visualizzazione non è ancora stata modificata vengono mantenuti aperti senza restrizioni di condivisione.
In Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.
Tecnologia | Supportato |
---|---|
Protocollo SMB (Server Message Block) 3.0 | Sì |
Failover trasparente SMB 3.0 (TFO) | Sì |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | Sì |
File system del volume condiviso del cluster (CsvFS) | Sì |
File system resiliente (ReFS) | Sì |
Esempi
Per un esempio, vedere Creazione di una visualizzazione all'interno di un file.
Requisiti
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 (includono Windows.h, Memoryapi.h) |
Libreria | onecore.lib |
DLL | Kernel32.dll |
Vedere anche
Chiusura di un oggetto Mapping file
Funzioni di gestione della memoria