RuntimeHelpers.PrepareConstrainedRegions メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > RuntimeHelpers.PrepareConstrainedRegions メソッドの意味・解説 

RuntimeHelpers.PrepareConstrainedRegions メソッド

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

コード本体制約され実行領域 (CER) として指定します

名前空間: System.Runtime.CompilerServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Shared Sub PrepareConstrainedRegions
RuntimeHelpers.PrepareConstrainedRegions
public static void PrepareConstrainedRegions
 ()
public:
static void PrepareConstrainedRegions ()
public static void PrepareConstrainedRegions
 ()
public static function PrepareConstrainedRegions
 ()
解説解説

PrepareConstrainedRegions メソッドは、catchfinally、および fault ブロックを、制約され実行領域 (CER) としてマークします。制約され領域としてマークされコードから他のコード呼び出す場合、そのコードには、信頼性が十分高コントラクトが必要となります準備されていないメソッド信頼性の低いメソッドについては、エラー処理対す準備なされていないと、メモリ割り当てたり仮想呼び出し実行したりすることはできません。

中間言語オペコード (NOP を除く) を、PrepareConstrainedRegions メソッド呼び出しtry ブロックの間に置くことはできません。CER詳細については、System.Runtime.ConstrainedExecution 名前空間の各クラストピック参照してください

try ブロックから StackOverflowException が生成され場合PrepareConstrainedRegions メソッド使ってマークされCER は完全には機能しません。詳細については、ExecuteCodeWithGuaranteedCleanup メソッドトピック参照してください

PrepareConstrainedRegions メソッドは ProbeForSufficientStack メソッド呼び出します。

使用例使用例

PrepareConstrainedRegions メソッド使用してハンドル確実に設定する方法次のコード例示しますハンドル指定した既存ハンドル確実に設定するには、ネイティブ ハンドル割り当てと SafeHandle オブジェクト内でのそのハンドル以降記録を必ず分離不可能な状態にすることが必要です。これらの操作間でエラー発生すると (スレッド中止メモリ不足例外によるエラーなど)、ネイティブ ハンドルリークされることになりますPrepareConstrainedRegions メソッド使用すると、ハンドルリーク確実に防ぐことができます

<StructLayout(LayoutKind.Sequential)> _
Structure MyStruct
    Public m_outputHandle As IntPtr
End Structure 'MyStruct


NotInheritable Class MySafeHandle
    Inherits SafeHandle

    ' Called by P/Invoke when returning SafeHandles
    Public Sub New()
        MyBase.New(IntPtr.Zero, True)

    End Sub


    Public Function AllocateHandle() As
 MySafeHandle
        ' Allocate SafeHandle first to avoid failure later.
        Dim sh As New MySafeHandle()

        RuntimeHelpers.PrepareConstrainedRegions()
        Try
        Finally
            Dim myStruct As New
 MyStruct()
            NativeAllocateHandle(myStruct)
            sh.SetHandle(myStruct.m_outputHandle)
        End Try

        Return sh

    End Function


[StructLayout(LayoutKind.Sequential)]
struct MyStruct
{
    public IntPtr m_outputHandle;
}

sealed class MySafeHandle : SafeHandle
{
    // Called by P/Invoke when returning SafeHandles
    public MySafeHandle()
        : base(IntPtr.Zero, true)
    {
    }

    public MySafeHandle AllocateHandle()
    {
        // Allocate SafeHandle first to avoid failure later.
        MySafeHandle sh = new MySafeHandle();

        RuntimeHelpers.PrepareConstrainedRegions();
        try { }
        finally
        {
            MyStruct myStruct = new MyStruct();
            NativeAllocateHandle(ref myStruct);
            sh.SetHandle(myStruct.m_outputHandle);
        }

        return sh;
    }

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
RuntimeHelpers クラス
RuntimeHelpers メンバ
System.Runtime.CompilerServices 名前空間


このページでは「.NET Framework クラス ライブラリ リファレンス」からRuntimeHelpers.PrepareConstrainedRegions メソッドを検索した結果を表示しています。
Weblioに収録されているすべての辞書からRuntimeHelpers.PrepareConstrainedRegions メソッドを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からRuntimeHelpers.PrepareConstrainedRegions メソッド を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「RuntimeHelpers.PrepareConstrainedRegions メソッド」の関連用語

RuntimeHelpers.PrepareConstrainedRegions メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



RuntimeHelpers.PrepareConstrainedRegions メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS