Método ICorProfilerInfo3::GetModuleInfo2

Determinada ID de módulo retorna o nome do arquivo do módulo, a ID do assembly pai do módulo e um bitmask que descreve as propriedades do módulo.

Sintaxe

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

Parâmetros

moduleId
[in] A ID do módulo para o qual as informações serão recuperadas.

ppBaseLoadAddress
[out] O endereço base no qual o módulo é carregado.

cchName
[in] O comprimento, em caracteres, do buffer de retorno szName.

pcchName
[out] Um ponteiro para o comprimento total de caracteres do nome de arquivo que é retornado.

szName
[out] Um buffer de caractere largo fornecido pelo chamador. Quando o método retorna, esse buffer contém o nome de arquivo do módulo.

pAssemblyId
[out] Um ponteiro para a ID do assembly pai do módulo.

pdwModuleFlags
[out] Um bitmask de valores da enumeração COR_PRF_MODULE_FLAGS que especifica as propriedades do módulo.

Comentários

Para módulos dinâmicos, o parâmetro szName é o nome dos metadados do módulo e o endereço base é 0 (zero). O nome dos metadados é o valor na coluna Nome da tabela Módulo dentro de metadados. Isso também é exposto como a propriedade Module.ScopeName ao código gerenciado e como o parâmetro szName do método IMetaDataImport::GetScopeProps para código de cliente de metadados não gerenciados.

Embora o método GetModuleInfo2 possa ser chamado assim que a ID do módulo existir, a ID do assembly pai não estará disponível até que o criador de perfil receba o retorno de chamada ICorProfilerCallback::ModuleAttachedToAssembly .

Quando o GetModuleInfo2 retornar, você precisa verificar se o buffer de szName era grande o suficiente para conter o nome completo do arquivo do módulo. Para fazer isso, compare o valor que aponta pcchName para o valor do parâmetro cchName. Se pcchName apontar para um valor maior que cchName, aloque um buffer szName maior, atualize cchName com o novo tamanho maior e chame GetModuleInfo2 novamente.

Como alternativa, primeiro você pode chamar GetModuleInfo2 com um buffer szName de comprimento zero para obter o tamanho correto do buffer. Em seguida, você pode definir o tamanho do buffer como o valor retornado em pcchName e chamar GetModuleInfo2 novamente.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: disponíveis desde 4

Confira também