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