Share via


SymGetModuleInfo-Funktion (dbghelp.h)

Ruft die Modulinformationen des angegebenen Moduls ab.

Syntax

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

Parameter

[in] hProcess

Ein Handle für den Prozess, der ursprünglich an die SymInitialize-Funktion übergeben wurde.

[in] dwAddr

Die virtuelle Adresse, die in einem der von der SymLoadModule64-Funktion geladenen Module enthalten ist

[out] ModuleInfo

Ein Zeiger auf eine IMAGEHLP_MODULE64-Struktur . Das SizeOfStruct-Element muss auf die Größe der IMAGEHLP_MODULE64-Struktur festgelegt werden. Ein ungültiger Wert führt zu einem Fehler.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen.

Hinweise

In der Modultabelle wird nach einem Modul gesucht, das dwAddr enthält. Das Modul wird basierend auf der Ladeadresse und der Größe jedes Moduls lokalisiert. Wenn ein gültiges Modul gefunden wird, wird der Parameter ModuleInfo mit den Informationen zum Modul gefüllt.

Die Größe der von dieser Funktion verwendeten IMAGEHLP_MODULE64-Struktur hat sich im Laufe der Jahre geändert. Wenn eine Version von DbgHelp.dll aufgerufen wird, die älter ist als dbgHelp.h, die zum Kompilieren des aufrufenden Codes verwendet wird, schlägt diese Funktion möglicherweise mit dem Fehlercode ERROR_INVALID_PARAMETER fehl. Dies tritt am häufigsten auf, wenn die Systemversion (%WinDir%\System32\DbgHelp.dll) aufgerufen wird. Code, der die Systemversion von DbgHelp.dll aufruft, muss mit dem entsprechenden SDK für diese Windows-Version oder dem SDK für eine frühere Version kompiliert werden.

Das empfohlene Modell besteht darin, die erforderliche Version von DbgHelp.dll zusammen mit der aufrufenden Software neu zu verteilen. Dadurch kann der Aufrufer die robustesten Versionen von DbgHelp.dll sowie ein vereinfachendes Upgrade verwenden. Die neueste Version von DbgHelp.dll finden Sie immer im Paket Debugtools für Windows . In der Regel funktioniert Code, der für ältere Versionen kompiliert wird, immer mit neueren Versionen.

Alle DbgHelp-Funktionen, z. B. diese, sind singlethreaded. Daher führen an diese Funktion gerichtete Aufrufe mehrerer Threads wahrscheinlich zu unerwartetem Verhalten oder einer Beschädigung des Speichers. Um dies zu vermeiden, müssen Sie alle an diese Funktion gerichteten gleichzeitigen Aufrufe mehrerer Threads synchronisieren.

Um die Unicode-Version dieser Funktion aufzurufen, definieren Sie DBGHELP_TRANSLATE_TCHAR. SymGetModuleInfoW64 ist in DbgHelp.h wie folgt definiert.


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

#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymGetModuleInfo64   SymGetModuleInfoW64
#endif

Diese Funktion ersetzt die SymGetModuleInfo-Funktion . Weitere Informationen finden Sie unter Aktualisierte Plattformunterstützung. SymGetModuleInfo ist in DbgHelp.h wie folgt definiert.

#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

Anforderungen

   
Zielplattform Windows
Kopfzeile dbghelp.h
Bibliothek Dbghelp.lib
DLL Dbghelp.dll
Verteilbare Komponente DbgHelp.dll 5.1 oder höher

Weitere Informationen

DbgHelp-Funktionen

IMAGEHLP_MODULE64

SymInitialize

SymLoadModule64