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


FunctionEnter2 függvény

Értesíti a profilozót arról, hogy a vezérlő egy függvénynek van átadva, és információt nyújt a veremkeretről és a függvényargumentumokról. Ez a függvény felülírja a FunctionEnter függvényt.

Szintaxis

void __stdcall FunctionEnter2 (  
    [in]  FunctionID                       funcId,
    [in]  UINT_PTR                         clientData,
    [in]  COR_PRF_FRAME_INFO               func,
    [in]  COR_PRF_FUNCTION_ARGUMENT_INFO  *argumentInfo  
);  

Paraméterek

funcId [in] Annak a függvénynek az azonosítója, amelynek a vezérlőt átadják.

clientData [in] Az újraképezett függvény azonosítója, amelyet a profilozó korábban a FunctionIDMapper függvénnyel adott meg.

func [in] Egy COR_PRF_FRAME_INFO érték, amely a veremkerettel kapcsolatos információkra mutat.

A profilelőnek ezt átlátszatlan leíróként kell kezelnie, amelyet vissza lehet adni a végrehajtó motornak az ICorProfilerInfo2::GetFunctionInfo2 metódusban.

argumentInfo [in] Egy COR_PRF_FUNCTION_ARGUMENT_INFO szerkezetre mutató mutató, amely meghatározza a függvény argumentumainak memóriájában lévő helyeket.

Az argumentumadatok eléréséhez be kell állítani a COR_PRF_ENABLE_FUNCTION_ARGS jelzőt. A profilozó az ICorProfilerInfo::SetEventMask metódust használhatja az eseményjelölők beállításához.

Megjegyzések

A és argumentInfo paraméter func értékei nem érvényesek a FunctionEnter2 függvény visszatérése után, mert az értékek megváltozhatnak vagy megsemmisülhetnek.

A FunctionEnter2 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ási motor nem menti a 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 FunctionEnter2 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. Ha szemétgyűjtést kísérel meg, a futtatókörnyezet addig blokkolódik, amíg vissza nem FunctionEnter2 tér.

Emellett a FunctionEnter2 függvény nem hívhat be 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 érhető el

Lásd még