SymGetModuleInfoW-Funktion (dbghelp.h)
Ruft die Modulinformationen des angegebenen Moduls ab.
Syntax
BOOL IMAGEAPI SymGetModuleInfoW(
[in] HANDLE hProcess,
[in] DWORD dwAddr,
[out] PIMAGEHLP_MODULEW 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 Module enthalten ist, die von der SymLoadModule64-Funktion geladen werden.
[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
Die Modultabelle wird nach einem Modul gesucht, das den dwAddr enthält. Das Modul wird basierend auf der Ladeadresse und der Größe der einzelnen Module lokalisiert. Wenn ein gültiges Modul gefunden wird, wird der Parameter ModuleInfo mit den Informationen zum Modul gefüllt.
Die Größe der IMAGEHLP_MODULE64 Struktur, die von dieser Funktion verwendet wird, hat sich im Laufe der Jahre geändert. Wenn eine Version von DbgHelp.dll aufgerufen wird, die älter ist als die 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 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 single threaded. 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 wird 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 wird 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
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | dbghelp.h |
Bibliothek | Dbghelp.lib |
DLL | Dbghelp.dll |
Verteilbare Komponente | DbgHelp.dll 5.1 oder höher |