Chiusura di un oggetto Mapping file

Al termine di un processo con l'oggetto mapping dei file, deve eliminare tutte le visualizzazioni file nello spazio degli indirizzi usando la funzione UnmapViewOfFile per ogni visualizzazione file.

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 .

Al termine di ogni processo usando l'oggetto mapping dei file ed è stato eseguito il mapping di tutte le visualizzazioni, è necessario chiudere l'handle dell'oggetto di mapping del file e il file su disco chiamando CloseHandle. Queste chiamate a CloseHandle hanno esito positivo anche quando sono ancora aperte visualizzazioni file. Tuttavia, lasciando le visualizzazioni dei file mappate causa perdite di memoria.