Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ottiene la classe padre, il token di metadati e l'oggetto ClassID di ogni argomento di tipo, se presente, di una funzione.
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] ID della funzione per cui ottenere la classe padre e altre informazioni.
frameInfo [in] Valore COR_PRF_FRAME_INFO che punta a informazioni su uno stack frame.
pClassId [out] Puntatore alla classe padre della funzione.
pModuleId [out] Puntatore al modulo in cui è definita la classe padre della funzione.
pToken [out] Puntatore al token di metadati per la funzione.
cTypeArgs [in] Dimensione della typeArgs matrice.
pcTypeArgs [out] Puntatore al numero totale di ClassID valori.
typeArgs [out] Matrice di ClassID valori, ognuno dei quali è l'ID di un argomento di tipo della funzione. Quando termina, typeArgs il metodo conterrà alcuni o tutti i ClassID valori.
Remarks
Il codice del profiler può chiamare ICorProfilerInfo::GetModuleMetaData per ottenere un'interfaccia di metadati per un determinato modulo. Il token di metadati restituito alla posizione a cui fa pToken riferimento può quindi essere usato per accedere ai metadati per la funzione.
L'ID classe e gli argomenti di tipo restituiti tramite i pClassId parametri e typeArgs dipendono dal valore passato nel frameInfo parametro , come illustrato nella tabella seguente.
Valore del parametro frameInfo |
Result |
|---|---|
Valore COR_PRF_FRAME_INFO ottenuto da un FunctionEnter2 callback |
L'oggetto ClassID, restituito nella posizione a cui fa pClassIdriferimento , e tutti gli argomenti di tipo, restituiti nella typeArgs matrice, saranno esatti. |
Oggetto COR_PRF_FRAME_INFO ottenuto da un'origine diversa da un FunctionEnter2 callback |
Non è possibile determinare gli argomenti esatti ClassID e di tipo. Ovvero, ClassID potrebbe essere Null e alcuni argomenti di tipo potrebbero tornare come Object. |
| Zero | Non è possibile determinare gli argomenti esatti ClassID e di tipo. Ovvero, ClassID potrebbe essere Null e alcuni argomenti di tipo potrebbero tornare come Object. |
Al GetFunctionInfo2 termine, è necessario verificare che il typeArgs buffer sia sufficientemente grande da contenere tutti i ClassID valori. A tale scopo, confrontare il valore a cui pcTypeArgs punta con il valore del cTypeArgs parametro . Se pcTypeArgs punta a un valore maggiore di quello cTypeArgs diviso per le dimensioni di un ClassID valore, allocare un buffer più grande pcTypeArgs , aggiornarlo cTypeArgs con le nuove dimensioni maggiori e chiamare GetFunctionInfo2 di nuovo.
In alternativa, è possibile chiamare GetFunctionInfo2 prima con un buffer di lunghezza pcTypeArgs zero per ottenere le dimensioni corrette del buffer. È quindi possibile impostare le dimensioni del buffer sul valore restituito in pcTypeArgs diviso per le dimensioni di un ClassID valore e chiamare GetFunctionInfo2 di nuovo.
Requirements
Piattaforme: vedere Requisiti di sistema.
Intestazione: CorProf.idl, CorProf.h
Library: CorGuids.lib
versioni di .NET Framework: disponibili dalla versione 2.0