Bagikan melalui


Fungsi EnumProcessModulesEx (psapi.h)

Mengambil handel untuk setiap modul dalam proses yang ditentukan yang memenuhi kriteria filter yang ditentukan.

Sintaks

BOOL EnumProcessModulesEx(
  [in]  HANDLE  hProcess,
  [out] HMODULE *lphModule,
  [in]  DWORD   cb,
  [out] LPDWORD lpcbNeeded,
  [in]  DWORD   dwFilterFlag
);

Parameter

[in] hProcess

Handel untuk proses.

[out] lphModule

Array yang menerima daftar handel modul.

[in] cb

Ukuran array lphModule , dalam byte.

[out] lpcbNeeded

Jumlah byte yang diperlukan untuk menyimpan semua handel modul dalam array lphModule .

[in] dwFilterFlag

Kriteria filter. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
LIST_MODULES_32BIT
0x01
Cantumkan modul 32-bit.
LIST_MODULES_64BIT
0x02
Cantumkan modul 64-bit.
LIST_MODULES_ALL
0x03
Mencantumkan semua modul.
LIST_MODULES_DEFAULT
0x0
Gunakan perilaku default.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Fungsi EnumProcessModulesEx 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, EnumProcessModulesEx mungkin gagal atau mengembalikan informasi yang salah.

Fungsi ini ditujukan terutama untuk aplikasi 64-bit. Jika fungsi dipanggil oleh aplikasi 32-bit yang berjalan di bawah WOW64, opsi dwFilterFlag diabaikan dan fungsi memberikan hasil yang sama dengan fungsi EnumProcessModules .

Adalah ide yang baik untuk menentukan array besar nilai HMODULE , karena sulit untuk memprediksi berapa banyak modul yang akan ada dalam proses pada saat Anda memanggil EnumProcessModulesEx. Untuk menentukan apakah array lphModule terlalu kecil untuk menahan semua handel modul untuk proses, bandingkan nilai yang dikembalikan dalam lpcbNeeded dengan nilai yang ditentukan dalam cb. Jika lpcbNeeded lebih besar dari cb, tingkatkan ukuran array dan panggil EnumProcessModulesEx lagi.

Untuk menentukan berapa banyak modul yang dijumlahkan oleh panggilan ke EnumProcessModulesEx, bagi nilai yang dihasilkan dalam parameter lpcbNeeded dengan sizeof(HMODULE).

Fungsi EnumProcessModulesEx tidak mengambil handel untuk modul yang dimuat dengan bendera LOAD_LIBRARY_AS_DATAFILE . Untuk informasi selengkapnya, lihat LoadLibraryEx.

Jangan panggil CloseHandle pada salah satu handel yang dikembalikan oleh fungsi ini. Informasi berasal dari rekam jepret, sehingga tidak ada sumber daya yang akan dibebaskan.

Untuk mengambil rekam jepret dari proses tertentu dan tumpukan, modul, dan utas yang digunakan oleh proses ini, gunakan fungsi CreateToolhelp32Snapshot .

Dimulai dengan Windows 7 dan Windows Server 2008 R2, Psapi.h menetapkan nomor versi untuk fungsi PSAPI. Nomor versi PSAPI memengaruhi nama yang digunakan untuk memanggil fungsi dan pustaka yang harus dimuat program.

Jika PSAPI_VERSION adalah 2 atau lebih besar, fungsi ini didefinisikan sebagai K32EnumProcessModulesEx di Psapi.h dan diekspor di Kernel32.lib dan Kernel32.dll. Jika PSAPI_VERSION adalah 1, fungsi ini didefinisikan sebagai EnumProcessModulesEx di Psapi.h dan diekspor di Psapi.lib dan Psapi.dll sebagai pembungkus yang memanggil K32EnumProcessModulesEx.

Program yang harus berjalan pada versi Windows yang lebih lama serta Windows 7 dan versi yang lebih baru harus selalu memanggil fungsi ini sebagai EnumProcessModulesEx. Untuk memastikan resolusi simbol yang benar, tambahkan Psapi.lib ke makro TARGETLIBS dan kompilasi program dengan –DPSAPI_VERSION=1. Untuk menggunakan penautan dinamis run-time, muat Psapi.dll.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header psapi.h (termasuk Windows.h)
Pustaka Kernel32.lib pada Windows 7 dan Windows Server 2008 R2; Psapi.lib (jika PSAPI_VERSION=1) pada Windows 7 dan Windows Server 2008 R2; Psapi.lib di Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP
DLL Kernel32.dll pada Windows 7 dan Windows Server 2008 R2; Psapi.dll (jika PSAPI_VERSION=1) pada Windows 7 dan Windows Server 2008 R2; Psapi.dll pada Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP

Lihat juga

CreateToolhelp32Snapshot

EnumProcesses

Informasi Modul

Fungsi PSAPI