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 |