From 41f77e25f11d2b152d2f4da12d1e6378c64fc78e Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 2 Dec 2014 10:49:47 +0000 Subject: * autoload.cc (CreateProfile): Import. (LoadUserProfileW): Import. * registry.cc (get_registry_hive_path): Move to sec_auth.cc. (load_registry_hive): Remove. * registry.h (get_registry_hive_path): Drop declaration. (load_registry_hive): Ditto. * sec_auth.cc (get_user_profile_directory): Moved from registry.cc and renamed. Take third parameter with buffer length. (load_user_profile): New function taking over for load_registry_hive. Use official functions to load profile. If profile is missing, create it on Vista and later. * security.h (get_user_profile_directory): Declare. (load_user_profile): Declare. * syscalls.cc (seteuid32): Replace call to load_registry_hive with call to load_user_profile. * uinfo.cc (cygheap_user::env_userprofile): Replace call to get_registry_hive_path with call to get_user_profile_directory. --- winsup/cygwin/security.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'winsup/cygwin/security.h') diff --git a/winsup/cygwin/security.h b/winsup/cygwin/security.h index eb3e0f1e5..50b5b3cc0 100644 --- a/winsup/cygwin/security.h +++ b/winsup/cygwin/security.h @@ -472,6 +472,12 @@ void extract_nt_dom_user (const struct passwd *pw, PWCHAR domain, PWCHAR user); /* Get default logonserver for a domain. */ bool get_logon_server (PWCHAR domain, PWCHAR wserver, ULONG flags); +/* Fetch user profile path from registry, if it already exists. */ +PWCHAR get_user_profile_directory (PCWSTR sidstr, PWCHAR path, SIZE_T path_len); + +/* Load user profile if it's not already loaded. */ +HANDLE load_user_profile (HANDLE token, struct passwd *pw, cygpsid &sid); + HANDLE lsa_open_policy (PWCHAR server, ACCESS_MASK access); void lsa_close_policy (HANDLE lsa); -- cgit v1.2.3