ICorProfilerInfo2::GetFunctionInfo2-Methode

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

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

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

typeArgs
[out] Ein Array von ClassID-Werten, von denen jedes die ID eines Typarguments der Funktion darstellt. Nach Rückgabe der Methode enthält typeArgs einige oder alle der ClassID-Werte.

Bemerkungen

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

Die Klassen-ID und die Typargumente, die über die Parameter pClassId und typeArgs zurückgegeben werden, hängen vom im Parameter frameInfo übergebenen Wert ab (wie in der folgenden Tabelle gezeigt).

Der Wert des Parameters frameInfo. Ergebnis
Ein COR_PRF_FRAME_INFO-Wert, der von einem FunctionEnter2-Rückruf abgerufen wurde. Die ClassID, die an den Speicherort zurückgegeben wird, auf den pClassId verweist, sowie alle Typargumente, die im Array typeArgs zurückgegeben werden, sind genau.
Ein COR_PRF_FRAME_INFO-Objekt, das aus einer anderen Quelle als einem FunctionEnter2-Rückruf abgerufen wurde. Die genaue ClassID und Typargumente können nicht bestimmt werden. Dies bedeutet ggf., dass ClassID NULL ist und einige Typargumente als Object zurückgegeben werden.
Null Die genaue ClassID und Typargumente können nicht bestimmt werden. Dies bedeutet ggf., dass ClassID NULL ist und einige Typargumente als Object zurückgegeben werden.

Nachdem GetFunctionInfo2 zurückgegeben wurde, müssen Sie sicherstellen, dass der typeArgs-Puffer groß genug war, um alle ClassID-Werte aufzunehmen. Vergleichen Sie zu diesem Zweck den Wert, auf den pcTypeArgs verweist, mit dem Wert des Parameters cTypeArgs. Wenn pcTypeArgs auf einen Wert verweist, der größer als cTypeArgs geteilt 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 dann GetFunctionInfo2 erneut auf.

Alternativ können Sie zuerst GetFunctionInfo2 mit einem pcTypeArgs-Puffer der Länge 0 (NULL) aufrufen, um die richtige Puffergröße zu ermitteln. Sie können dann die Größe des Puffers auf den in pcTypeArgs zurückgegebenen Wert dividiert durch die Größe eines ClassID-Werts festlegen und GetFunctionInfo2 erneut aufrufen.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: CorProf.idl, CorProf.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: Seit 2.0 verfügbar.

Siehe auch