Fungsi LoadUserProfileA (userenv.h)
Memuat profil pengguna yang ditentukan. Profil dapat berupa profil pengguna lokal atau profil pengguna roaming.
Sintaks
USERENVAPI BOOL LoadUserProfileA(
[in] HANDLE hToken,
[in, out] LPPROFILEINFOA lpProfileInfo
);
Parameter
[in] hToken
Jenis: HANDEL
Token untuk pengguna, yang dikembalikan oleh fungsi LogonUser, CreateRestrictedToken, DuplicateToken, OpenProcessToken, atau OpenThreadToken . Token harus memiliki akses TOKEN_QUERY, TOKEN_IMPERSONATE, dan TOKEN_DUPLICATE . Untuk informasi selengkapnya, lihat Hak Akses untuk Objek Access-Token.
[in, out] lpProfileInfo
Jenis: LPPROFILEINFO
Penunjuk ke struktur PROFILEINFO . LoadUserProfile gagal dan mengembalikan ERROR_INVALID_PARAMETER jika anggota struktur dwSize tidak diatur ke sizeof(PROFILEINFO)
atau jika anggota lpUserName adalah NULL. Untuk informasi selengkapnya, lihat Keterangan.
Menampilkan nilai
Jenis: BOOL
TRUE jika berhasil; jika tidak, FALSE. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Fungsi gagal dan mengembalikan ERROR_INVALID_PARAMETER jika anggota dwSize struktur di lpProfileInfo tidak diatur ke sizeof(PROFILEINFO)
atau jika anggota lpUserName adalah NULL.
Keterangan
Saat pengguna masuk secara interaktif, sistem secara otomatis memuat profil pengguna. Jika layanan atau aplikasi meniru pengguna, sistem tidak memuat profil pengguna. Oleh karena itu, layanan atau aplikasi harus memuat profil pengguna dengan LoadUserProfile.
Layanan dan aplikasi yang memanggil LoadUserProfile harus memeriksa untuk melihat apakah pengguna memiliki profil roaming. Jika pengguna memiliki profil roaming, tentukan jalurnya sebagai anggota lpProfilePath dari PROFILEINFO. Untuk mengambil jalur profil roaming pengguna, Anda dapat memanggil fungsi NetUserGetInfo , menentukan informasi tingkat 3 atau 4.
Setelah berhasil kembali, anggota hProfilePROFILEINFO adalah handel kunci registri yang dibuka ke akar sarang pengguna. Ini telah dibuka dengan akses penuh (KEY_ALL_ACCESS). Jika layanan yang meniru pengguna perlu membaca atau menulis ke file registri pengguna, gunakan handel ini alih-alih HKEY_CURRENT_USER. Jangan tutup handel hProfile . Sebagai gantinya, teruskan ke fungsi UnloadUserProfile . Fungsi ini menutup handel. Anda harus memastikan bahwa semua handel ke kunci di sarang registri pengguna ditutup. Jika Anda tidak menutup semua handel registri yang terbuka, profil pengguna gagal dibongkar. Untuk informasi selengkapnya, lihat Keamanan Kunci Registri dan Hak Akses dan Registri Hives.
Perhatikan bahwa Anda bertanggung jawab untuk memuat sarang registri pengguna ke kunci registri HKEY_USERS dengan fungsi LoadUserProfile sebelum Anda memanggil CreateProcessAsUser. Ini karena CreateProcessAsUser tidak memuat profil pengguna yang ditentukan ke dalam HKEY_USERS. Ini berarti bahwa akses ke informasi dalam kunci registri HKEY_CURRENT_USER mungkin tidak menghasilkan hasil yang konsisten dengan masuk interaktif normal.
Proses panggilan harus memiliki hak istimewa SE_RESTORE_NAME dan SE_BACKUP_NAME . Untuk informasi selengkapnya, lihat Menjalankan dengan Hak Istimewa.
Dimulai dengan Windows XP Service Pack 2 (SP2) dan Windows Server 2003, pemanggil harus menjadi administrator atau akun LocalSystem. Pemanggil tidak cukup untuk hanya meniru administrator atau akun LocalSystem.
Catatan
Header userenv.h mendefinisikan LoadUserProfile 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
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | userenv.h |
Pustaka | Userenv.lib |
DLL | Userenv.dll |