Bagikan melalui


Membebaskan Memori Virtual

Fungsi VirtualFree menonaktifkan dan merilis halaman sesuai dengan aturan berikut:

  • Menonaktifkan satu atau beberapa halaman yang diterapkan, mengubah status halaman menjadi dicadangkan. Menonaktifkan halaman merilis penyimpanan fisik yang terkait dengan halaman, membuatnya tersedia untuk dialokasikan oleh proses apa pun. Setiap blok halaman yang diterapkan dapat dinonaktifkan.
  • Melepaskan blok satu atau beberapa halaman yang dipesan, mengubah status halaman menjadi gratis. Merilis blok halaman membuat rentang alamat yang dipesan tersedia untuk dialokasikan oleh proses. Halaman yang dipesan hanya dapat dirilis dengan membebaskan seluruh blok yang awalnya dicadangkan oleh VirtualAlloc.
  • Menonaktifkan dan merilis blok dari satu atau beberapa halaman yang diterapkan secara bersamaan, mengubah status halaman menjadi bebas. Blok yang ditentukan harus menyertakan seluruh blok yang awalnya dicadangkan oleh VirtualAlloc, dan semua halaman saat ini harus diterapkan.

Setelah blok memori dirilis atau dinonaktifkan, Anda tidak akan pernah dapat merujuknya lagi. Setiap informasi yang mungkin ada dalam memori itu hilang selamanya. Mencoba membaca dari atau menulis ke halaman gratis menghasilkan pengecualian pelanggaran akses. Jika Anda memerlukan informasi, jangan nonaktifkan atau kosongkan memori yang berisi informasi tersebut.

Untuk menentukan bahwa data dalam rentang memori tidak lagi menarik, panggil VirtualAlloc dengan MEM_RESET. Halaman tidak akan dibaca dari atau ditulis ke file halaman. Namun, blok memori dapat digunakan lagi nanti.