Sdílet prostřednictvím


ICorProfilerInfo2::GetFunctionInfo2 Method

Získá nadřazenou třídu, token metadat a ClassID argument každého typu, pokud existuje, funkce.

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 [v] ID funkce, pro kterou chcete získat nadřazenou třídu a další informace.

frameInfo [v] COR_PRF_FRAME_INFO Hodnota, která odkazuje na informace o rámečku zásobníku.

pClassId [ven] Ukazatel na nadřazenou třídu funkce.

pModuleId [ven] Ukazatel na modul, ve kterém je definována nadřazená třída funkce.

pToken [ven] Ukazatel na token metadat pro funkci.

cTypeArgs [v] Velikost typeArgs pole.

pcTypeArgs [ven] Ukazatel na celkový počet ClassID hodnot.

typeArgs [ven] Jedná se o ClassID pole hodnot, z nichž každý je ID argumentu typu funkce. Když metoda vrátí, typeArgs bude obsahovat některé nebo všechny ClassID hodnoty.

Remarks

Kód profileru může volat ICorProfilerInfo::GetModuleMetaData získat rozhraní metadat pro daný modul. Token metadat vrácený do umístění, na které pToken odkazuje, se pak dá použít pro přístup k metadatům funkce.

ID třídy a argumenty typu vrácené prostřednictvím pClassId parametrů závisí typeArgs na hodnotě předané v parametru frameInfo , jak je znázorněno v následující tabulce.

Hodnota parametru frameInfo Result
COR_PRF_FRAME_INFO Hodnota získaná z zpětného FunctionEnter2 volání Hodnota ClassID, vrácená v umístění, na které pClassIdodkazuje , a všechny argumenty typu vrácené v typeArgs matici budou přesné.
Zdroj COR_PRF_FRAME_INFO , který byl získán z jiného zdroje než FunctionEnter2 zpětného volání Přesné ClassID argumenty a argumenty typu nelze určit. To znamená, že ClassID může mít hodnotu null a některé argumenty typu se můžou vrátit jako Object.
Zero Přesné ClassID argumenty a argumenty typu nelze určit. To znamená, že ClassID může mít hodnotu null a některé argumenty typu se můžou vrátit jako Object.

Po GetFunctionInfo2 vrácení musíte ověřit, že typeArgs vyrovnávací paměť byla dostatečně velká, aby obsahovala všechny ClassID hodnoty. Chcete-li to provést, porovnejte hodnotu, která pcTypeArgs odkazuje na hodnotu parametru cTypeArgs . Pokud pcTypeArgs odkazuje na hodnotu, která je větší než cTypeArgs dělená velikostí ClassID hodnoty, přidělte větší pcTypeArgs vyrovnávací paměť, aktualizujte cTypeArgs novou, větší velikost a znovu volejte GetFunctionInfo2 .

Případně můžete nejprve zavolat GetFunctionInfo2 vyrovnávací paměť s nulovou délkou pcTypeArgs , abyste získali správnou velikost vyrovnávací paměti. Potom můžete velikost vyrovnávací paměti nastavit na hodnotu vrácenou vydělenou pcTypeArgs velikostí ClassID hodnoty a znovu zavolat GetFunctionInfo2 .

Requirements

Platformy: Viz požadavky na systém.

Záhlaví: CorProf.idl, CorProf.h

Library: CorGuids.lib

verze rozhraní .NET Framework: k dispozici od verze 2.0

See also