共用方式為


FunctionTailcall 函式

通知分析工具,讓其知道目前的執行中函式即將對另一個函式執行 Tail 呼叫。

注意

FunctionTailcall 式在 .NET Framework 2.0 版中已被取代。 其會繼續運作,但會對效能產生負面影響。 請改用 FunctionTailcall2 函式。

語法

void __stdcall FunctionTailcall (  
    [in] FunctionID funcID  
);  

參數

funcID [in] 目前正在執行、且即將進行 Tail 呼叫的函式識別碼。

備註

tail 呼叫的目標函式會使用目前的堆疊框架,並直接傳回給發出 tail 呼叫之函式的呼叫端。 這表示不會針對屬於 tail 呼叫目標之函式發出 FunctionLeave 回呼。

FunctionTailcall 函式是回呼;您必須實作它。 實作必須使用 __declspec (naked) 儲存體類別屬性。

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

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

  • 離開時,您必須將其呼叫端推送的所有參數移出以還原堆疊。

FunctionTailcall 的實作不該封鎖,因為它會延遲記憶體回收。 實作不該嘗試記憶體回收,因為堆疊可能不是處於記憶體回收友善狀態。 如果嘗試記憶體回收,執行階段將會封鎖直到 FunctionTailcall 傳回為止。

此外,FunctionTailcall 函式不得呼叫受控程式碼,或以任何方式造成受控記憶體配置。

規格需求

平台:請參閱系統需求

標頭:CorProf.idl

程式庫:CorGuids.lib

.NET Framework版本:1.1、1.0

另請參閱