Marshal.ReAllocHGlobal(IntPtr, IntPtr) 方法

定义

调整以前使用 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

参数

pv
IntPtr

nativeint

指向使用 AllocHGlobal(IntPtr)分配的内存的指针。

cb
IntPtr

nativeint

已分配块的新大小。 这不是指针;它是所请求的字节计数,强制转换为类型 IntPtr。 如果传递指针,则会将其视为大小。

返回

IntPtr

nativeint

指向重新分配内存的指针。 必须使用 FreeHGlobal(IntPtr)释放此内存。

属性

例外

内存不足,无法满足请求。

注解

重要

此本机内存分配器是一个旧版 API,应在 Windows 平台上由特定 Win32 API 调用时专门使用。 面向 .NET 6 或更高版本时,请使用所有平台上的 NativeMemory 类来分配本机内存。 面向 .NET 6 或更早版本时,在所有平台上使用 AllocCoTaskMem 来分配本机内存。

ReAllocHGlobalMarshal 类中两种内存重新分配 API 方法之一。 (Marshal.ReAllocCoTaskMem 是另一个。

此方法从 Kernel32.dll公开 Win32 GlobalReAlloc 函数。 返回的指针可能与原始指针不同。 如果不同,原始内存块的内容已复制到新块,并且原始内存块已释放。

适用于

另请参阅