Fungsi GetProcessImageFileNameA (psapi.h)
Mengambil nama file yang dapat dieksekusi untuk proses yang ditentukan.
Sintaks
DWORD GetProcessImageFileNameA(
[in] HANDLE hProcess,
[out] LPSTR lpImageFileName,
[in] DWORD nSize
);
Parameter
[in] hProcess
Handel untuk proses. Handel harus memiliki hak akses PROCESS_QUERY_INFORMATION atau PROCESS_QUERY_LIMITED_INFORMATION . Untuk informasi selengkapnya, lihat Keamanan Proses dan Hak Akses.
Windows Server 2003 dan Windows XP: Handel harus memiliki hak akses PROCESS_QUERY_INFORMATION .
[out] lpImageFileName
Penunjuk ke buffer yang menerima jalur lengkap ke file yang dapat dieksekusi.
[in] nSize
Ukuran buffer lpImageFileName , 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
File Psapi.dll diinstal di direktori %windir%\System32. Jika ada salinan lain dari DLL ini di komputer Anda, itu dapat menyebabkan kesalahan berikut saat menjalankan aplikasi pada sistem Anda: "Titik entri prosedur GetProcessImageFileName tidak dapat ditemukan di pustaka tautan dinamis PSAPI.DLL." Untuk mengatasi masalah ini, temukan versi apa pun yang tidak ada di direktori %windir%\System32 dan hapus atau ganti namanya, lalu mulai ulang.
Fungsi GetProcessImageFileName mengembalikan jalur dalam formulir perangkat, bukan huruf drive. Misalnya, nama file C:\Windows\System32\Ctype.nls akan terlihat sebagai berikut dalam bentuk perangkat:
\Device\Harddisk0\Partition1\Windows\System32\Ctype.nls
Untuk mengambil nama modul proses saat ini, gunakan fungsi GetModuleFileName dengan handel modul NULL. Ini lebih efisien daripada memanggil fungsi GetProcessImageFileName dengan handel ke proses saat ini.
Untuk mengambil nama modul utama yang dapat dieksekusi untuk proses jarak jauh dalam format jalur win32, gunakan fungsi QueryFullProcessImageName .
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 K32GetProcessImageFileName di Psapi.h dan diekspor di Kernel32.lib dan Kernel32.dll. Jika PSAPI_VERSION adalah 1, fungsi ini didefinisikan sebagai GetProcessImageFileName di Psapi.h dan diekspor di Psapi.lib dan Psapi.dll sebagai pembungkus yang memanggil K32GetProcessImageFileName.
Program yang harus berjalan pada versi Windows sebelumnya serta Windows 7 dan versi yang lebih baru harus selalu memanggil fungsi ini sebagai GetProcessImageFileName. 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.
Catatan
Header psapi.h mendefinisikan GetProcessImageFileName 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 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
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 |