Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Hämtar den överordnade klassen, metadatatoken och ClassID argumentet för varje typ, 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[]);
Parameters
funcId [i] ID:t för den funktion som den överordnade klassen och annan information ska hämtas för.
frameInfo [i] 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 metadatatoken för funktionen.
cTypeArgs [i] 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 för ett typargument för funktionen. När metoden returnerar typeArgs innehåller vissa eller alla ClassID värden.
Remarks
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 och typargument 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 |
Result |
|---|---|
Ett COR_PRF_FRAME_INFO värde som hämtades från ett FunctionEnter2 återanrop |
, ClassIDsom 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 vill: ClassID kan vara null och vissa typargument kan komma tillbaka som Object. |
| Zero | Det går inte att fastställa exakta ClassID argument och typargument. Det vill: ClassID kan 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.
Requirements
Plattformar: Se Systemkrav.
Rubrik: CorProf.idl, CorProf.h
Library: CorGuids.lib
.NET Framework-versioner: tillgänglig sedan 2.0