Menutup Objek Pemetaan File
Ketika proses telah selesai dengan objek pemetaan file, itu harus menghancurkan semua tampilan file di ruang alamatnya dengan menggunakan fungsi UnmapViewOfFile untuk setiap tampilan file.
Membatalkan pemetaan tampilan file yang dipetakan membatalkan rentang yang ditempati oleh tampilan di ruang alamat proses dan membuat rentang tersedia untuk alokasi lain. Ini menghapus entri set kerja untuk setiap halaman virtual yang tidak dipetakan yang merupakan bagian dari set proses yang berfungsi dan mengurangi ukuran set kerja proses. Ini juga mengurangi jumlah berbagi halaman fisik yang sesuai.
Halaman yang dimodifikasi dalam tampilan yang tidak dipetakan tidak ditulis ke disk sampai jumlah berbaginya mencapai nol, atau dengan kata lain, sampai tidak dipetakan atau dipangkas dari set kerja dari semua proses yang berbagi halaman. Bahkan kemudian, halaman yang dimodifikasi ditulis "malas" ke disk; artinya, modifikasi dapat di-cache dalam memori dan ditulis ke disk di lain waktu. Untuk meminimalkan risiko kehilangan data jika terjadi kegagalan daya atau crash sistem, aplikasi harus secara eksplisit menghapus halaman yang dimodifikasi menggunakan fungsi FlushViewOfFile .
Ketika setiap proses selesai menggunakan objek pemetaan file dan telah membatalkan semua tampilan, itu harus menutup handel objek pemetaan file dan file pada disk dengan memanggil CloseHandle. Panggilan ke CloseHandle ini berhasil bahkan ketika ada tampilan file yang masih terbuka. Namun, membiarkan tampilan file dipetakan menyebabkan kebocoran memori.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk