Freigeben über


LocalReAlloc-Funktion (winbase.h)

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

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

Syntax

DECLSPEC_ALLOCATOR HLOCAL LocalReAlloc(
  [in] _Frees_ptr_opt_ HLOCAL hMem,
  [in] SIZE_T                 uBytes,
  [in] UINT                   uFlags
);

Parameter

[in] hMem

Ein Handle zum lokalen Speicherobjekt, das neu zugeordnet werden soll. Dieses Handle wird entweder von der Funktion LocalAlloc oder LocalReAlloc zurückgegeben.

[in] uBytes

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

[in] uFlags

Die Neuzuordnungsoptionen. Wenn LMEM_MODIFY angegeben ist, ändert die Funktion nur die Attribute des Speicherobjekts (der uBytes-Parameter wird ignoriert.) Andernfalls wird das Speicherobjekt von der Funktion neu zugeordnet.

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

Wert Bedeutung
LMEM_MOVEABLE
0x0002
Ordnet festen oder beweglichen Arbeitsspeicher zu.

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

 

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

Wert Bedeutung
LMEM_ZEROINIT
0x0040
Bewirkt, dass der zusätzliche Speicherinhalt auf 0 (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 zugeordnete Speicherobjekt.

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

Hinweise

Wenn LocalReAlloc fehlschlägt, wird der ursprüngliche Speicher nicht freigegeben, und das ursprüngliche Handle und der Zeiger sind weiterhin gültig.

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

Anforderungen

   
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 (Windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Globale und lokale Funktionen

LocalAlloc

LocalFree

LocalLock

Speicherverwaltungsfunktionen