Condividi tramite


Funzione SymGetModuleInfo64 (dbghelp.h)

Recupera le informazioni sul modulo del modulo specificato.

Sintassi

BOOL IMAGEAPI SymGetModuleInfo64(
  [in]  HANDLE             hProcess,
  [in]  DWORD64            qwAddr,
  [out] PIMAGEHLP_MODULE64 ModuleInfo
);

Parametri

[in] hProcess

Handle per il processo passato originariamente alla funzione SymInitialize .

[in] qwAddr

Indirizzo virtuale contenuto in uno dei moduli caricati dalla funzione SymLoadModule64 .

[out] ModuleInfo

Puntatore a una struttura IMAGEHLP_MODULE64 . Il membro SizeOfStruct deve essere impostato sulle dimensioni della struttura IMAGEHLP_MODULE64 . Un valore non valido genera un errore.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE. Per recuperare informazioni sull'errore estese, chiamare GetLastError.

Commenti

La tabella del modulo viene cercata per un modulo contenente dwAddr. Il modulo si trova in base all'indirizzo di carico e alle dimensioni di ogni modulo. Se viene trovato un modulo valido, il parametro ModuleInfo viene compilato con le informazioni sul modulo.

Le dimensioni della struttura IMAGEHLP_MODULE64 utilizzata da questa funzione sono cambiate negli anni. Se viene chiamata una versione di DbgHelp.dll precedente a DbgHelp.h usata per compilare il codice chiamante, questa funzione potrebbe non riuscire con un codice di errore di ERROR_INVALID_PARAMETER. Ciò si verifica più comunemente quando viene chiamata la versione di sistema (%WinDir%\System32\DbgHelp.dll). Il codice che chiama la versione di sistema di DbgHelp.dll deve essere compilato usando l'SDK appropriato per tale versione di Windows o l'SDK per una versione precedente.

Il modello consigliato consiste nel ridistribuire la versione richiesta di DbgHelp.dll insieme al software chiamante. Ciò consente al chiamante di usare le versioni più affidabili di DbgHelp.dll e di semplificare gli aggiornamenti. La versione più recente di DbgHelp.dll è sempre disponibile nel pacchetto Strumenti di debug per Windows . Come regola generale, il codice compilato per l'uso con le versioni precedenti funzionerà sempre con le versioni più recenti.

Tutte le funzioni DbgHelp, ad esempio questa, sono a thread singolo. Pertanto, le chiamate da più thread a questa funzione potrebbero causare un comportamento imprevisto o un danneggiamento della memoria. Per evitare questo problema, è necessario sincronizzare tutte le chiamate simultanee da più thread a questa funzione.

Per chiamare la versione Unicode di questa funzione, definire DBGHELP_TRANSLATE_TCHAR. SymGetModuleInfoW64 è definito come indicato di seguito in DbgHelp.h.


BOOL
IMAGEAPI
SymGetModuleInfoW64(
    __in HANDLE hProcess,
    __in DWORD64 qwAddr,
    __out PIMAGEHLP_MODULEW64 ModuleInfo
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymGetModuleInfo64   SymGetModuleInfoW64
#endif

Questa funzione sostituisce la funzione SymGetModuleInfo . Per altre informazioni, vedere Supporto della piattaforma aggiornato. SymGetModuleInfo è definito come indicato di seguito in DbgHelp.h.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetModuleInfo   SymGetModuleInfo64
#define SymGetModuleInfoW  SymGetModuleInfoW64
#else
BOOL
IMAGEAPI
SymGetModuleInfo(
    __in HANDLE hProcess,
    __in DWORD dwAddr,
    __out PIMAGEHLP_MODULE ModuleInfo
    );

BOOL
IMAGEAPI
SymGetModuleInfoW(
    __in HANDLE hProcess,
    __in DWORD dwAddr,
    __out PIMAGEHLP_MODULEW ModuleInfo
    );
#endif

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione dbghelp.h
Libreria Dbghelp.lib
DLL Dbghelp.dll
Componente ridistribuibile DbgHelp.dll 5.1 o versioni successive

Vedi anche

Funzioni DbgHelp

IMAGEHLP_MODULE64

SymInitialize

SymLoadModule64