Compartir a través de


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

El método FindModuleByName examinará 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á 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.

Observaciones

de 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, My Module.dllo 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 name/nullptr/nullptr creará una firma que coincidirá con cualquier módulo que coincida con ese nombre de cualquier versión.

El nombre del módulo pasado al 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 cargado (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, tal como lo conoce el depurador.

Requisitos

Requisito Valor
encabezado de dbgmodel.h

Consulte también

interfaz IDebugHostSymbols

CreateTypeSignature

CreateTypeSignatureForModuleRange