Función GlobalReAlloc (winbase.h)

Cambia el tamaño o los atributos de un objeto de memoria global especificado. El tamaño puede aumentar o disminuir.

Nota Las funciones globales tienen mayor sobrecarga y proporcionan menos características que otras funciones de administración de memoria. Las nuevas aplicaciones deben usar las funciones del montón a menos que la documentación indique que se debe usar una función global. Para obtener más información, vea Funciones globales y locales.
 

Sintaxis

DECLSPEC_ALLOCATOR HGLOBAL GlobalReAlloc(
  [in] _Frees_ptr_ HGLOBAL hMem,
  [in] SIZE_T              dwBytes,
  [in] UINT                uFlags
);

Parámetros

[in] hMem

Identificador del objeto de memoria global que se va a reasignar. La función GlobalAlloc o GlobalReAlloc devuelve este identificador.

[in] dwBytes

Nuevo tamaño del bloque de memoria, en bytes. Si uFlags especifica GMEM_MODIFY, este parámetro se omite.

[in] uFlags

Opciones de reasignación. Si se especifica GMEM_MODIFY , la función modifica los atributos del objeto de memoria solo (se omite el parámetro dwBytes ). De lo contrario, la función reasigna el objeto de memoria.

Opcionalmente, puede combinar GMEM_MODIFY con el siguiente valor.

Valor Significado
GMEM_MOVEABLE
0x0002
Asigna memoria extraíble.

Si la memoria es un bloque de memoria bloqueado GMEM_MOVEABLE o un bloque de memoria GMEM_FIXED y no se especifica esta marca, la memoria solo se puede reasignar en su lugar.

 

Si este parámetro no especifica GMEM_MODIFY, puede usar el siguiente valor.

Valor Significado
GMEM_ZEROINIT
0x0040
Hace que el contenido de memoria adicional se inicialice en cero si el objeto de memoria aumenta de tamaño.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un identificador para el objeto de memoria reasignado.

Si la función no se realiza correctamente, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Si GlobalReAlloc reasigna un objeto móvil, el valor devuelto es un identificador para el objeto de memoria. Para convertir el identificador en un puntero, use la función GlobalLock .

Si GlobalReAlloc reasigna un objeto fijo, el valor del identificador devuelto es la dirección del primer byte del bloque de memoria. Para acceder a la memoria, un proceso simplemente puede convertir el valor devuelto a un puntero.

Si se produce un error en GlobalReAlloc , la memoria original no se libera y el identificador y el puntero originales siguen siendo válidos.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winbase.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Funciones globales y locales

GlobalAlloc

GlobalDiscard

GlobalLock

Funciones de administración de memoria