Fonction GlobalReAlloc (winbase.h)

Modifie la taille ou les attributs d’un objet de mémoire globale spécifié. La taille peut augmenter ou diminuer.

Note Les fonctions globales ont une surcharge plus importante et fournissent moins de fonctionnalités que les 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 globale doit être utilisée. Pour plus d’informations, consultez Fonctions globales et locales.
 

Syntaxe

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

Paramètres

[in] hMem

Handle de l’objet de mémoire globale à réallouer. Ce handle est retourné par la fonction GlobalAlloc ou GlobalReAlloc .

[in] dwBytes

Nouvelle taille du bloc de mémoire, en octets. Si uFlags spécifie GMEM_MODIFY, ce paramètre est ignoré.

[in] uFlags

Options de réaffectation. Si GMEM_MODIFY est spécifié, la fonction modifie les attributs de l’objet mémoire uniquement (le paramètre dwBytes est ignoré).) Sinon, la fonction réalloue l’objet mémoire.

Vous pouvez éventuellement combiner GMEM_MODIFY avec la valeur suivante.

Valeur Signification
GMEM_MOVEABLE
0x0002
Alloue de la mémoire mobile.

Si la mémoire est un bloc de mémoire verrouillé GMEM_MOVEABLE ou un bloc de mémoire GMEM_FIXED et que cet indicateur n’est pas spécifié, la mémoire peut uniquement être réaffectée sur place.

 

Si ce paramètre ne spécifie pas GMEM_MODIFY, vous pouvez utiliser la valeur suivante.

Valeur Signification
GMEM_ZEROINIT
0x0040
Provoque l’initialisation du contenu de mémoire supplémentaire à zéro si la taille de l’objet de mémoire augmente.

Valeur retournée

Si la fonction réussit, la valeur de retour est un handle de l’objet mémoire réalloué.

Si la fonction échoue, la valeur de retour est NULL. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Si GlobalReAlloc réalloue un objet mobile, la valeur de retour est un handle à l’objet mémoire. Pour convertir le handle en pointeur, utilisez la fonction GlobalLock .

Si GlobalReAlloc réalloue un objet fixe, la valeur du handle retourné est l’adresse du premier octet du bloc de mémoire. Pour accéder à la mémoire, un processus peut simplement caster la valeur de retour en pointeur.

Si GlobalReAlloc échoue, la mémoire d’origine n’est pas libérée et le handle et le pointeur d’origine sont toujours valides.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Fonctions globales et locales

GlobalAlloc

GlobalDiscard

GlobalLock

Fonctions de gestion de la mémoire