Funzione HeapLock (heapapi.h)
Tenta di acquisire l'oggetto sezione critica o il blocco, associato a un heap specificato.
Sintassi
BOOL HeapLock(
[in] HANDLE hHeap
);
Parametri
[in] hHeap
Handle per l'heap da bloccare. Questo handle viene restituito dalla funzione HeapCreate o GetProcessHeap .
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Se la funzione ha esito positivo, il thread chiamante possiede il blocco heap. Solo il thread chiamante sarà in grado di allocare o rilasciare memoria dall'heap. L'esecuzione di qualsiasi altro thread del processo chiamante verrà bloccata se tale thread tenta di allocare o rilasciare memoria dall'heap. Tali thread rimarranno bloccati finché il thread proprietario del blocco heap chiama la funzione HeapUnlock .
La funzione HeapLock è principalmente utile per impedire l'allocazione e il rilascio della memoria heap da altri thread mentre il thread chiamante usa la funzione HeapWalk .
Se la funzione HeapLock viene chiamata in un heap creato con il flag HEAP_NO_SERIALIZE , i risultati non sono definiti.
Ogni chiamata riuscita a HeapLock deve essere corrispondente a una chiamata corrispondente a HeapUnlock. Non è possibile chiamare HeapUnlock bloccando l'esecuzione di qualsiasi altro thread del processo di chiamata che tenta di accedere all'heap.
Esempio
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | heapapi.h (includere Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |