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 |