Freigeben über


IDebugHostSymbols::FindModuleByName-Methode (dbgmodel.h)

Die FindModuleByName-Methode durchsieht den angegebenen Hostkontext und sucht ein Modul mit dem angegebenen Namen und gibt eine Schnittstelle zurück. Es ist legal, nach dem Modul anhand des Namens mit oder ohne die Dateierweiterung zu suchen.

Syntax

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

Parameter

context

Dieser Hostkontext wird nach einem geladenen Modul gesucht, das dem angegebenen Namen entspricht.

moduleName

Der Name des moduls, nach dem gesucht werden soll. Der Name kann mit oder ohne Dateierweiterung angegeben werden.

module

Wenn das Modul gefunden wird, wird hier eine Schnittstelle zum Modul zurückgegeben.

Rückgabewert

Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.

Bemerkungen

Beispielcode-

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

Unterschiede beim Abgleich von Symbolmodulen in FindModuleByName, CreateTypeSignature und CreateTypeSignatureForModuleRange

FindModuleByName ermöglicht dem übergebenen Modulnamen entweder den tatsächlichen Bildnamen des Moduls, z. B. "Meine Module.dll" oder den Namen, auf den Sie im Debuggermodul verweisen können (z. B.: MyModule oder MyModule_<hex_base>).

Wenn Sie CreateTypeSignatureForModuleRange aufrufen und einen Namen/nullptr/nullptr/nullptr übergeben, wird eine Signatur erstellt, die mit jedem Modul übereinstimmt, das diesem Namen einer beliebigen Version entspricht.

Der Modulname, der an die CreateTypeSignature- Funktionen übergeben wird, akzeptiert nur den tatsächlichen Bildnamen des Moduls (z. B. MyModule.dll).

Durch Aufrufen von FindModuleByName und dann CreateTypeSignature mit diesem Modul wird eine Signatur erstellt, die nur mit der bestimmten Instanz des an das Modul übergebenen Moduls übereinstimmt. Wenn es zwei Kopien eines Moduls gibt, das geladen wird (z. B. ntdll in einem 32-Bit-Prozess, der unter 64-Bit-Windows ausgeführt wird), stimmt es nur mit der übergebenen instanz überein. Es würde auch nicht mehr übereinstimmen, wenn diese DLL entladen und neu geladen wurde. Die Signatur ist einer bestimmten Instanz eines Moduls zugeordnet, das vom Debugger bezeichnet wird.

Anforderungen

Anforderung Wert
Header- dbgmodel.h

Siehe auch

IDebugHostSymbols-Schnittstelle

CreateTypeSignature-

CreateTypeSignatureForModuleRange-