winbase.h


LocalLock

La función LocalLock bloquea un objeto de memoria local y devuelve un puntero al primer byte del bloque de memoria del objeto. El bloque de memoria asociado con el objeto de memoria bloqueado no puede ser movido o descartado. Para objetos de memoria reservados con la bandera LMEM_MOVEABLE, la función incrementa el contador de bloqueo del objeto.

Sintaxis

LPVOID LocalLock(
    HLOCAL hMem  // manipulador de objeto de memoria local
   );

Parámetros:

hMem: identifica el objeto de memoria local. Este manipulador es devuelto por las funciones LocalAlloc o LocalReAlloc.

Valor de retorno

Si la función tiene éxito, el valor de retorno es un puntero al primer byte del bloque de memoria.

Si la función falla, el valor de retorno es NULL. Para obtener información más detallada sobre el error, llamar a la función GetLastError.

Observaciones

Las estructuras de datos internas para cada objeto de memoria incluye un contador de bloqueos que se inicializa a cero. Para objetos de memoria movible, LocalLock incrementa el contador en una unidad, y la función LocalUnlock lo decrementa también en una unidad. Para cada llamada que haga un procesos a LocalLock para un objeto, debe también llamar a LocalUnlock. La memoria bloqueada no puede ser movida o descartada salvo que el objeto sea reubicado mediante el uso de la función LocalReAlloc. El bloque de memoria de un objeto de memoria bloqueado permanece bloqueado hasta que el contador de bloqueos se decremente a cero, en ese momento puede ser movido o descartado.

Los objetos de memoria reservados con la bandera LMEM_FIXED tienen un contador de bloqueos cero. Para esos objetos, el valor del puntero devuelto es igual al valor del manipulador especificado.

Si el bloque de memoria especificado ha sido descartado o si el bloque de memoria tiene un tamaño nulo, esta función devuelve NULL.

Los objetos descartados siempre tienen un contador de bloqueos de valor cero.