Bagikan melalui


Fungsi GetModuleFileNameExA (psapi.h)

Mengambil jalur yang sepenuhnya memenuhi syarat untuk file yang berisi modul yang ditentukan.

Sintaks

DWORD GetModuleFileNameExA(
  [in]           HANDLE  hProcess,
  [in, optional] HMODULE hModule,
  [out]          LPSTR   lpFilename,
  [in]           DWORD   nSize
);

Parameter

[in] hProcess

Handel ke proses yang berisi modul.

Handel harus memiliki hak akses PROCESS_QUERY_INFORMATION dan PROCESS_VM_READ . Untuk informasi selengkapnya, lihat Keamanan Proses dan Hak Akses.

Windows 10 dan yang lebih baru, Windows Server 2016 dan yang lebih baru: Jika parameter hModule adalah NULL, maka handel hanya memerlukan hak akses PROCESS_QUERY_LIMITED_INFORMATION.

Fungsi GetModuleFileNameEx tidak mengambil jalur untuk modul yang dimuat menggunakan bendera LOAD_LIBRARY_AS_DATAFILE . Untuk informasi selengkapnya, lihat LoadLibraryEx.

[in, optional] hModule

Handel ke modul. Jika parameter ini ADALAH NULL, GetModuleFileNameEx mengembalikan jalur file yang dapat dieksekusi dari proses yang ditentukan dalam hProcess.

[out] lpFilename

Penunjuk ke buffer yang menerima jalur yang sepenuhnya memenuhi syarat ke modul. Jika ukuran nama file lebih besar dari nilai parameter nSize , fungsi berhasil tetapi nama file dipotok dan dihentikan null.

[in] nSize

Ukuran buffer lpFilename , dalam karakter.

Mengembalikan nilai

Jika fungsi berhasil, nilai pengembalian menentukan panjang string yang disalin ke buffer.

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

Keterangan

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

Untuk mengambil nama modul dalam proses saat ini, gunakan fungsi GetModuleFileName . Ini lebih efisien dan lebih dapat diandalkan daripada memanggil GetModuleFileNameEx dengan handel ke proses saat ini.

Untuk mengambil nama modul utama yang dapat dieksekusi untuk proses jarak jauh, gunakan fungsi GetProcessImageFileName atau QueryFullProcessImageName . Ini lebih efisien dan lebih andal daripada memanggil fungsi GetModuleFileNameEx dengan handel modul NULL.

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 K32GetModuleFileNameEx di Psapi.h dan diekspor di Kernel32.lib dan Kernel32.dll. Jika PSAPI_VERSION adalah 1, fungsi ini didefinisikan sebagai GetModuleFileNameEx di Psapi.h dan diekspor di Psapi.lib dan Psapi.dll sebagai pembungkus yang memanggil K32GetModuleFileNameEx.

Program yang harus berjalan pada versi Windows yang lebih lama serta Windows 7 dan versi yang lebih baru harus selalu memanggil fungsi ini sebagai GetModuleFileNameEx. 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.

Contoh

Misalnya, lihat Menghitung Semua Modul untuk Proses.

Catatan

Header psapi.h mendefinisikan GetModuleFileNameEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header psapi.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

EnumProcesses

GetModuleBaseName

GetModuleFileName

GetModuleHandle

LoadLibrary

Informasi Modul

Fungsi PSAPI