Delen via


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

Zie ook