次の方法で共有


Marshal.FreeCoTaskMem メソッド

Marshal.AllocCoTaskMem を使用して、アンマネージ COM タスク メモリ アロケータが割り当てたメモリ ブロックを解放します。

Public Shared Sub FreeCoTaskMem( _
   ByVal ptr As IntPtr _)
[C#]
public static void FreeCoTaskMem(IntPtrptr);
[C++]
public: static void FreeCoTaskMem(IntPtrptr);
[JScript]
public static function FreeCoTaskMem(
   ptr : IntPtr);

パラメータ

  • ptr
    解放するメモリのアドレス。

例外

例外の種類 条件
ArgumentNullException ptr が null 参照 (Visual Basic では Nothing) です。

解説

FreeCoTaskMem を使用すると、 AllocCoTaskMemReAllocCoTaskMem 、またはこれらに相当するアンマネージ API で割り当てられたメモリを解放できます。 ptr パラメータが null 参照 (Visual Basic では Nothing) の場合、このメソッドは何も実行しません。

FreeCoTaskMemCoTaskMemFree COM API 関数を公開します。この COM API 関数はすべてのバイトを解放し、 ptr パラメータが示すメモリはその後使用できなくなります。 CoTaskMemFree の詳細については、MSDN ライブラリを参照してください。

Marshal クラスには、メモリ割り当て解除のメソッドとして、 FreeCoTaskMem のほか、 Marshal.DestroyStructureMarshal.FreeHGlobal が用意されています。

メモ   このメソッドは SecurityAction.LinkDemand を使用して、信頼関係のないコードからの呼び出しを防ぎます。 SecurityPermissionAttribute.UnmanagedCode アクセス許可は、直前の呼び出し元にのみ要求されます。信頼性が一部しか確認されていないコードから呼び出すことができるコードの場合、ユーザー入力を検証せずに Marshal クラスに渡すことは避けてください。 LinkDemand メンバの使用に関する重要な制約事項については、「 Demand と LinkDemand 」を参照してください。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

Marshal クラス | Marshal メンバ | System.Runtime.InteropServices 名前空間 | AllocCoTaskMem | ReAllocCoTaskMem | DestroyStructure | FreeHGlobal