Método de ICorProfilerInfo3::GetModuleInfo2
Dada uma identificação de módulo, retorna o nome do arquivo do módulo, a identificação do pai do módulo assembly e um bitmask que descreve as propriedades do módulo.
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 os quais informações serão recuperadas.ppBaseLoadAddress
[out] O endereço base no qual o módulo é carregado.cchName
[in] O comprimento, em caracteres, da szName retornar buffer.pcchName
[out] Um ponteiro para o comprimento total de caracteres do nome de arquivo do módulo que é retornado.szName
[out] Um buffer de largura de caractere fornecido pelo chamador. Quando o método retorna, esse buffer contém o nome do arquivo do módulo.pAssemblyId
[out] Um ponteiro para a identificação do assembly do pai do módulo.pdwModuleFlags
[out] Uma bitmask de valores da COR_PRF_MODULE_FLAGS enumeração especificar as propriedades do módulo.
Comentários
Para módulos dinâmicos, o szName parâmetro é o nome de metadados do módulo e o endereço base é 0 (zero). O nome de metadados é o valor na coluna Nome da tabela módulo dentro de metadados. Isso também é exposto como a Module.ScopeName propriedade para código gerenciado e como o szName parâmetro da IMetaDataImport::GetScopeProps método para o código do cliente de metadados não gerenciado.
Embora o GetModuleInfo2 método pode ser chamado assim que a de identificação do módulo existe, a identificação do assembly pai não estarão disponível até que o profiler recebe o ICorProfilerCallback::ModuleAttachedToAssembly retorno de chamada.
Quando GetModuleInfo2 retorna, você deve verificar se a szName buffer era grande o suficiente para conter o nome completo do arquivo do módulo. Para fazer isso, compare o valor que pcchName aponta com o valor de cchName parâmetro. Se pcchName aponta para um valor maior que cchName, alocar uma maior szName buffer, a atualização cchName com o novo tamanho maior e a chamada GetModuleInfo2 novamente.
Como alternativa, você pode primeiro chamar GetModuleInfo2 com um comprimento zero szName o buffer para obter o tamanho de buffer correto. Além disso, você pode então definir o tamanho do buffer para o valor retornado em pcchName e chame GetModuleInfo2 novamente.
Para obter mais informações sobre essas duas abordagens, consulte os Buffers"Caller-Allocated" seção Criação de perfil convenções de método de API.
Requisitos
Plataformas: Consulte Requisitos de sistema do .NET Framework.
Cabeçalho: Corprof. idl, CorProf.h
Biblioteca: CorGuids.lib
.NET Framework versões: 4