Compartir a través de


Método IDebugHostSymbols::FindModuleByName (dbgmodel.h)

El método FindModuleByName buscará en el contexto de host especificado y buscará un módulo que tenga el nombre especificado y devolverá una interfaz a él. Es legal buscar el módulo por nombre con o sin la extensión de archivo.

Sintaxis

HRESULT FindModuleByName(
  IDebugHostContext *context,
  PCWSTR            moduleName,
  IDebugHostModule  **module
);

Parámetros

context

Este contexto de host se buscará en un módulo cargado que coincida con el nombre especificado.

moduleName

Nombre del módulo que se va a buscar. El nombre se puede especificar con o sin una extensión de archivo.

module

Si se encuentra el módulo, se devolverá una interfaz al módulo aquí.

Valor devuelto

Este método devuelve HRESULT que indica éxito o error.

Comentarios

Código de ejemplo

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"
    }
}

Diferencias en la coincidencia de módulos de símbolos en FindModuleByName, CreateTypeSignature y CreateTypeSignatureForModuleRange

FindModuleByName permitirá que el nombre del módulo pasado sea el nombre de imagen real del módulo, por ejemplo, Mi Module.dll, o el que puede hacer referencia a él en el motor del depurador (por ejemplo: MyModule o MyModule_<hex_base>).

Al llamar a CreateTypeSignatureForModuleRange y pasar un nombre,nullptr/nullptr/nullptr, se creará una firma que coincidirá con cualquier módulo que coincida con ese nombre de cualquier versión.

El nombre del módulo pasado a las funciones CreateTypeSignature solo aceptará el nombre de imagen real del módulo (por ejemplo, MyModule.dll).

Al llamar a FindModuleByName y, a continuación, CreateTypeSignature con ese módulo se creará una firma que coincidirá solo con la instancia concreta del módulo que se le ha pasado. Si hay dos copias de un módulo que se carga (por ejemplo, ntdll en un proceso de 32 bits que se ejecuta en Windows de 64 bits), solo coincidiría con la instancia específica pasada. Tampoco coincidiría si ese archivo DLL se descargara y se volvera a cargar. La firma está asociada a una instancia específica de un módulo, como lo conoce el depurador.

Requisitos

Requisito Valor
Header dbgmodel.h

Consulte también

Interfaz IDebugHostSymbols

CreateTypeSignature

CreateTypeSignatureForModuleRange