ICorProfilerInfo2::GetFunctionInfo2, metod
Hämtar den överordnade klassen, metadatatoken och ClassID
för varje typargument, om det finns, för en funktion.
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[]);
Parametrar
funcId
[in] ID:t för funktionen som den överordnade klassen ska hämtas för och annan information.
frameInfo
[in] Ett COR_PRF_FRAME_INFO
värde som pekar på information om en stackram.
pClassId
[ut] En pekare till funktionens överordnade klass.
pModuleId
[ut] En pekare till modulen där funktionens överordnade klass definieras.
pToken
[ut] En pekare till funktionens metadatatoken.
cTypeArgs
[in] Matrisens typeArgs
storlek.
pcTypeArgs
[ut] En pekare till det totala antalet ClassID
värden.
typeArgs
[ut] En matris med ClassID
värden, som var och en är ID:t för ett typargument för funktionen. När metoden returneras typeArgs
innehåller vissa eller alla ClassID
värden.
Kommentarer
Profilerarkoden kan anropa ICorProfilerInfo::GetModuleMetaData för att hämta ett metadatagränssnitt för en viss modul. Metadatatoken som returneras till den plats som refereras av pToken
kan sedan användas för att komma åt metadata för funktionen.
Klass-ID:t och typargumenten som returneras via parametrarna pClassId
och typeArgs
beror på det värde som skickas i parametern frameInfo
, enligt följande tabell.
Parameterns frameInfo värde |
Resultat |
---|---|
Ett COR_PRF_FRAME_INFO värde som hämtades från ett FunctionEnter2 återanrop |
, ClassID som returneras på den plats som refereras av pClassId , och alla typargument, som returneras i matrisen typeArgs , kommer att vara exakta. |
En COR_PRF_FRAME_INFO som hämtades från en annan källa än ett FunctionEnter2 återanrop |
Det går inte att fastställa exakta ClassID argument och typargument. Det kan alltså ClassID vara null och vissa typargument kan komma tillbaka som Object. |
Noll | Det går inte att fastställa exakta ClassID argument och typargument. Det kan alltså ClassID vara null och vissa typargument kan komma tillbaka som Object. |
När GetFunctionInfo2
du har returnerat måste du kontrollera att bufferten typeArgs
var tillräckligt stor för att innehålla alla ClassID
värden. Det gör du genom att jämföra värdet som pcTypeArgs
pekar på med värdet för parametern cTypeArgs
. Om pcTypeArgs
pekar på ett värde som är större än cTypeArgs
dividerat med storleken på ett ClassID
värde allokerar du en större pcTypeArgs
buffert, uppdaterar cTypeArgs
med den nya, större storleken och anropar GetFunctionInfo2
igen.
Du kan också först anropa GetFunctionInfo2
med en buffert med noll längd pcTypeArgs
för att få rätt buffertstorlek. Du kan sedan ange buffertstorleken till det värde som returneras dividerat pcTypeArgs
med storleken på ett ClassID
värde och anropa GetFunctionInfo2
igen.
Krav
Plattformar: Se Systemkrav.
Huvudet: CorProf.idl, CorProf.h
Bibliotek: CorGuids.lib
.NET Framework versioner: Tillgänglig sedan 2.0