Partilhar via


Método ICorProfilerInfo3::GetModuleInfo2

Com um ID de módulo, devolve o nome de ficheiro do módulo, o ID da assemblagem principal do módulo e uma máscara de bits 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] O ID do módulo para o qual as informações serão obtidas.

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

cchName
[in] O comprimento, em carateres, da szName memória intermédia de retorno.

pcchName
[fora] Um ponteiro para o comprimento total do caráter do nome de ficheiro do módulo que é devolvido.

szName
[fora] Uma memória intermédia de carateres larga fornecida pelo autor da chamada. Quando o método é devolvido, esta memória intermédia contém o nome de ficheiro do módulo.

pAssemblyId
[fora] Um ponteiro para o ID da assemblagem principal do módulo.

pdwModuleFlags
[fora] Uma máscara de bits de valores da enumeração COR_PRF_MODULE_FLAGS que especifica as propriedades do módulo.

Observações

Para módulos dinâmicos, o szName parâmetro é 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 dos metadados. Isto também é exposto como a Module.ScopeName propriedade ao código gerido e como o szName parâmetro do método IMetaDataImport::GetScopeProps para código de cliente de metadados não geridos.

Embora o GetModuleInfo2 método possa ser chamado assim que o ID do módulo existir, o ID da assemblagem principal não estará disponível até que o gerador de perfis receba a chamada de retorno ICorProfilerCallback::ModuleAttachedToAssembly .

Quando GetModuleInfo2 é devolvido, tem de verificar se a szName memória intermédia era suficientemente grande para conter o nome de ficheiro completo do módulo. Para tal, compare o valor que pcchName aponta com o valor do cchName parâmetro . Se pcchName apontar para um valor maior do cchNameque , aloque uma memória intermédia maior szName , atualize cchName com o novo tamanho maior e chame GetModuleInfo2 novamente.

Em alternativa, pode chamar GetModuleInfo2 primeiro com uma memória intermédia de comprimento szName zero para obter o tamanho correto da memória intermédia. Em seguida, pode definir o tamanho da memória intermédia para o valor devolvido em pcchName e chamar GetModuleInfo2 novamente.

Requisitos

Plataformas: Veja Requisitos de Sistema.

Cabeçalho: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

.NET Framework Versões: Disponível desde 4

Ver também