Stänga ett filkartläggningsobjekt

När en process är färdig med filmappningsobjektet bör den ta bort alla filvyer i adressutrymmet med hjälp av funktionen UnmapViewOfFile för varje filvy.

Om du avmappar en mappad vy av en fil ogiltigförklaras intervallet som används av vyn i processens adressutrymme och gör intervallet tillgängligt för andra allokeringar. Den tar bort arbetsuppsättningsposten för varje ej mappad virtuell sida som ingick i processens arbetsuppsättning och minskar arbetsuppsättningens storlek för processen. Den minskar också antalet andelar för motsvarande fysiska sida.

Ändrade sidor i den ommappade vyn skrivs inte till disk förrän deras resursantal når noll, eller med andra ord tills de är avmappade eller trimmade från arbetsuppsättningarna för alla processer som delar sidorna. Även då skrivs de ändrade sidorna "fördröjt" till disk; det vill säga, ändringar kan cachelagras i minnet och skrivas till disk vid ett senare tillfälle. För att minimera risken för dataförlust i händelse av ett strömavbrott eller en systemkrasch bör program uttryckligen rensa ändrade sidor med hjälp av funktionen FlushViewOfFile.

När varje process har avslutat användningen av filmappningsobjektet och alla vyer har avmappats, måste den stänga handtaget till filmappningsobjektet och filen på disken genom att anropa CloseHandle. Dessa anrop till CloseHandle lyckas även om det finns filvyer som fortfarande är öppna. Men om du lämnar filvyer mappade orsakar det minnesläckor.