Freigeben über


Marshal.ReAllocHGlobal(IntPtr, IntPtr) Methode

Definition

Ändert die Größe eines Speicherblocks, der zuvor mit AllocHGlobal(IntPtr)zugeordnet wurde.

public:
 static IntPtr ReAllocHGlobal(IntPtr pv, IntPtr cb);
[System.Security.SecurityCritical]
public static IntPtr ReAllocHGlobal (IntPtr pv, IntPtr cb);
public static IntPtr ReAllocHGlobal (IntPtr pv, IntPtr cb);
[<System.Security.SecurityCritical>]
static member ReAllocHGlobal : nativeint * nativeint -> nativeint
static member ReAllocHGlobal : nativeint * nativeint -> nativeint
Public Shared Function ReAllocHGlobal (pv As IntPtr, cb As IntPtr) As IntPtr

Parameter

pv
IntPtr

nativeint

Ein Zeiger auf den Speicher, der mit AllocHGlobal(IntPtr)zugeordnet ist.

cb
IntPtr

nativeint

Die neue Größe des zugewiesenen Blocks. Dies ist kein Zeiger; es ist die Byteanzahl, die Sie anfordern, in den Typ IntPtrumwandeln. Wenn Sie einen Zeiger übergeben, wird er als Größe behandelt.

Gibt zurück

IntPtr

nativeint

Ein Zeiger auf den neu zugeordneten Speicher. Dieser Speicher muss mit FreeHGlobal(IntPtr)freigegeben werden.

Attribute

Ausnahmen

Es ist nicht genügend Arbeitsspeicher vorhanden, um die Anforderung zu erfüllen.

Hinweise

Wichtig

Diese systemeigene Speicherverknürung ist eine Legacy-API, die ausschließlich verwendet werden sollte, wenn sie von bestimmten Win32-APIs auf der Windows-Plattform aufgerufen wird. Verwenden Sie bei der Zielbestimmung von .NET 6 oder höher die NativeMemory Klasse auf allen Plattformen, um nativen Speicher zuzuweisen. Verwenden Sie bei der Zielbestimmung von .NET 6 oder einer früheren Version AllocCoTaskMem auf allen Plattformen, um nativen Speicher zuzuweisen.

ReAllocHGlobal ist eine von zwei Speicher-Reallocation-API-Methoden in der Marshal-Klasse. (Marshal.ReAllocCoTaskMem ist die andere.)

Diese Methode macht die Win32-GlobalReAlloc--Funktion aus Kernel32.dllverfügbar. Der zurückgegebene Zeiger kann sich vom Original unterscheiden. Wenn dies anders ist, wurden die Inhalte des ursprünglichen Speicherblocks in den neuen Block kopiert, und der ursprüngliche Speicherblock wurde freigegeben.

Gilt für:

Weitere Informationen