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


ICorProfilerInfo2::GetFunctionInfo2 Method

Lekéri egy függvény szülőosztályát, metaadat-jogkivonatát és ClassID minden típusargumentumát, ha van ilyen.

Syntax

HRESULT GetFunctionInfo2(
    [in]  FunctionID funcId,
    [in]  COR_PRF_FRAME_INFO frameInfo,
    [out] ClassID *pClassId,
    [out] ModuleID *pModuleId,
    [out] mdToken *pToken,
    [in]  ULONG32 cTypeArgs,
    [out] ULONG32 *pcTypeArgs,
    [out] ClassID typeArgs[]);

Parameters

funcId [in] Annak a függvénynek az azonosítója, amelyhez le szeretné kapni a szülőosztályt és más információkat.

frameInfo [in] Egy COR_PRF_FRAME_INFO veremkerettel kapcsolatos információkra ható érték.

pClassId [kifelé] A függvény szülőosztályára mutató mutató.

pModuleId [kifelé] Mutató arra a modulra, amelyben a függvény szülőosztálya definiálva van.

pToken [kifelé] Mutató a függvény metaadat-jogkivonatára.

cTypeArgs [in] A tömb mérete typeArgs .

pcTypeArgs [kifelé] Mutató az értékek teljes számára ClassID .

typeArgs [kifelé] Értékek tömbje ClassID , amelyek mindegyike a függvény típusargumentumának azonosítója. Amikor a metódus visszatér, typeArgs az értékek egy részét vagy egészét ClassID tartalmazza.

Remarks

A profilozó kódja meghívhatja az ICorProfilerInfo::GetModuleMetaData metódust egy adott modul metaadat-felületének lekéréséhez. A hivatkozott helyre visszaadott pToken metaadat-jogkivonat ezután a függvény metaadatainak eléréséhez használható.

A paraméterekkel pClassIdtypeArgs visszaadott osztályazonosító és típusargumentumok a paraméterben frameInfo átadott értéktől függnek, ahogyan az az alábbi táblázatban is látható.

frameInfo A paraméter értéke Result
Visszahívásból COR_PRF_FRAME_INFOFunctionEnter2 kapott érték A ClassIDtömbben visszaadott , a hivatkozott helyen visszaadott és a typeArgs tömbben visszaadott pClassIdösszes típusargumentum pontos lesz.
A COR_PRF_FRAME_INFO visszahívástól eltérő FunctionEnter2 forrásból beszerzett A pontos ClassID és típusargumentumok nem határozhatók meg. Ez azt is jelentheti, hogy a ClassID függvény null értékű, és egyes típusargumentumok a következőképpen Objecttérhetnek vissza.
Zero A pontos ClassID és típusargumentumok nem határozhatók meg. Ez azt is jelentheti, hogy a ClassID függvény null értékű, és egyes típusargumentumok a következőképpen Objecttérhetnek vissza.

A visszatérés után GetFunctionInfo2 ellenőriznie kell, hogy a typeArgs puffer elég nagy volt-e ahhoz, hogy az ClassID összes értéket tartalmazza. Ehhez hasonlítsa össze azt az értéket, amely pcTypeArgs a paraméter értékével cTypeArgs mutat. Ha pcTypeArgs olyan értékre mutat, amely nagyobb, mint cTypeArgs egy ClassID érték mérete, foglaljon le egy nagyobb pcTypeArgs puffert, frissítsen cTypeArgs az új, nagyobb mérettel, és hívjon GetFunctionInfo2 újra.

Másik lehetőségként meghívhat GetFunctionInfo2 egy nulla hosszúságú pcTypeArgs puffert a megfelelő pufferméret beszerzéséhez. Ezután beállíthatja a pufferméretet az érték méretével ClassID osztva visszaadott pcTypeArgs értékre, majd újra hívhatjaGetFunctionInfo2.

Requirements

Platformok: Lásd a rendszerkövetelményeket.

Fejléc: CorProf.idl, CorProf.h

Library: CorGuids.lib

.NET-keretrendszerverziók: 2.0 óta érhető el

See also