FunctionTailcall3WithInfo 函式
更新:2010 年 10 月
通知分析工具,目前正在執行的函式將對另一個函式執行 Tail 呼叫,並提供可傳遞至 ICorProfilerInfo3::GetFunctionTailcall3Info 方法的控制代碼,以擷取堆疊框架。
void __stdcall FunctionTailcall3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
參數
functionIDOrClientID
[in] 目前正在執行之函式的識別項,該函式即將執行尾端呼叫。eltInfo
[in] 不透明控制代碼,表示特定堆疊框架的相關資訊。 這個控制代碼只有在傳遞給回呼的期間才有效。
備註
FunctionTailcall3WithInfo 回呼方法會在函式被呼叫時通知分析工具,並會讓分析工具能夠使用 ICorProfilerInfo3::GetFunctionTailcall3Info 方法來檢查堆疊框架。 若要存取堆疊框架資訊,就必須設定 COR_PRF_ENABLE_FRAME_INFO 旗標。 分析工具可使用 ICorProfilerInfo::SetEventMask 方法來設定事件旗標,然後使用 ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo 方法來註冊您對這個函式的實作。
FunctionTailcall3WithInfo 函式為回呼;您必須實作此函式。 此實作必須使用 __declspec(naked) 儲存類別屬性。
執行引擎不會在呼叫這個函式之前儲存任何暫存器。
進入時,您必須儲存使用的所有暫存器,包括位於浮點單位 (FPU) 的暫存器。
結束時,您必須透過移除堆疊之呼叫端推入的所有參數來還原堆疊。
FunctionTailcall3WithInfo 的實作不應該封鎖,因為這樣會延遲記憶體回收。 此實作不應該嘗試進行記憶體回收,因為堆疊的狀態可能不適合進行記憶體回收。 如果嘗試進行記憶體回收,執行階段將會一直封鎖到 FunctionTailcall3WithInfo 傳回為止。
此外,FunctionTailcall3WithInfo 函式不應呼叫至 Managed 程式碼內部,或以任何方式造成 Managed 記憶體配置。
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**CorProf.idl
**程式庫:**CorGuids.lib
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0
請參閱
參考
SetEnterLeaveFunctionHooks3WithInfo
其他資源
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2010 年 10 月 |
加入 __stdcall 語法。 |
客戶回函。 |