Bagikan melalui


Menutup Objek Pemetaan File

Ketika proses telah selesai dengan objek pemetaan file, proses harus menghancurkan semua tampilan file di ruang alamatnya dengan menggunakan fungsiUnmapViewOfFile untuk setiap tampilan file.

Membatalkan tampilan peta file menyebabkan rentang yang ditempati oleh tampilan tersebut dalam ruang alamat proses menjadi tidak valid dan membuat rentang tersebut tersedia untuk alokasi lain. Ini menghapus entri set kerja untuk setiap halaman virtual yang tidak dipetakan yang merupakan bagian dari set kerja proses dan mengurangi ukuran set kerja dari proses. Ini juga mengurangi jumlah berbagi halaman fisik yang sesuai.

Halaman yang dimodifikasi di tampilan yang tidak terpetakan tidak ditulis ke cakram sampai jumlah bagiannya mencapai nol, atau dengan kata lain, sampai halaman-halaman tersebut tidak lagi dipetakan atau dipangkas dari sekumpulan kerja dari semua proses yang berbagi halaman. Bahkan kemudian, halaman yang dimodifikasi ditulis dengan cara "malas" ke disk; artinya, modifikasi dapat di-cache dalam memori dan ditulis ke disk di waktu berikutnya. Untuk meminimalkan risiko kehilangan data jika terjadi kegagalan daya atau crash sistem, aplikasi harus secara eksplisit menghapus halaman yang dimodifikasi menggunakan fungsiFlushViewOfFile.

Ketika setiap proses selesai menggunakan objek pemetaan file dan telah melepas pemetaan semua tampilan, harus menutup handle objek pemetaan file dan file pada disk dengan memanggil CloseHandle. Panggilan ke CloseHandle berhasil bahkan ketika ada tampilan file yang masih terbuka. Namun, jika tampilan file tetap dalam keadaan dipetakan, hal itu dapat menyebabkan kebocoran memori.