Informasi Modul
Modul adalah file yang dapat dieksekusi atau DLL. Setiap proses terdiri dari satu atau beberapa modul. Anda dapat mengambil daftar handel modul untuk proses dengan memanggil fungsi EnumProcessModules . Fungsi ini mengisi array nilai HMODULE dengan handel modul untuk proses yang ditentukan. Modul pertama adalah file yang dapat dieksekusi. Ingatlah bahwa handel modul ini kemungkinan besar dari beberapa proses lain, sehingga Anda tidak dapat menggunakannya dengan fungsi seperti GetModuleFileName. Namun, Anda dapat menggunakan fungsi PSAPI untuk mendapatkan informasi tentang modul dari proses lain.
Prosedur berikut menjelaskan cara mendapatkan informasi modul dari proses lain.
Untuk mendapatkan informasi modul dari proses lain
- Panggil fungsi GetModuleBaseName . Fungsi ini mengambil handel proses dan handel modul sebagai input dan mengisi buffer dengan nama dasar modul (misalnya, Kernel32.dll). Fungsi terkait, GetModuleFileNameEx, mengambil parameter yang sama dengan input tetapi mengembalikan jalur lengkap ke modul (misalnya, C:\Windows\System32\Kernel32.dll).
- Panggil fungsi GetModuleInformation . Fungsi ini mengambil handel proses dan handel modul dan mengisi struktur MODULEINFO dengan alamat beban modul, ukuran ruang alamat linier yang didudukinya, dan penunjuk ke titik masuknya.
Jika aplikasi memerlukan informasi modul untuk proses saat ini, aplikasi harus menggunakan fungsi GetModuleFileName alih-alih fungsi modul PSAPI. Ini membantu performa aplikasi dengan dua cara: Fungsi GetModuleFileName lebih efisien daripada fungsi modul PSAPI, dan aplikasi dapat menghindari pemuatan psapi.dll jika tidak menggunakan fungsi PSAPI apa pun.
Fungsi GetModuleBaseName dan GetModuleFileNameEx terutama dirancang untuk digunakan oleh debugger dan aplikasi serupa yang harus mengekstrak informasi modul dari proses lain. Jika daftar modul dalam proses target rusak atau belum diinisialisasi, atau jika daftar modul berubah selama panggilan fungsi sebagai akibat dari DLL yang dimuat atau dibongkar, fungsi ini mungkin gagal atau mengembalikan informasi yang salah.