Marshal.ReAllocHGlobal 方法

调整以前用 AllocHGlobal 分配的内存块的大小。

**命名空间:**System.Runtime.InteropServices
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Shared Function ReAllocHGlobal ( _
    pv As IntPtr, _
    cb As IntPtr _
) As IntPtr
用法
Dim pv As IntPtr
Dim cb As IntPtr
Dim returnValue As IntPtr

returnValue = Marshal.ReAllocHGlobal(pv, cb)
public static IntPtr ReAllocHGlobal (
    IntPtr pv,
    IntPtr cb
)
public:
static IntPtr ReAllocHGlobal (
    IntPtr pv, 
    IntPtr cb
)
public static IntPtr ReAllocHGlobal (
    IntPtr pv, 
    IntPtr cb
)
public static function ReAllocHGlobal (
    pv : IntPtr, 
    cb : IntPtr
) : IntPtr

参数

  • cb
    已分配块的新大小。

返回值

指向重新分配的内存的 IntPtr。该内存必须用 Marshal.FreeHGlobal 来释放。

异常

异常类型 条件

OutOfMemoryException

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

备注

ReAllocHGlobalMarshal 类中两个内存分配 API 方法中的一个。((Marshal.ReAllocCoTaskMem 是另一个。)此方法从 Kernel32.dll 中公开 GlobalRealloc Win32 API 方法。返回的指针可以与原始指针不同。有关 GlobalAlloc 的其他信息,请参见 MSDN Library。

提示

此方法使用 SecurityAction.LinkDemand 防止不可信代码对它进行调用;只有直接调用方才需要具有 SecurityPermissionAttribute.UnmanagedCode 权限。如果您的代码可从部分受信任的代码调用,则未经验证不要将用户输入传递给 Marshal 类方法。有关使用 LinkDemand 成员的重要限制,请参见 Demand 和 LinkDemand

.NET Framework 安全性

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0

请参见

参考

Marshal 类
Marshal 成员
System.Runtime.InteropServices 命名空间
ReAllocCoTaskMem
FreeHGlobal