Partager via


IDebugHostSymbols ::FindModuleByName, méthode (dbgmodel.h)

La méthode FindModuleByName examine le contexte d’hôte donné et recherche un module qui a le nom spécifié et retourne une interface à celui-ci. Il est légal de rechercher le module par nom avec ou sans l’extension de fichier.

Syntaxe

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

Paramètres

context

Ce contexte d’hôte sera recherché pour un module chargé correspondant au nom donné.

moduleName

Nom du module à rechercher. Le nom peut être spécifié avec ou sans extension de fichier.

module

Si le module est trouvé, une interface vers le module est retournée ici.

Valeur de retour

Cette méthode retourne HRESULT qui indique la réussite ou l’échec.

Remarques

exemple de code

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

Différences dans la correspondance de module de symboles dans FindModuleByName, CreateTypeSignature et CreateTypeSignatureForModuleRange

FindModuleByName permet au nom du module passé d’être soit le nom de l’image réelle du module, par exemple Mon Module.dll, soit celui que vous pouvez référencer dans le moteur de débogueur (par exemple, MyModule ou MyModule_<hex_base>).

L’appel CreateTypeSignatureForModuleRange et le passage d’un nom/nullptr/nullptr crée une signature qui correspond à n’importe quel module qui correspond à ce nom de toute version.

Le nom du module transmis aux fonctions CreateTypeSignature accepte uniquement le nom réel du module (par exemple : MyModule.dll).

L’appel de FindModuleByName, puis CreateTypeSignature avec ce module crée une signature qui correspond uniquement à l’instance particulière du module qui lui est passée. S’il existe deux copies d’un module chargé (par exemple, ntdll dans un processus 32 bits s’exécutant sur Windows 64 bits), il ne correspondrait qu’à l’instance spécifique passée. Elle ne correspond plus si cette DLL a été déchargée et rechargée. La signature est associée à une instance spécifique d’un module, comme le débogueur.

Exigences

Exigence Valeur
d’en-tête dbgmodel.h

Voir aussi

interface IDebugHostSymbols

createTypeSignature

CreateTypeSignatureForModuleRange