Marshal.ReAllocHGlobal(IntPtr, IntPtr) Metod

Definition

Ändrar storlek på ett minnesblock som tidigare allokerats med AllocHGlobal(IntPtr).

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

Parametrar

pv
IntPtr

nativeint

En pekare till minne som allokerats med AllocHGlobal(IntPtr).

cb
IntPtr

nativeint

Den nya storleken på det allokerade blocket. Det här är inte en pekare. det är byteantalet som du begär, gjutet för att skriva IntPtr. Om du skickar en pekare behandlas den som en storlek.

Returer

IntPtr

nativeint

En pekare till det omallokerade minnet. Det här minnet måste frigöras med hjälp av FreeHGlobal(IntPtr).

Attribut

Undantag

Det finns inte tillräckligt med minne för att uppfylla begäran.

Kommentarer

Important

Den här interna minnesallokeraren är ett äldre API som ska användas exklusivt när det anropas av specifika Win32-API:er på Windows-plattformen. När du riktar in dig på .NET 6 eller senare använder du klassen NativeMemory på alla plattformar för att allokera inbyggt minne. När du riktar in dig på .NET Framework använder du AllocCoTaskMem på alla plattformar för att allokera inbyggt minne.

ReAllocHGlobal är en av två API-metoder för minnesallokering i Marshal klassen. (Marshal.ReAllocCoTaskMem är den andra.)

Den här metoden exponerar funktionen Win32 GlobalReAlloc från Kernel32.dll. Den returnerade pekaren kan skilja sig från originalet. Om det är annorlunda har innehållet i det ursprungliga minnesblocket kopierats till det nya blocket och det ursprungliga minnesblocket har frigjorts.

Gäller för

Se även