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

DbgHelp Functions

IMAGEHLP_MODULE64

SymInitialize

SymLoadModule64