Partager via


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.

Note Les fonctions locales ont une surcharge plus importante et fournissent moins de fonctionnalités que d’autres fonctions de gestion de la mémoire. Les nouvelles applications doivent utiliser les fonctions de tas , sauf si la documentation indique qu’une fonction locale doit être utilisée. Pour plus d’informations, consultez Fonctions globales et locales.
 

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

Voir aussi

Fonctions globales et locales

LocalAlloc

LocalFlags

LocalLock

LocalReAlloc

Fonctions de gestion de la mémoire