Marshal.FreeCoTaskMem 方法
释放由非托管 COM 任务内存分配器使用 Marshal.AllocCoTaskMem 分配的内存块。
**命名空间:**System.Runtime.InteropServices
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
Public Shared Sub FreeCoTaskMem ( _
ptr As IntPtr _
)
用法
Dim ptr As IntPtr
Marshal.FreeCoTaskMem(ptr)
public static void FreeCoTaskMem (
IntPtr ptr
)
public:
static void FreeCoTaskMem (
IntPtr ptr
)
public static void FreeCoTaskMem (
IntPtr ptr
)
public static function FreeCoTaskMem (
ptr : IntPtr
)
参数
- ptr
要释放的内存的地址。
备注
可使用 FreeCoTaskMem 释放由 AllocCoTaskMem、ReAllocCoTaskMem 或任何等效非托管 API 分配的所有内存。如果 ptr 参数为 空引用(在 Visual Basic 中为 Nothing),则此方法什么也不做。
FreeCoTaskMem 公开 CoTaskMemFree COM API 函数,后者释放所有字节,使您无法再使用 ptr 参数所指向的内存。有关 CoTaskMemFree 的其他信息,请参见 MSDN Library。
除了 FreeCoTaskMem 之外,Marshal 类还提供了其他两个内存释放方法:Marshal.DestroyStructure 和 Marshal.FreeHGlobal。
提示
此方法使用 SecurityAction.LinkDemand 防止不可信代码对它进行调用;只有直接调用方才需要具有 SecurityPermissionAttribute.UnmanagedCode 权限。如果您的代码可从部分受信任的代码调用,则未经验证不要将用户输入传递给 Marshal 类方法。有关使用 LinkDemand 成员的重要限制,请参见 Demand 和 LinkDemand。
.NET Framework 安全性
- SecurityPermission 调用非托管代码的权限。 关联枚举:UnmanagedCode 安全操作:LinkDemand
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、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 命名空间
AllocCoTaskMem
ReAllocCoTaskMem
DestroyStructure
FreeHGlobal