Fungsi HeapLock (heapapi.h)
Mencoba memperoleh objek bagian penting, atau kunci, yang terkait dengan tumpukan tertentu.
Sintaks
BOOL HeapLock(
[in] HANDLE hHeap
);
Parameter
[in] hHeap
Pegangan ke timbunan untuk dikunci. Handel ini dikembalikan oleh fungsi HeapCreate atau GetProcessHeap .
Nilai kembali
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
Jika fungsi berhasil, utas panggilan memiliki kunci tumpukan. Hanya utas panggilan yang dapat mengalokasikan atau melepaskan memori dari tumpukan. Eksekusi utas lain dari proses panggilan akan diblokir jika utas tersebut mencoba mengalokasikan atau melepaskan memori dari tumpukan. Utas tersebut akan tetap diblokir sampai utas yang memiliki kunci tumpukan memanggil fungsi HeapUnlock .
Fungsi HeapLock terutama berguna untuk mencegah alokasi dan pelepasan memori heap oleh utas lain sementara utas panggilan menggunakan fungsi HeapWalk .
Jika fungsi HeapLock dipanggil pada heap yang dibuat dengan bendera HEAP_NO_SERIALIZE , hasilnya tidak ditentukan.
Setiap panggilan yang berhasil ke HeapLock harus dicocokkan dengan panggilan yang sesuai ke HeapUnlock. Kegagalan untuk memanggil HeapUnlock akan memblokir eksekusi utas lain dari proses panggilan yang mencoba mengakses timbunan.
Contoh
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | heapapi.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |