Freigeben über


ICorProfilerInfo2::GetFunctionInfo2 Method

Ruft die übergeordnete Klasse, das Metadatentoken und das ClassID jedes Typarguments ab, falls vorhanden, einer 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 [in] Die ID der Funktion, für die die übergeordnete Klasse und andere Informationen abgerufen werden sollen.

frameInfo [in] Ein COR_PRF_FRAME_INFO Wert, der auf Informationen zu einem Stapelrahmen verweist.

pClassId [out] Ein Zeiger auf die übergeordnete Klasse der Funktion.

pModuleId [out] Ein Zeiger auf das Modul, in dem die übergeordnete Klasse der Funktion definiert ist.

pToken [out] Ein Zeiger auf das Metadatentoken für die Funktion.

cTypeArgs [in] Die Größe des typeArgs Arrays.

pcTypeArgs [out] Ein Zeiger auf die Gesamtanzahl der ClassID Werte.

typeArgs [out] Ein Array von ClassID Werten, von denen jede die ID eines Typarguments der Funktion ist. Wenn die Methode zurückgegeben wird, typeArgs enthalten sie einige oder alle ClassID Werte.

Remarks

Der Profilercode kann ICorProfilerInfo::GetModuleMetaData aufrufen, um eine Metadatenschnittstelle für ein bestimmtes Modul abzurufen. Das Metadatentoken, das an den Speicherort zurückgegeben wird, auf den verwiesen pToken wird, kann dann für den Zugriff auf die Metadaten für die Funktion verwendet werden.

Die Klassen-ID und Typargumente, die über die pClassId Und-Parameter typeArgs zurückgegeben werden, hängen vom Wert ab, der frameInfo im Parameter übergeben wird, wie in der folgenden Tabelle dargestellt.

Der Wert des Parameters frameInfo. Result
Ein COR_PRF_FRAME_INFO Wert, der aus einem FunctionEnter2 Rückruf abgerufen wurde Die ClassIDin der Position zurückgegebene Position, auf die verwiesen pClassIdwird, und alle Typargumente, die typeArgs im Array zurückgegeben werden, sind genau.
Eine COR_PRF_FRAME_INFO , die von einer anderen Quelle als einem FunctionEnter2 Rückruf abgerufen wurde Die genauen ClassID Argumente und Typargumente können nicht bestimmt werden. Das heißt, dies ClassID kann null sein, und einige Typargumente können als zurückgegeben werden Object.
Zero Die genauen ClassID Argumente und Typargumente können nicht bestimmt werden. Das heißt, dies ClassID kann null sein, und einige Typargumente können als zurückgegeben werden Object.

Nach GetFunctionInfo2 dem Zurückgeben müssen Sie überprüfen, ob der typeArgs Puffer groß genug war, um alle ClassID Werte zu enthalten. Vergleichen Sie dazu den Wert, pcTypeArgs der mit dem Wert des cTypeArgs Parameters verweist. Wenn pcTypeArgs auf einen Wert verweist, der größer als cTypeArgs durch die Größe eines ClassID Werts ist, weisen Sie einen größeren pcTypeArgs Puffer zu, aktualisieren cTypeArgs Sie mit der neuen, größeren Größe und rufen Sie es erneut auf GetFunctionInfo2 .

Alternativ können Sie zuerst einen Puffer der Länge GetFunctionInfo2 Null aufrufenpcTypeArgs, um die richtige Puffergröße abzurufen. Anschließend können Sie die Puffergröße auf den zurückgegebenen Wert festlegen, dividiert pcTypeArgs durch die Größe eines ClassID Werts, und erneut aufrufen GetFunctionInfo2 .

Requirements

Plattformen: Informationen finden Sie unter Systemanforderungen.

Kopfball: CorProf.idl, CorProf.h

Library: CorGuids.lib

.NET Framework-Versionen: seit 2.0 verfügbar

See also