ICorProfilerInfo2::GetFunctionInfo2 – metoda
Získá nadřazenou třídu, token metadat a ClassID
argument každého typu, pokud existuje, funkce.
Syntaxe
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[]);
Parametry
funcId
[v] ID funkce, pro kterou chcete získat nadřazenou třídu a další informace.
frameInfo
[v] Hodnota COR_PRF_FRAME_INFO
, která odkazuje na informace o rámci zásobníku.
pClassId
[out] Ukazatel na nadřazenou třídu funkce.
pModuleId
[out] Ukazatel na modul, ve kterém je definována nadřazená třída funkce.
pToken
[out] Ukazatel na token metadat pro funkci.
cTypeArgs
[v] Velikost typeArgs
pole.
pcTypeArgs
[out] Ukazatel na celkový počet ClassID
hodnot.
typeArgs
[out] Pole ClassID
hodnot, z nichž každá představuje ID argumentu typu funkce. Když metoda vrátí, typeArgs
bude obsahovat některé nebo všechny ClassID
hodnoty.
Poznámky
Kód profileru může volat ICorProfilerInfo::GetModuleMetaData k získání rozhraní metadat pro daný modul. Token metadat vrácený do umístění, na které odkazuje, pToken
se pak dá použít pro přístup k metadatům funkce.
Id třídy a argumenty typu, které jsou vráceny prostřednictvím pClassId
parametrů a typeArgs
, závisí na hodnotě, která je předána v parametru frameInfo
, jak je znázorněno v následující tabulce.
Hodnota parametru frameInfo |
Výsledek |
---|---|
Hodnota COR_PRF_FRAME_INFO získaná ze zpětného FunctionEnter2 volání |
Hodnoty ClassID vrácené v umístění, na které pClassId odkazuje , a všechny argumenty typu vrácené v typeArgs poli budou přesné. |
A COR_PRF_FRAME_INFO , který byl získán z jiného zdroje než FunctionEnter2 zpětné volání |
ClassID Přesné argumenty a typu nelze určit. To znamená, ClassID že hodnota může být null a některé argumenty typu se můžou vrátit jako Object. |
Žádnou | ClassID Přesné argumenty a typu nelze určit. To znamená, ClassID že hodnota může být null a některé argumenty typu se můžou vrátit jako Object. |
Po GetFunctionInfo2
vrácení je nutné ověřit, že typeArgs
vyrovnávací paměť byla dostatečně velká, aby obsahovala ClassID
všechny hodnoty. Provedete to tak, že porovnáte hodnotu, na kterou odkazujete pcTypeArgs
, s hodnotou parametru cTypeArgs
. Pokud pcTypeArgs
odkazuje na hodnotu, která je větší než cTypeArgs
vydělená velikostí ClassID
hodnoty, přidělte větší pcTypeArgs
vyrovnávací paměť, aktualizujte cTypeArgs
novou, větší velikost a zavolejte GetFunctionInfo2
znovu.
Případně můžete nejprve volat GetFunctionInfo2
vyrovnávací paměť nulové délky pcTypeArgs
, abyste získali správnou velikost vyrovnávací paměti. Pak můžete nastavit velikost vyrovnávací paměti na vrácenou hodnotu vydělenou pcTypeArgs
velikostí ClassID
hodnoty a volat GetFunctionInfo2
znovu.
Požadavky
Platformy: Viz Požadavky na systém.
Záhlaví: CorProf.idl, CorProf.h
Knihovny: CorGuids.lib
Verze rozhraní .NET Framework: K dispozici od verze 2.0