Fungsi VirtualLock (memoryapi.h)

Mengunci wilayah yang ditentukan dari ruang alamat virtual proses ke dalam memori fisik, memastikan bahwa akses berikutnya ke wilayah tersebut tidak akan menimbulkan kesalahan halaman.

Sintaks

BOOL VirtualLock(
  [in] LPVOID lpAddress,
  [in] SIZE_T dwSize
);

Parameter

[in] lpAddress

Penunjuk ke alamat dasar wilayah halaman yang akan dikunci.

[in] dwSize

Ukuran wilayah yang akan dikunci, dalam byte. Wilayah halaman yang terpengaruh mencakup semua halaman yang berisi satu atau beberapa byte dalam rentang dari parameter lpAddress ke (lpAddress+dwSize). Ini berarti bahwa rentang 2-byte yang terdampar pada batas halaman menyebabkan kedua halaman dikunci.

Menampilkan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Semua halaman di wilayah yang ditentukan harus diterapkan. Memori yang dilindungi dengan PAGE_NOACCESS tidak dapat dikunci.

Mengunci halaman ke dalam memori dapat menurunkan performa sistem dengan mengurangi RAM yang tersedia dan memaksa sistem untuk menukar halaman penting lainnya ke file halaman. Setiap versi Windows memiliki batas jumlah maksimum halaman yang dapat dikunci proses. Batas ini sengaja kecil untuk menghindari penurunan performa yang parah. Aplikasi yang perlu mengunci jumlah halaman yang lebih besar harus terlebih dahulu memanggil fungsi SetProcessWorkingSetSize untuk meningkatkan ukuran set kerja minimum dan maksimumnya. Jumlah maksimum halaman yang dapat dikunci proses sama dengan jumlah halaman dalam set kerja minimumnya dikurangi overhead kecil.

Halaman yang telah dikunci proses tetap dalam memori fisik sampai proses membuka kunci atau berakhir. Halaman-halaman ini dijamin tidak ditulis ke pagefile saat dikunci.

Untuk membuka kunci wilayah halaman terkunci, gunakan fungsi VirtualUnlock . Halaman terkunci secara otomatis tidak terkunci ketika proses berakhir.

Fungsi ini tidak seperti fungsi GlobalLock atau LocalLock karena tidak menaikkan jumlah kunci dan menerjemahkan handel ke dalam pointer. Tidak ada jumlah kunci untuk halaman virtual, sehingga beberapa panggilan ke fungsi VirtualUnlock tidak pernah diperlukan untuk membuka kunci wilayah halaman.

Contoh

Misalnya, lihat Membuat Halaman Penjaga.

Persyaratan

   
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header memoryapi.h (termasuk Windows.h, Memoryapi.h)
Pustaka onecore.lib
DLL Kernel32.dll

Lihat juga

Fungsi Manajemen Memori

SetProcessWorkingSetSize

Fungsi Memori Virtual

VirtualUnlock