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
参数
- pv
指向用 AllocHGlobal 分配的内存的指针。
- cb
已分配块的新大小。
返回值
指向重新分配的内存的 IntPtr。该内存必须用 Marshal.FreeHGlobal 来释放。
异常
异常类型 | 条件 |
---|---|
内存不足,无法满足请求。 |
备注
ReAllocHGlobal 是 Marshal 类中两个内存分配 API 方法中的一个。((Marshal.ReAllocCoTaskMem 是另一个。)此方法从 Kernel32.dll 中公开 GlobalRealloc Win32 API 方法。返回的指针可以与原始指针不同。有关 GlobalAlloc 的其他信息,请参见 MSDN Library。
提示
此方法使用 SecurityAction.LinkDemand 防止不可信代码对它进行调用;只有直接调用方才需要具有 SecurityPermissionAttribute.UnmanagedCode 权限。如果您的代码可从部分受信任的代码调用,则未经验证不要将用户输入传递给 Marshal 类方法。有关使用 LinkDemand 成员的重要限制,请参见 Demand 和 LinkDemand。
.NET Framework 安全性
- SecurityPermission 调用非托管代码的权限。 关联枚举:UnmanagedCode 安全操作:LinkDemand
平台
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