Condividi tramite


Marshal.ReAllocHGlobal(IntPtr, IntPtr) Metodo

Definizione

Ridimensiona un blocco di memoria precedentemente allocato con 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

Parametri

pv
IntPtr

nativeint

Puntatore alla memoria allocata con AllocHGlobal(IntPtr).

cb
IntPtr

nativeint

Nuova dimensione del blocco allocato. Questo non è un puntatore; è il numero di byte richiesto, eseguire il cast al tipo IntPtr. Se si passa un puntatore, viene considerato come una dimensione.

Restituisce

IntPtr

nativeint

Puntatore alla memoria riallocata. Questa memoria deve essere rilasciata usando FreeHGlobal(IntPtr).

Attributi

Eccezioni

Memoria insufficiente per soddisfare la richiesta.

Commenti

Importante

Questo allocatore di memoria nativa è un'API legacy che deve essere usata esclusivamente quando viene chiamato per da API Win32 specifiche nella piattaforma Windows. Quando la destinazione è .NET 6 o versione successiva, usare la classe NativeMemory in tutte le piattaforme per allocare memoria nativa. Quando la destinazione è .NET 6 o versioni precedenti, usare AllocCoTaskMem in tutte le piattaforme per allocare memoria nativa.

ReAllocHGlobal è uno dei due metodi api di riallocazione della memoria nella classe Marshal. (Marshal.ReAllocCoTaskMem è l'altro.

Questo metodo espone la funzione di GlobalReAlloc win32 da Kernel32.dll. Il puntatore restituito può differire dall'originale. Se è diverso, il contenuto del blocco di memoria originale è stato copiato nel nuovo blocco e il blocco di memoria originale è stato liberato.

Si applica a

Vedi anche