Methode ICorProfilerInfo2::GetFunctionInfo2
Hiermee haalt u de bovenliggende klasse, het metagegevenstoken en de ClassID
van elk typeargument op, indien aanwezig, van een functie.
Syntaxis
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] De id van de functie waarvoor de bovenliggende klasse en andere informatie moeten worden opgehaald.
frameInfo
[in] Een COR_PRF_FRAME_INFO
waarde die verwijst naar informatie over een stackframe.
pClassId
[uit] Een verwijzing naar de bovenliggende klasse van de functie.
pModuleId
[uit] Een verwijzing naar de module waarin de bovenliggende klasse van de functie is gedefinieerd.
pToken
[uit] Een verwijzing naar het metagegevenstoken voor de functie.
cTypeArgs
[in] De grootte van de typeArgs
matrix.
pcTypeArgs
[uit] Een verwijzing naar het totale aantal ClassID
waarden.
typeArgs
[uit] Een matrix van ClassID
waarden, die elk de id van een typeargument van de functie is. Wanneer de methode retourneert, typeArgs
bevat deze enkele of alle ClassID
waarden.
Opmerkingen
De profilercode kan ICorProfilerInfo::GetModuleMetaData aanroepen om een metagegevensinterface voor een bepaalde module te verkrijgen. Het metagegevenstoken dat wordt geretourneerd naar de locatie waarnaar wordt verwezen door pToken
, kan vervolgens worden gebruikt voor toegang tot de metagegevens voor de functie.
De klasse-id en typeargumenten die worden geretourneerd via de pClassId
parameters en typeArgs
, zijn afhankelijk van de waarde die wordt doorgegeven in de frameInfo
parameter, zoals wordt weergegeven in de volgende tabel.
Waarde van de frameInfo parameter |
Resultaat |
---|---|
Een COR_PRF_FRAME_INFO waarde die is verkregen uit een FunctionEnter2 callback |
De ClassID , die wordt geretourneerd op de locatie waarnaar wordt verwezen door pClassId , en alle typeargumenten die in de typeArgs matrix worden geretourneerd, zijn exact. |
Een COR_PRF_FRAME_INFO die is verkregen van een andere bron dan een FunctionEnter2 callback |
De exacte ClassID argumenten en typeargumenten kunnen niet worden bepaald. Dat wil dus dat de ClassID waarde null kan zijn en dat sommige typeargumenten kunnen worden geretourneerd als Object. |
Nul | De exacte ClassID argumenten en typeargumenten kunnen niet worden bepaald. Dat wil dus dat de ClassID waarde null kan zijn en dat sommige typeargumenten kunnen worden geretourneerd als Object. |
Na GetFunctionInfo2
het retourneren moet u controleren of de typeArgs
buffer groot genoeg is om alle ClassID
waarden te bevatten. Hiervoor vergelijkt u de waarde die pcTypeArgs
naar verwijst met de waarde van de cTypeArgs
parameter. Als pcTypeArgs
verwijst naar een waarde die groter is dan cTypeArgs
gedeeld door de grootte van een ClassID
waarde, wijst u een grotere pcTypeArgs
buffer toe, werkt cTypeArgs
u bij met het nieuwe, grotere formaat en roept u opnieuw aan GetFunctionInfo2
.
U kunt ook eerst aanroepen GetFunctionInfo2
met een buffer met de lengte pcTypeArgs
nul om de juiste buffergrootte te verkrijgen. Vervolgens kunt u de buffergrootte instellen op de waarde die wordt geretourneerd in pcTypeArgs
gedeeld door de grootte van een ClassID
waarde en opnieuw aanroepen GetFunctionInfo2
.
Vereisten
Platforms: Zie Systeemvereisten.
Header: CorProf.idl, CorProf.h
Bibliotheek: CorGuids.lib
.NET Framework versies: beschikbaar sinds 2.0