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, 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ő