Compartilhar via


Marshal.ReAllocHGlobal(IntPtr, IntPtr) Método

Definição

Redimensiona um bloco de memória alocado anteriormente com 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

Parâmetros

pv
IntPtr

nativeint

Um ponteiro para a memória alocado com AllocHGlobal(IntPtr).

cb
IntPtr

nativeint

O novo tamanho do bloco alocado. Isso não é um ponteiro; é a contagem de bytes que você está solicitando, conversão para digitar IntPtr. Se você passar um ponteiro, ele será tratado como um tamanho.

Retornos

IntPtr

nativeint

Um ponteiro para a memória realocada. Essa memória deve ser liberada usando FreeHGlobal(IntPtr).

Atributos

Exceções

Não há memória suficiente para atender à solicitação.

Comentários

Importante

Esse alocador de memória nativa é uma API herdada que deve ser usada exclusivamente quando solicitada por APIs específicas do Win32 na plataforma Windows. Ao direcionar o .NET 6 ou posterior, use a classe NativeMemory em todas as plataformas para alocar memória nativa. Ao direcionar o .NET 6 ou anterior, use AllocCoTaskMem em todas as plataformas para alocar memória nativa.

ReAllocHGlobal é um dos dois métodos de API de realocação de memória na classe Marshal. (Marshal.ReAllocCoTaskMem é o outro.)

Esse método expõe a função GlobalReAlloc do Win32 de Kernel32.dll. O ponteiro retornado pode ser diferente do original. Se for diferente, o conteúdo do bloco de memória original foi copiado para o novo bloco e o bloco de memória original foi liberado.

Aplica-se a

Confira também