FunctionLeave 関数
更新 : 2010 年 10 月
関数が呼び出し元に戻ろうとしていることをプロファイラーに通知します。
メモ |
---|
FunctionLeave 関数は、.NET Framework 2.0 での使用は推奨されていません。機能はしますが、パフォーマンスが低下します。代わりに、FunctionLeave2 関数を使用してください。 |
void __stdcall FunctionLeave (
[in] FunctionID funcID
);
パラメーター
- funcID
[入力] 戻ろうとしている関数の識別子。
解説
FunctionLeave 関数はコールバックであり、ユーザー自身で実装する必要があります。 実装では、__declspec(naked) ストレージ クラス属性を使用する必要があります。
この関数を呼び出すまで、実行エンジンはどのレジスタも保存しません。
エントリ時に、使用するすべてのレジスタを、浮動小数点ユニット (FPU: Floating-Point Unit) のレジスタも含めて保存する必要があります。
終了時に、呼び出し元によってプッシュされたすべてのパラメーターをポップすることで、スタックを復元する必要があります。
ガベージ コレクションが遅延するので、FunctionLeave の実装ではブロックを行わないでください。 スタックがガベージ コレクションできる状態とは限らないので、実装ではガベージ コレクションを実行しないでください。 ガベージ コレクションが試行されると、ランタイムは FunctionLeave が戻るまでブロックします。
さらに、FunctionLeave 関数では、マネージ コードを呼び出したり、マネージ メモリの割り当てが行われるような処理を実行したりすることは避ける必要があります。
必要条件
プラットフォーム : 「.NET Framework システム要件」を参照
ヘッダー: CorProf.idl
ライブラリ: CorGuids.lib
.NET Framework のバージョン : 1.1、1.0
参照
参照
ICorProfilerInfo2::SetEnterLeaveFunctionHooks2 メソッド
その他の技術情報
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2010 年 10 月 |
__stdcall を構文に追加。 |
カスタマー フィードバック |