Partilhar 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 em busca de 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.

Valor de retorno

Esse método retorna HRESULT que indica êxito ou falha.

Observações

de 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.dllou aquele pelo qual você pode referenciá-lo no mecanismo de 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 real da imagem do módulo (por exemplo: MyModule.dll).

Chamar FindModuleByName e, em seguida, CreateTypeSignature com esse módulo criará uma assinatura que corresponderá apenas à instância específica do módulo passado para ele. Se houver duas cópias de um módulo carregadas (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

Consulte também

interface IDebugHostSymbols

CreateTypeSignature

CreateTypeSignatureForModuleRange