Condividi tramite


Metodo ICorProfilerInfo2::GetClassIDInfo2

Ottiene il modulo padre e il token di metadati della classe generica specificata, il valore ClassID della relativa classe padre e il valore ClassID per ciascun argomento di tipo della classe, se presente.

HRESULT GetClassIDInfo2(
    [in]  ClassID classId,
    [out] ModuleID *pModuleId,
    [out] mdTypeDef *pTypeDefToken,
    [out] ClassID *pParentClassId,
    [in]  ULONG32 cNumTypeArgs,
    [out] ULONG32 *pcNumTypeArgs,
    [out] ClassID typeArgs[]);

Parametri

  • classId
    [in] ID della classe per la quale verranno recuperate le informazioni.

  • pModuleId
    [out] Puntatore all'ID del modulo padre della classe.

  • pTypeDefToken
    [out] Puntatore al token di metadati per la classe.

  • pParentClassId
    [out] Puntatore all'ID della classe padre.

  • cNumTypeArgs
    [in] Dimensione della matrice typeArgs.

  • pcNumTypeArgs
    [out] Puntatore al numero complessivo di elementi disponibili.

  • typeArgs
    [out] Matrice di valori ClassID, ognuno dei quali rappresenta l'ID di un argomento di tipo della classe. Quando il metodo restituisce i risultati, typeArgs conterrà alcuni o tutti i valori ClassID disponibili.

Note

Il metodo GetClassIDInfo2 è simile al metodo ICorProfilerInfo::GetClassIDInfo, ma GetClassIDInfo2 ottiene informazioni aggiuntive su un tipo generico.

Il codice del profiler può chiamare ICorProfilerInfo::GetModuleMetaData per ottenere un'interfaccia di metadati per un determinato modulo. Il token di metadati restituito al percorso a cui viene fatto riferimento tramite pTypeDefToken può quindi essere utilizzato per accedere ai metadati per la classe.

Dopo la restituzione dei risultati da parte di GetClassIDInfo2, è necessario verificare se il buffer typeArgs fosse abbastanza grande per contenere i valori ClassID. A tal fine, confrontare il valore al quale punta pcNumTypeArgs con il valore del parametro cNumTypeArgs. Se pcNumTypeArgs punta a un valore maggiore di cNumTypeArgs, allocare un buffer typeArgs più grande, aggiornare cNumTypeArgs con la nuova dimensione e chiamare nuovamente GetClassIDInfo2.

In alternativa, è possibile chiamare dapprima GetClassIDInfo2 con un buffer typeArgs di lunghezza zero per ottenere la dimensione del buffer corretta. È quindi possibile impostare la dimensione del buffer typeArgs sul valore restituito in pcNumTypeArgs e chiamare nuovamente GetClassIDInfo2.

Per ulteriori informazioni su questi due approcci, vedere Convenzioni dei metodi dell'API di profilatura.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: CorProf.idl, CorProf.h

Libreria: CorGuids.lib

Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vedere anche

Riferimenti

Interfaccia ICorProfilerInfo

Interfaccia ICorProfilerInfo2

Altre risorse

Interfacce di profilatura

Profilatura (riferimenti alle API non gestite)