Compartilhar via


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

Confira também

Interface IDebugHostSymbols

CreateTypeSignature

CreateTypeSignatureForModuleRange