ICorProfilerInfo2::GetFunctionFromTokenAndTypeArgs-Methode

Ruft die FunctionID einer Funktion mithilfe des angegebenen Metadatentokens mit der Klasse und ClassID-Werte beliebiger Typargumente ab.

Syntax

HRESULT GetFunctionFromTokenAndTypeArgs(  
    [in] ModuleID moduleID,  
    [in] mdMethodDef funcDef,  
    [in] ClassID classId,  
    [in] ULONG32 cTypeArgs,  
    [in, size_is(cTypeArgs)] ClassID typeArgs[],  
    [out] FunctionID* pFunctionID);  

Parameter

moduleID
[in] Die ID des Moduls, in dem sich die Funktion befindet.

funcDef
[in] Ein mdMethodDef-Metadatentoken, das auf die Funktion verweist.

classId
[in] Die ID der Klasse, die die Funktion enthält.

cTypeArgs
[in] Die Anzahl der Typparameter für die angegebene Funktion. Dieser Wert muss für nicht generische Funktionen 0 sein.

typeArgs
[in] Ein Array von ClassID-Werten, von denen jeder ein Argument der Funktion ist. Der Wert von typeArgs kann NULL sein, wenn cTypeArgs auf 0 festgelegt ist.

pFunctionID
[out] Ein Zeiger auf die FunctionID für die angegebene Funktion.

Hinweise

Das Aufrufen der GetFunctionFromTokenAndTypeArgs-Methode mit mdMethodRef-Metadaten anstelle eines mdMethodDef-Metadatentokens kann zu unvorhersehbaren Ergebnissen führen. Aufrufer sollten mdMethodRef bei der Übergabe in mdMethodDef auflösen.

Wenn die Funktion nicht bereits geladen ist, wird durch Aufrufen von GetFunctionFromTokenAndTypeArgs der Ladevorgang ausgelöst. In vielen Kontexten ist dies ein gefährlicher Vorgang. Beispielsweise kann das Aufrufen dieser Methode beim Laden von Modulen oder Typen zu einer Endlosschleife führen, wenn die Runtime versucht, Elemente in Ringabhängigkeit zu laden.

Im Allgemeinen wird von der Verwendung von GetFunctionFromTokenAndTypeArgs abgeraten. Wenn Profiler an Ereignissen für eine bestimmte Funktion interessiert sind, sollten sie ModuleID und mdMethodDef dieser Funktion speichern und anhand von ICorProfilerInfo2::GetFunctionInfo2 überprüfen, ob eine bestimmte FunctionID der gewünschten Funktion entspricht.

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