Freigeben über


GlobalReAlloc-Funktion (winbase.h)

Ändert die Größe oder attribute eines angegebenen globalen Speicherobjekts. Die Größe kann vergrößert oder verringert werden.

Hinweis Die globalen Funktionen weisen einen größeren Mehraufwand auf und bieten weniger Features als andere Speicherverwaltungsfunktionen. Neue Anwendungen sollten die Heapfunktionen verwenden, es sei denn, die Dokumentation besagt, dass eine globale Funktion verwendet werden soll. Weitere Informationen finden Sie unter Globale und lokale Funktionen.
 

Syntax

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

Parameter

[in] hMem

Ein Handle zum globalen Speicherobjekt, das neu zugeordnet werden soll. Dieses Handle wird entweder von der Funktion GlobalAlloc oder GlobalReAlloc zurückgegeben.

[in] dwBytes

Die neue Größe des Speicherblocks in Bytes. Wenn uFlagsGMEM_MODIFY angibt, wird dieser Parameter ignoriert.

[in] uFlags

Die Neuzuweisungsoptionen. Wenn GMEM_MODIFY angegeben wird, ändert die Funktion nur die Attribute des Speicherobjekts (der dwBytes-Parameter wird ignoriert.) Andernfalls ordnet die Funktion das Speicherobjekt neu zu.

Optional können Sie GMEM_MODIFY mit dem folgenden Wert kombinieren.

Wert Bedeutung
GMEM_MOVEABLE
0x0002
Ordnet beweglichen Arbeitsspeicher zu.

Wenn der Speicher ein gesperrter GMEM_MOVEABLE Speicherblock oder ein GMEM_FIXED Speicherblock ist und dieses Flag nicht angegeben ist, kann der Speicher nur neu zugeordnet werden.

 

Wenn dieser Parameter nicht GMEM_MODIFY angibt, können Sie den folgenden Wert verwenden.

Wert Bedeutung
GMEM_ZEROINIT
0x0040
Bewirkt, dass der zusätzliche Speicherinhalt auf Null initialisiert wird, wenn das Speicherobjekt größer wird.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Handle für das neu zugewiesene Speicherobjekt.

Wenn bei der Funktion ein Fehler auftritt, ist der Rückgabewert NULL. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Wenn GlobalReAlloc ein bewegliches Objekt neu ordnet, ist der Rückgabewert ein Handle für das Speicherobjekt. Um das Handle in einen Zeiger zu konvertieren, verwenden Sie die GlobalLock-Funktion .

Wenn GlobalReAlloc ein festes Objekt neu ordnet, ist der Wert des zurückgegebenen Handle die Adresse des ersten Byte des Speicherblocks. Um auf den Arbeitsspeicher zuzugreifen, kann ein Prozess einfach den Rückgabewert in einen Zeiger umwandeln.

Wenn GlobalReAlloc fehlschlägt, wird der ursprüngliche Arbeitsspeicher nicht freigegeben, und das ursprüngliche Handle und der zeiger sind weiterhin gültig.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Globale und lokale Funktionen

Globalalloc

GlobalDiscard

GlobalLock

Speicherverwaltungsfunktionen