extern "C" HANDLE cygwin_logon_user(passwd_entry,  
const struct passwd *passwd_entry;
const char *password;

Given a pointer ot a passwd entry of a user and a cleartext password, returns a HANDLE to an impersonation token for this user which can be used in a subsequent call to cygwin_set_impersonation_token to impersonate that user. This function can only be called from a process which has the required NT user rights to perform a logon.

See also the chapter "New setuid concept" in the Cygwin user's guide.

See also cygwin_set_impersonation_token