Fungsi SymGetModuleInfo (dbghelp.h)
Mengambil informasi modul dari modul yang ditentukan.
Sintaks
BOOL IMAGEAPI SymGetModuleInfo(
[in] HANDLE hProcess,
[in] DWORD dwAddr,
[out] PIMAGEHLP_MODULE ModuleInfo
);
Parameter
[in] hProcess
Handel ke proses yang awalnya diteruskan ke fungsi SymInitialize .
[in] dwAddr
Alamat virtual yang terkandung dalam salah satu modul yang dimuat oleh fungsi SymLoadModule64
[out] ModuleInfo
Penunjuk ke struktur IMAGEHLP_MODULE64 . Anggota SizeOfStruct harus diatur ke ukuran struktur IMAGEHLP_MODULE64 . Nilai yang tidak valid akan mengakibatkan kesalahan.
Menampilkan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.
Jika fungsi gagal, nilai yang dikembalikan adalah FALSE. Untuk mengambil informasi kesalahan yang diperluas, panggil GetLastError.
Keterangan
Tabel modul dicari untuk modul yang berisi dwAddr. Modul ini terletak berdasarkan alamat beban dan ukuran setiap modul. Jika modul yang valid ditemukan, parameter ModuleInfo diisi dengan informasi tentang modul.
Ukuran struktur IMAGEHLP_MODULE64 yang digunakan oleh fungsi ini telah berubah selama bertahun-tahun. Jika versi DbgHelp.dll disebut yang lebih lama dari DbgHelp.h yang digunakan untuk mengkompilasi kode panggilan, maka fungsi ini mungkin gagal dengan kode kesalahan ERROR_INVALID_PARAMETER. Ini paling umum terjadi ketika versi sistem (%WinDir%\System32\DbgHelp.dll) dipanggil. Kode yang memanggil versi sistem DbgHelp.dll harus dikompilasi menggunakan SDK yang sesuai untuk rilis Windows atau SDK untuk rilis sebelumnya.
Model yang direkomendasikan adalah mendistribusikan ulang versi DbgHelp.dll yang diperlukan bersama dengan perangkat lunak panggilan. Ini memungkinkan penelepon untuk menggunakan versi DbgHelp.dll yang paling kuat serta peningkatan yang menyederhanakan. Versi terbaru DbgHelp.dll selalu dapat ditemukan di paket Alat Debugging untuk Windows . Sebagai aturan umum, kode yang dikompilasi untuk bekerja dengan versi yang lebih lama akan selalu berfungsi dengan versi yang lebih baru.
Semua fungsi DbgHelp, seperti ini, adalah utas tunggal. Oleh karena itu, panggilan dari lebih dari satu utas ke fungsi ini kemungkinan akan mengakibatkan perilaku tak terduga atau kerusakan memori. Untuk menghindari hal ini, Anda harus menyinkronkan semua panggilan bersamaan dari lebih dari satu utas ke fungsi ini.
Untuk memanggil versi Unicode dari fungsi ini, tentukan DBGHELP_TRANSLATE_TCHAR. SymGetModuleInfoW64 didefinisikan sebagai berikut dalam DbgHelp.h.
BOOL
IMAGEAPI
SymGetModuleInfoW64(
__in HANDLE hProcess,
__in DWORD64 qwAddr,
__out PIMAGEHLP_MODULEW64 ModuleInfo
);
#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymGetModuleInfo64 SymGetModuleInfoW64
#endif
Fungsi ini menggantikan fungsi SymGetModuleInfo . Untuk informasi selengkapnya, lihat Dukungan Platform yang Diperbarui. SymGetModuleInfo didefinisikan sebagai berikut dalam 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
Persyaratan
Target Platform | Windows |
Header | dbghelp.h |
Pustaka | Dbghelp.lib |
DLL | Dbghelp.dll |
Redistribusi | DbgHelp.dll 5.1 atau yang lebih baru |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk