Condividi tramite


Metodo ICorProfilerInfo3::GetModuleInfo2

Dato l'ID di un modulo, restituisce il nome file del modulo, l'ID dell'assembly padre del modulo e una maschera di bit che descrive le proprietà del modulo.

HRESULT GetModuleInfo2(
    [in]  ModuleID   moduleId,
    [out] LPCBYTE    *ppBaseLoadAddress,
    [in]  ULONG      cchName,
    [out] ULONG      *pcchName,
    [out, annotation("__out_ecount_part(cchName, *pcchName)")]
          WCHAR      szName[] ,
    [out] AssemblyID *pAssemblyId);
    [out] DWORD                 *pdwModuleFlags);

Parametri

  • moduleId
    [in] ID del modulo per il quale verranno recuperate le informazioni.

  • ppBaseLoadAddress
    [out] Indirizzo di base in corrispondenza del quale viene caricato il modulo.

  • cchName
    [in] Lunghezza del buffer di ritorno szName in caratteri

  • pcchName
    [out] Puntatore al numero totale di caratteri del nome file del modulo restituito.

  • szName
    [out] Buffer per caratteri di tipo "wide" fornito dal chiamante. Quando il metodo restituisce il risultato, questo buffer contiene il nome file del modulo.

  • pAssemblyId
    [out] Puntatore all'ID dell'assembly padre del modulo.

  • pdwModuleFlags
    [out] Una maschera di bit di valori dall'enumerazione COR_PRF_MODULE_FLAGS che specificano le proprietà del modulo.

Note

Per i moduli dinamici, il parametro szName è il nome di metadati del modulo e l'indirizzo di base è 0 (zero). Il nome di metadati è il valore nella colonna Nome dalla tabella del Modulo all'interno dei metadati. È esposto anche come la proprietà Module.ScopeName a codice gestito e come il parametro szName del metodo IMetaDataImport::GetScopeProps a codice client di metadati non gestito.

Sebbene sia possibile chiamare il metodo GetModuleInfo2 appena è disponibile l'ID del modulo, l'ID dell'assembly padre non sarà disponibile finché il profiler non riceverà il callback di ICorProfilerCallback::ModuleAttachedToAssembly.

Un volta completato GetModuleInfo2, è necessario verificare che il buffer szName fosse abbastanza grande per contenere il nome file completo del modulo. A tal fine, confrontare il valore al quale punta pcchName con il valore del parametro cchName. Se pcchName punta a un valore maggiore di cchName, allocare un buffer szName più grande, aggiornare cchName con la nuova dimensione e chiamare nuovamente GetModuleInfo2.

In alternativa, è possibile chiamare dapprima GetModuleInfo2 con un buffer szName di lunghezza zero per ottenere la dimensione del buffer corretta. È quindi possibile impostare la dimensione del buffer sul valore restituito nel parametro pcchName e chiamare nuovamente il metodo GetModuleInfo2.

Per ulteriori informazioni su questi due approcci, vedere la sezione "Buffer allocati dal chiamante" in 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

Vedere anche

Riferimenti

Interfaccia ICorProfilerInfo

Altre risorse

Interfacce di profilatura

Profilatura (riferimenti alle API non gestite)