Marshal.ReAllocHGlobal(IntPtr, IntPtr) Método

Definição

Redimensiona um bloco de memória previamente atribuído 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 apontador para a memória alocada com AllocHGlobal(IntPtr).

cb
IntPtr

nativeint

O novo tamanho do bloco atribuído. Isto não é um ponteiro; É a contagem de bytes que está a pedir, cast para escrever IntPtr. Se passar um ponteiro, é tratado como um tamanho.

Devoluções

IntPtr

nativeint

Um apontador para a memória realocada. Esta memória deve ser libertada usando FreeHGlobal(IntPtr).

Atributos

Exceções

Não há memória suficiente para satisfazer o pedido.

Observações

Importante

Este alocador de memória nativo é uma API legada que deve ser usada exclusivamente quando solicitada por APIs Win32 específicas na plataforma Windows. Ao direcionar .NET 6 ou posteriores, use a classe NativeMemory em todas as plataformas para alocar memória nativa. Ao direcionar .NET Framework, 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 Marshal classe. (Marshal.ReAllocCoTaskMem é a outra.)

Este método expõe a função Win32 GlobalReAlloc de Kernel32.dll. O ponteiro devolvido pode diferir 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 libertado.

Aplica-se a

Ver também