Partager via


HeapLock, fonction (heapapi.h)

Tente d’acquérir l’objet de section critique, ou verrou, associé à un tas spécifié.

Syntaxe

BOOL HeapLock(
  [in] HANDLE hHeap
);

Paramètres

[in] hHeap

Poignée du tas à verrouiller. Ce handle est retourné par la fonction HeapCreate ou GetProcessHeap .

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Si la fonction réussit, le thread appelant est propriétaire du verrou de tas. Seul le thread appelant sera en mesure d’allouer ou de libérer de la mémoire du tas. L’exécution de tout autre thread du processus appelant est bloquée si ce thread tente d’allouer ou de libérer de la mémoire du tas. Ces threads restent bloqués jusqu’à ce que le thread propriétaire du verrou de tas appelle la fonction HeapUnlock .

La fonction HeapLock est principalement utile pour empêcher l’allocation et la libération de mémoire du tas par d’autres threads, tandis que le thread appelant utilise la fonction HeapWalk .

Si la fonction HeapLock est appelée sur un tas créé avec l’indicateur HEAP_NO_SERIALIZE , les résultats ne sont pas définis.

Chaque appel réussi à HeapLock doit être mis en correspondance par un appel correspondant à HeapUnlock. L’échec de l’appel de HeapUnlock bloquera l’exécution de tous les autres threads du processus appelant qui tentent d’accéder au tas.

Exemples

Énumération d’un tas

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête heapapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Fonctions de tas

HeapUnlock

HeapWalk

Fonctions de gestion de la mémoire

API Vertdll disponibles dans les enclaves VBS