Condividi tramite


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

Enumerazione di un heap

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

Vedere anche

Funzioni heap

HeapUnlock

HeapWalk

Funzioni di gestione della memoria

API Vertdll disponibili nelle enclave VBS