public static extern Boolean DuplicateTokenEx( IntPtr hExistingToken, UInt32 dwDesiredAccess, ref Execute.Win32.WinBase._SECURITY_ATTRIBUTES lpTokenAttributes, Execute.Win32.WinNT._SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, Execute.Win32.WinNT.TOKEN_TYPE TokenType, out IntPtr phNewToken );
public static extern Boolean CreateProcessAsUser( IntPtr hToken, IntPtr lpApplicationName, IntPtr lpCommandLine, ref Execute.Win32.WinBase._SECURITY_ATTRIBUTES lpProcessAttributes, ref Execute.Win32.WinBase._SECURITY_ATTRIBUTES lpThreadAttributes, Boolean bInheritHandles, Execute.Win32.Advapi32.CREATION_FLAGS dwCreationFlags, IntPtr lpEnvironment, IntPtr lpCurrentDirectory, ref Execute.Win32.ProcessThreadsAPI._STARTUPINFO lpStartupInfo, out Execute.Win32.ProcessThreadsAPI._PROCESS_INFORMATION lpProcessInfo );