Freigeben über


ICorProfilerInfo2::GetFunctionInfo2-Methode

Aktualisiert: November 2007

Ruft die übergeordnete Klasse, das Metadatentoken und die ClassID jedes Typarguments (falls vorhanden) einer Funktion ab.

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[]);

Parameter

  • 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 über einen 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 wird.

  • 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 Gesamtzahl der ClassID-Werte.

  • typeArgs
    [out] Ein Array von ClassID-Werten, von denen jeder die ID eines Typarguments der Funktion darstellt. Nach dem Beenden der Methode enthält typeArgs eine oder alle ClassID-Werte.

Hinweise

Der Profilercode kann ICorProfilerInfo::GetModuleMetaData zum Abrufen einer Metadaten-Schnittstelle für ein bestimmtes Modul aufrufen. Das Metadatentoken, das an den Speicherort zurückgegeben wird, auf den von pToken verwiesen wird, kann dann für den Zugriff auf die Metadaten für die Funktion verwendet werden.

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

Wert des frameInfo-Parameters

Ergebnis

Ein COR_PRF_FRAME_INFO-Wert, der aus einem FunctionEnter2-Rückruf abgerufen wurde

Die ClassID, die an den Speicherort zurückgegeben wird, auf die von pClassId verwiesen wird, sowie alle Typargumente, die im typeArgs-Array zurückgegeben werden, sind exakt.

Ein COR_PRF_FRAME_INFO, der aus einer anderen Quelle als ein FunctionEnter2-Rückruf abgerufen wurde

Die genaue ClassID und Typargumente können nicht bestimmt werden. Das heißt, die ClassID kann NULL sein, und einige Typargumente können als Object zurückgegeben werden.

Zero

Die genaue ClassID und Typargumente können nicht bestimmt werden. Das heißt, die ClassID kann NULL sein, und einige Typargumente können als Object zurückgegeben werden.

Nachdem GetFunctionInfo2 beendet wurde, müssen Sie sicherstellen, dass der typeArgs-Puffer groß genug war, um alle ClassID-Werte aufzunehmen. Vergleichen Sie hierzu den Wert, auf den pcTypeArgs verweist, mit dem Wert des cTypeArgs-Parameters. Wenn pcTypeArgs auf einen Wert verweist, der größer als cTypeArgs dividiert durch die Größe eines ClassID-Werts ist, weisen Sie einen größeren pcTypeArgs-Puffer zu, aktualisieren Sie cTypeArgs mit der neuen Größe, und rufen Sie GetFunctionInfo2 erneut auf.

Sie können auch zunächst GetFunctionInfo2 mit einem pcTypeArgs-Puffer der Größe 0 (null) aufrufen, um die richtige Puffergröße zu ermitteln. Sie können dann die Puffergröße auf den von pcTypeArgs zurückgegebenen Wert dividiert durch die Größe eines ClassID-Werts festlegen und GetFunctionInfo2 erneut aufrufen.

Weitere Informationen über diese beiden Ansätze finden Sie unter Vom Aufrufer reservierte Puffer in der Profilerstellungs-API.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: CorProf.h

Bibliothek: CorProf.idl

.NET Framework-Versionen: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Siehe auch

Referenz

ICorProfilerInfo

ICorProfilerInfo2

Weitere Ressourcen

Profilerstellungsschnittstellen

Profilerstellung (Referenz zur nicht verwalteten API)