Udostępnij przez


ICorProfilerInfo2::GetFunctionInfo2 Method

Pobiera klasę nadrzędną, token metadanych i ClassID argument każdego typu, jeśli istnieje, funkcji.

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] Identyfikator funkcji, dla której ma być pobierana klasa nadrzędna i inne informacje.

frameInfo [in] Wartość wskazująca COR_PRF_FRAME_INFO informacje o ramce stosu.

pClassId [out] Wskaźnik do klasy nadrzędnej funkcji.

pModuleId [out] Wskaźnik do modułu, w którym zdefiniowano klasę nadrzędną funkcji.

pToken [out] Wskaźnik do tokenu metadanych dla funkcji.

cTypeArgs [in] Rozmiar tablicy typeArgs .

pcTypeArgs [out] Wskaźnik do łącznej liczby ClassID wartości.

typeArgs [out] Tablica ClassID wartości, z których każda jest identyfikatorem argumentu typu funkcji. Gdy metoda zwróci wartość , typeArgs będzie zawierać niektóre lub wszystkie ClassID wartości.

Remarks

Kod profilera może wywołać metodę ICorProfilerInfo::GetModuleMetaData w celu uzyskania interfejsu metadanych dla danego modułu. Token metadanych zwrócony do lokalizacji, pToken do którego się odwołuje, może służyć do uzyskiwania dostępu do metadanych funkcji.

Identyfikator klasy i argumenty typu zwracane za pośrednictwem pClassId parametrów i typeArgs zależą od wartości przekazanej w parametrze frameInfo , jak pokazano w poniższej tabeli.

Wartość parametru frameInfo Result
COR_PRF_FRAME_INFO Wartość uzyskana z wywołania zwrotnego FunctionEnter2 Element ClassID, zwrócony w lokalizacji, do których odwołuje się pClassIdelement , i wszystkie argumenty typu zwrócone w tablicy typeArgs będą dokładne.
Element COR_PRF_FRAME_INFO uzyskany ze źródła innego FunctionEnter2 niż wywołanie zwrotne Nie można określić dokładnych ClassID argumentów i typów. Oznacza to, że argumenty ClassID mogą mieć wartość null, a niektóre argumenty typu mogą wrócić jako Object.
Zero Nie można określić dokładnych ClassID argumentów i typów. Oznacza to, że argumenty ClassID mogą mieć wartość null, a niektóre argumenty typu mogą wrócić jako Object.

Po GetFunctionInfo2 powrocie należy sprawdzić, czy typeArgs bufor był wystarczająco duży, aby zawierał wszystkie ClassID wartości. W tym celu porównaj wartość wskazującą pcTypeArgs wartość z wartością parametru cTypeArgs . Jeśli pcTypeArgs wskazuje wartość większą niż cTypeArgs dzielona przez rozmiar ClassID wartości, przydziel większy pcTypeArgs bufor, zaktualizuj cTypeArgs go przy użyciu nowego, większego rozmiaru i wywołaj GetFunctionInfo2 ponownie.

Alternatywnie można najpierw wywołać GetFunctionInfo2 bufor o zerowej długości pcTypeArgs , aby uzyskać prawidłowy rozmiar buforu. Następnie można ustawić rozmiar buforu na wartość zwróconą w pcTypeArgs podziale przez rozmiar ClassID wartości i wywołać GetFunctionInfo2 ponownie.

Requirements

Platformy: zobacz Wymagania systemowe.

Nagłówek: CorProf.idl, CorProf.h

Library: CorGuids.lib

wersje programu .NET Framework: dostępne od wersji 2.0

See also