構造体 RUNTIME_FUNCTION

更新 : 2007 年 11 月

テーブルベースの例外処理を行う場合、スタック領域の割り当てや別の関数 (非リーフ関数など) の呼び出しを実行するすべての関数用のテーブル エントリが必要となります。関数テーブル エントリの形式は次のとおりです。

ULONG

関数の開始アドレス

ULONG

関数の終了アドレス

ULONG

アンワインド情報のアドレス

RUNTIME_FUNCTION 構造体は、メモリに DWORD でアライメントされる必要があります。すべてのアドレスは、イメージからの相対アドレス、つまり、関数テーブル エントリを含むイメージの開始アドレスからの 32 ビットのオフセット アドレスです。これらのエントリは並べ替えられ、PE32+ イメージの .pdata セクションに配置されます。動的に生成された関数 [JIT コンパイラ] の場合、これらの関数をサポートするランタイムは、この情報をオペレーティング システムに提供するために RtlInstallFunctionCallback または RtlAddFunctionTable を使用する必要があります。この処理に失敗すると、例外処理およびプロセスのデバッグに対する信頼性が失われます。

参照

参照

例外処理とデバッガ サポートのためのアンワインド データ