winbase.h


GlobalLock

La función GlobalLock 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 GMEM_MOVEABLE, la función incrementa el contador de bloqueo del objeto.

Sintaxis

LPVOID GlobalLock(
    HGLOBAL hMem  // manipulador del objeto de memoria global
   );

Parámetros

hMem: identifica el objeto de memoria global. Este manipulador es devuelto por las funciones GlobalAlloc o GlobalReAlloc.

Valor de retorno

Si la función tiene éxito, el valor de retorno es el manipulador del objeto de memoria global especificado.

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 incluyen un contador de bloqueos que se inicializa a cero. Para objetos de memoria movible, GlobalLock incrementa el contador en una unidad, y la función GlobalUnlock lo decrementa también en una unidad. Para cada llamada que haga un procesos a GlobalLock para un objeto, debe también llamar a GlobalUnlock. La memoria bloqueada no puede ser movida o descartada, salvo que el objeto sea reubicado mediante el uso de la función GlobalReAlloc. 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 GMEM_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.