共用方式為


FunctionLeave 函式

更新:2007 年 11 月

向分析工具告知,函式即將傳回至呼叫端。

注意事項:

在 .NET Framework 2.0 中 FunctionLeave 函式已遭取代。它仍可運作,但會對效能帶來負面影響。請改用 FunctionLeave2 函式。

void FunctionLeave (
        [in] FunctionID funcID
);

參數

  • funcID
    [in] 正在傳回之函式的識別項。

備註

FunctionLeave 函式為回呼;您必須實作此函式。此實作必須使用 __declspec(naked) 儲存類別屬性。

執行引擎不會在呼叫這個函式之前儲存任何暫存器。

  • 進入時,您必須儲存使用的所有暫存器,包括位於浮點單位 (FPU) 的暫存器。

  • 結束時,您必須透過移除堆疊之呼叫端推入的所有參數來還原堆疊。

FunctionLeave 的實作不應該封鎖,因為它會延遲記憶體回收的進度。此實作不應該嘗試進行記憶體回收,因為堆疊的狀態可能不適合進行記憶體回收。如果嘗試進行記憶體回收,執行階段將會一直封鎖到 FunctionLeave 傳回為止。

此外,FunctionLeave 函式不應該呼叫 Managed 程式碼內部,或以任何方式導致 Managed 記憶體配置。

需求

**平台:**請參閱 .NET Framework 系統需求

**標頭:**CorProf.idl

**程式庫:**CorGuids.lib

**.NET Framework 版本:**1.1、1.0

請參閱

參考

FunctionEnter2 函式

FunctionLeave2 函式

FunctionTailcall2 函式

ICorProfilerInfo2::SetEnterLeaveFunctionHooks2 方法

其他資源

分析全域靜態函式