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


FunctionIDMapper függvény

Értesíti a profilozót, hogy egy függvény adott azonosítója egy másik azonosítóra lesz leképezve, amelyet a függvény FunctionEnter2, FunctionLeave2 és FunctionTailcall2 visszahívásaiban használhat. FunctionIDMapper emellett lehetővé teszi, hogy a profilkészítő jelezze, hogy szeretne-e visszahívásokat fogadni az adott függvényhez.

Szintaxis

UINT_PTR __stdcall FunctionIDMapper (  
    [in]  FunctionID  funcId,
    [out] BOOL       *pbHookFunction  
);  

Paraméterek

funcId [in] Az újraleképezendő függvényazonosító.

pbHookFunction [kifelé] Egy olyan értékre mutató mutató, amelyet a profilkészítő állít be true , ha fogadni FunctionEnter2szeretné a , FunctionLeave2a és FunctionTailcall2 a visszahívásokat; ellenkező esetben ezt az értéket értékre falseállítja.

Visszatérési érték

A profilkészítő egy értéket ad vissza, amelyet a végrehajtó motor alternatív függvényazonosítóként használ. A visszaadott érték csak akkor lehet null értékű, ha false a visszaadott pbHookFunctionértéke . Ellenkező esetben a null visszatérési érték kiszámíthatatlan eredményeket eredményez, beleértve a folyamat leállítását is.

Megjegyzések

A FunctionIDMapper függvény visszahívás. A profilkészítő implementálta, hogy a függvényazonosítót más, a profilkészítő számára hasznosabb azonosítóra írja át. A FunctionIDMapper visszaadja az adott függvényhez használandó alternatív azonosítót. A végrehajtó motor ezután a hagyományos függvényazonosító mellett ezt az alternatív azonosítót is átadja a profilozónak a , FunctionLeave2és FunctionTailcall2 horgok paraméterében clientDataFunctionEnter2, hogy azonosítsa azt a függvényt, amelyhez a horgot meghívja.

A függvény implementálásának megadásához használhatja az ICorProfilerInfo::SetFunctionIDMapper metódust FunctionIDMapper . A metódust csak egyszer hívhatja ICorProfilerInfo::SetFunctionIDMapper meg, és javasoljuk, hogy ezt az ICorProfilerCallback::Inicializálja a visszahívást.

Alapértelmezés szerint a rendszer azt feltételezi, hogy egy profilkészítőnek, amely az ICorProfilerInfo::SetEventMask használatával állítja be a COR_PRF_MONITOR_ENTERLEAVE jelzőt, és amely az ICorProfilerInfo::SetEnterLeaveFunctionHooks vagy az ICorProfilerInfo2::SetEnterLeaveFunctionHooks2 használatával állítja be a horgokat, minden függvényhez megkapja a FunctionEnter2, FunctionLeave2és FunctionTailcall2 visszahívást. Előfordulhat azonban, hogy a profilkészítők FunctionIDMapper szelektíven kerülik el ezeket a visszahívásokat bizonyos függvények esetében a falseértékre állításávalpbHookFunction.

A profilkészítőknek toleránsnak kell lenniük azokban az esetekben, amikor egy profilozott alkalmazás több szála hívja meg ugyanazt a metódust/függvényt egyszerre. Ilyen esetekben a profilkészítő több FunctionIDMapper visszahívást is kaphat ugyanahhoz FunctionIDa fájlhoz. A profilkészítőnek biztosnak kell lennie abban, hogy ugyanazokat az értékeket adja vissza ebből a visszahívásból, amikor ugyanazzal a értékkel többször is meghívják.FunctionID

Követelmények

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

Fejléc: CorProf.idl

Könyvtár: CorGuids.lib

.NET-keretrendszer verziók: 1.0 óta elérhető

Lásd még