Udostępnij za pośrednictwem


ICorProfilerInfo2::GetFunctionInfo2 — Metoda

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

Składnia

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

frameInfo
[w] 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
[w] Rozmiar tablicy typeArgs .

pcTypeArgs
[out] Wskaźnik do całkowitej ClassID liczby 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.

Uwagi

Kod profilera może wywołać metodę ICorProfilerInfo::GetModuleMetaData w celu uzyskania interfejsu metadanych dla danego modułu. Token metadanych zwrócony do lokalizacji, do którego się odwołuje pToken , może następnie służyć do uzyskiwania dostępu do metadanych dla 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 Wynik
COR_PRF_FRAME_INFO Wartość uzyskana z wywołania zwrotnego FunctionEnter2 Element ClassID, zwrócony w lokalizacji przywoływanej przez pClassIdelement , a 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 ClassID argumenty 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 ClassID argumenty 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ść pcTypeArgs wskazującą wartość z wartością parametru cTypeArgs . Jeśli pcTypeArgs wskazuje wartość większą niż cTypeArgs dzielona przez rozmiar wartości, przydziel większy pcTypeArgs bufor, zaktualizuj cTypeArgs przy użyciu nowego, większego ClassID 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 według rozmiaru ClassID wartości, a następnie wywołać GetFunctionInfo2 ponownie.

Wymagania

Platformy: Zobacz Wymagania systemowe.

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

Biblioteki: CorGuids.lib

.NET Framework wersje: dostępne od wersji 2.0

Zobacz też