Fonction LocalUnlock (winbase.h)
Décrémente le nombre de verrous associé à un objet mémoire alloué avec LMEM_MOVEABLE. Cette fonction n’a aucun effet sur les objets de mémoire alloués avec LMEM_FIXED.
Syntaxe
BOOL LocalUnlock(
[in] HLOCAL hMem
);
Paramètres
[in] hMem
Handle de l’objet de mémoire locale. Ce handle est retourné par la fonction LocalAlloc ou LocalReAlloc .
Valeur retournée
Si l’objet mémoire est toujours verrouillé après la décrémentation du nombre de verrous, la valeur de retour est différente de zéro. Si l’objet mémoire est déverrouillé après la décrémentation du nombre de verrous, la fonction retourne zéro et GetLastError retourne NO_ERROR.
Si la fonction échoue, la valeur de retour est zéro et GetLastError retourne une valeur autre que NO_ERROR.
Remarques
Les structures de données internes pour chaque objet mémoire incluent un nombre de verrous qui est initialement égal à zéro. Pour les objets de mémoire mobiles, la fonction LocalLock incrémente le nombre d’un, et LocalUnlock décrémente le nombre d’un. Pour chaque appel qu’un processus effectue à LocalLock pour un objet, il doit éventuellement appeler LocalUnlock. La mémoire verrouillée n’est pas déplacée ou ignorée, sauf si l’objet mémoire est réalloué à l’aide de la fonction LocalReAlloc . Le bloc de mémoire d’un objet de mémoire verrouillé reste verrouillé jusqu’à ce que son nombre de verrous soit décrémenté à zéro, à ce moment-là, il peut être déplacé ou ignoré.
Si l’objet mémoire est déjà déverrouillé, LocalUnlock retourne FALSE et GetLastError signale ERROR_NOT_LOCKED. Les objets de mémoire alloués avec LMEM_FIXED ont toujours un nombre de verrous de zéro et provoquent l’erreur ERROR_NOT_LOCKED .
Un processus ne doit pas s’appuyer sur la valeur de retour pour déterminer le nombre de fois où il doit ensuite appeler LocalUnlock pour le bloc de mémoire.
Configuration requise
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 | winbase.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |