Megosztás a következőn keresztül:


FunctionTailcall függvény

Értesíti a profilozót arról, hogy a jelenleg végrehajtó függvény egy másik függvényre irányuló tail hívást készül végrehajtani.

Megjegyzés

A FunctionTailcall függvény elavult a .NET-keretrendszer 2.0-s verziójában. Továbbra is működni fog, de teljesítménybírságot von maga után. Használja helyette a FunctionTailcall2 függvényt.

Szintaxis

void __stdcall FunctionTailcall (  
    [in] FunctionID funcID  
);  

Paraméterek

funcID [in] Annak a jelenleg végrehajtó függvénynek az azonosítója, amely a tail hívás indítására készül.

Megjegyzések

A tail hívás célfüggvénye az aktuális veremkeretet használja, és közvetlenül a farokhívást kezdeményező függvény hívójának tér vissza. Ez azt jelenti, hogy a FüggvényLeave visszahívás nem lesz kiadva olyan függvényhez, amely a tail hívás célja.

A FunctionTailcall függvény visszahívás; implementálnia kell. Az implementációnak a __declspec(naked) storage-class attribútumot kell használnia.

A végrehajtó motor nem ment regisztereket a függvény meghívása előtt.

  • A bejegyzéskor mentenie kell az összes használt regisztert, beleértve a lebegőpontos egységben (FPU) lévőket is.

  • Kilépéskor vissza kell állítania a vermet a hívó által leküldett összes paraméter kiugraásával.

A megvalósítása FunctionTailcall nem tilthatja le, mert késlelteti a szemétgyűjtést. Az implementáció nem kísérelhet meg szemétgyűjtést, mert előfordulhat, hogy a verem nem szemétgyűjtés-barát állapotban van. Szemétgyűjtési kísérlet esetén a futtatókörnyezet mindaddig blokkolva lesz, amíg vissza nem FunctionTailcall tér.

Emellett a FunctionTailcall függvény nem hívhat meg felügyelt kódot, és semmilyen módon nem okozhat felügyelt memóriafoglalást.

Követelmények

Platformok: Lásd: Rendszerkövetelmények.

Fejléc: CorProf.idl

Könyvtár: CorGuids.lib

.NET-keretrendszer verziók: 1.1, 1.0

Lásd még