Método IDebugHostSymbols::FindModuleByName (dbgmodel.h)
O método FindModuleByName analisará o contexto de host fornecido e localizará um módulo que tem o nome especificado e retornará uma interface a ele. É legal pesquisar o módulo pelo nome com ou sem a extensão de arquivo.
Sintaxe
HRESULT FindModuleByName(
IDebugHostContext *context,
PCWSTR moduleName,
IDebugHostModule **module
);
Parâmetros
context
Esse contexto de host será pesquisado para um módulo carregado que corresponda ao nome fornecido.
moduleName
O nome do módulo a ser pesquisado. O nome pode ser especificado com ou sem uma extensão de arquivo.
module
Se o módulo for encontrado, uma interface para o módulo será retornada aqui.
Retornar valor
Esse método retorna HRESULT que indica êxito ou falha.
Comentários
Código de exemplo
ComPtr<IDebugHost> spHost; /* get the host */
ComPtr<IDebugHostSymbols> spSym;
if (SUCCEEDED(spHost.As(&spSym)))
{
// Find the "notepad.exe" module in the current UI context (process)
// of the debug host:
ComPtr<IDebugHostModule> spModule;
if (SUCCEEDED(spSym->FindModuleByName(USE_CURRENT_HOST_CONTEXT,
L"notepad.exe",
&spModule)))
{
// spModule is the module "notepad.exe"
}
}
Diferenças na correspondência do módulo de símbolo em FindModuleByName, CreateTypeSignature e CreateTypeSignatureForModuleRange
FindModuleByName permitirá que o nome do módulo passado seja o nome real da imagem do módulo, por exemplo, Meu Module.dll ou aquele pelo qual você pode referenciá-lo no mecanismo do depurador (por exemplo: MyModule ou MyModule_<hex_base>).
Chamar CreateTypeSignatureForModuleRange e passar um nome/nullptr/nullptr criará uma assinatura que corresponderá a qualquer módulo que corresponda a esse nome de qualquer versão.
O nome do módulo passado para as funções CreateTypeSignature aceitará apenas o nome da imagem real do módulo (por exemplo: MyModule.dll).
Chamar FindModuleByName e CreateTypeSignature com esse módulo criará uma assinatura que corresponderá apenas à instância específica do módulo passada para ele. Se houver duas cópias de um módulo que é carregado (por exemplo: ntdll em um processo de 32 bits em execução no Windows de 64 bits), ele corresponderá apenas à instância específica passada. Também não corresponderia mais se essa DLL fosse descarregada e recarregada. A assinatura está associada a uma instância específica de um módulo, conforme conhecido pelo depurador.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | dbgmodel.h |