Fungsi GetModuleBaseNameA (psapi.h)
Mengambil nama dasar modul yang ditentukan.
Sintaksis
DWORD GetModuleBaseNameA(
[in] HANDLE hProcess,
[in, optional] HMODULE hModule,
[out] LPSTR lpBaseName,
[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.
[in, optional] hModule
Handel ke modul. Jika parameter ini NULL, fungsi ini mengembalikan nama file yang digunakan untuk membuat proses panggilan.
[out] lpBaseName
Penunjuk ke buffer yang menerima nama dasar modul. Jika nama dasar lebih panjang dari jumlah karakter maksimum yang ditentukan oleh parameter
[in] nSize
Ukuran buffer lpBaseName
Mengembalikan nilai
Jika fungsi berhasil, nilai pengembalian menentukan panjang string yang disalin ke buffer, dalam karakter.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.
Komentar
Fungsi GetModuleBaseName 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, GetModuleBaseName mungkin gagal atau mengembalikan informasi yang salah.
Untuk mengambil nama dasar modul dalam proses saat ini, gunakan fungsi
Untuk mengambil nama dasar modul utama yang dapat dieksekusi untuk proses jarak jauh, gunakan fungsi GetProcessImageFileName atau QueryFullProcessImageName untuk mengambil nama modul lalu gunakan fungsi strrchr
seperti yang dijelaskan dalam paragraf sebelumnya. Ini lebih efisien dan lebih andal daripada memanggil GetModuleBaseName dengan handel modul NULL.
Fungsi GetModuleBaseName tidak mengambil nama dasar untuk modul yang dimuat dengan bendera LOAD_LIBRARY_AS_DATAFILE. Untuk informasi selengkapnya, lihat LoadLibraryEx.
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 K32GetModuleBaseName di Psapi.h dan diekspor di Kernel32.lib dan Kernel32.dll. Jika PSAPI_VERSION adalah 1, fungsi ini didefinisikan sebagai GetModuleBaseName di Psapi.h dan diekspor di Psapi.lib dan Psapi.dll sebagai pembungkus yang memanggil K32GetModuleBaseName.
Program yang harus berjalan pada versi Windows sebelumnya serta Windows 7 dan versi yang lebih baru harus selalu memanggil fungsi ini sebagai GetModuleBaseName. Untuk memastikan resolusi simbol yang benar, tambahkan Psapi.lib ke makro
Contoh
Misalnya, lihat Menghitung Semua Proses.
Nota
Header psapi.h mendefinisikan GetModuleBaseName sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor 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
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
server minimum yang didukung |
Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Platform Target |
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 pada 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
GetModuleFileNameEx
Informasi Modul
Fungsi PSAPI