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 pClassId element , 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