Condividi tramite


Metodo IDebugHostSymbols::FindModuleByName (dbgmodel.h)

Il metodo FindModuleByName esamina il contesto host specificato e individua un modulo con il nome specificato e restituisce un'interfaccia. È legale cercare il modulo in base al nome con o senza l'estensione di file.

Sintassi

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

Parametri

context

Questo contesto host verrà cercato un modulo caricato corrispondente al nome specificato.

moduleName

Nome del modulo da cercare. Il nome può essere specificato con o senza estensione di file.

module

Se il modulo viene trovato, verrà restituita un'interfaccia per il modulo.

Valore restituito

Questo metodo restituisce HRESULT che indica l'esito positivo o negativo.

Osservazioni

codice di esempio

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

Differenze nei moduli di simboli corrispondenti in FindModuleByName, CreateTypeSignature e CreateTypeSignatureForModuleRange

FindModuleByName consentirà al nome del modulo passato di essere il nome dell'immagine reale del modulo, ad esempio My Module.dllo quello a cui è possibile fare riferimento nel motore del debugger , ad esempio MyModule o MyModule_<hex_base>.

Chiamando CreateTypeSignatureForModuleRange e passando un nome/nullptr/nullptr creerà una firma che corrisponderà a qualsiasi modulo corrispondente a tale nome di qualsiasi versione.

Il nome del modulo passato alle funzioni di CreateTypeSignature accetterà solo il nome dell'immagine reale del modulo, ad esempio MyModule.dll.

Chiamando FindModuleByName e quindi CreateTypeSignature con tale modulo verrà creata una firma che corrisponderà solo all'istanza specifica del modulo passato. Se sono presenti due copie di un modulo caricato ,ad esempio ntdll in un processo a 32 bit in esecuzione in Windows a 64 bit, corrisponderebbe solo all'istanza specifica passata. Non corrisponderebbe più anche se la DLL fosse scaricata e ricaricata. La firma è associata a un'istanza specifica di un modulo noto dal debugger.

Fabbisogno

Requisito Valore
intestazione dbgmodel.h

Vedere anche

interfaccia IDebugHostSymbols

CreateTypeSignature

CreateTypeSignatureForModuleRange