Funzione SymGetModuleInfo (dbghelp.h)

Recupera le informazioni sul modulo del modulo specificato.

Sintassi

BOOL IMAGEAPI SymGetModuleInfo(
  [in]  HANDLE           hProcess,
  [in]  DWORD            dwAddr,
  [out] PIMAGEHLP_MODULE ModuleInfo
);

Parametri

[in] hProcess

Handle per il processo passato originariamente alla funzione SymInitialize .

[in] dwAddr

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 genererà 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

Viene eseguita la ricerca di 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 nel corso degli 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. Questo problema si verifica in genere 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. In questo modo il chiamante può usare le versioni più affidabili di DbgHelp.dll e un'operazione di semplificazione degli aggiornamenti. La versione più recente di DbgHelp.dll è sempre disponibile nel pacchetto Strumenti di debug per Windows . Come regola generale, il codice compilato per funzionare con le versioni precedenti funzionerà sempre con le versioni più recenti.

Tutte le funzioni DbgHelp, ad esempio questa, sono a thread singolo. Di conseguenza, le chiamate da più thread a questa funzione genereranno 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 segue 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 Aggiornamento del supporto della piattaforma. SymGetModuleInfo è definito come segue 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

   
Piattaforma di destinazione Windows
Intestazione dbghelp.h
Libreria Dbghelp.lib
DLL Dbghelp.dll
Componente ridistribuibile DbgHelp.dll 5.1 o versione successiva

Vedi anche

Funzioni DbgHelp

IMAGEHLP_MODULE64

SymInitialize

SymLoadModule64