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
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 |