Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
É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, és információt nyújt a veremkeretről.
Szintaxis
void __stdcall FunctionTailcall2 (
[in] FunctionID funcId,
[in] UINT_PTR clientData,
[in] COR_PRF_FRAME_INFO func
);
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.
clientData [in] Az újraleképezett függvény azonosítója, amelyet a profilozó korábban a FunctionIDMapperen keresztül adott meg annak a jelenleg végrehajtó függvénynek, amely egy farokhívást fog végrehajtani.
func [in] Egy COR_PRF_FRAME_INFO érték, amely a veremkerettel kapcsolatos információkra mutat.
A profilkészítőnek ezt átlátszatlan leíróként kell kezelnie, amelyet vissza lehet adni a végrehajtó motornak az ICorProfilerInfo2::GetFunctionInfo2 metódusban.
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ényLeave2 visszahívás nem lesz kiadva olyan függvényhez, amely a tail hívás célja.
A paraméter értéke érvénytelen a funcFunctionTailcall2 függvény visszaadása után, mert az érték megváltozhat vagy megsemmisülhet.
A FunctionTailcall2 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 FunctionTailcall2 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 FunctionTailcall2 tér.
Emellett a FunctionTailcall2 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: 2.0 óta elérhető