private static void AdjustToken()
        {
            using (Process process = Process.GetCurrentProcess())
            {
                SafeTokenHandle hToken = SafeTokenHandle.InvalidHandle;

                try
                {
                    if (!NativeMethods.OpenProcessToken(process.Handle, TokenAccessLevels.AdjustPrivileges, ref hToken))
                    {
                        throw PscxException.LastWin32Exception();
                    }

                    TokenPrivilegeCollection privileges = new TokenPrivilegeCollection();

                    privileges.Enable(TokenPrivilege.Backup);
                    privileges.Enable(TokenPrivilege.Restore);

                    Utils.AdjustTokenPrivileges(hToken, privileges);
                }
                finally
                {
                    hToken.Dispose();
                }
            }
        }
Exemple #2
0
 public static void AdjustTokenPrivileges(SafeTokenHandle hToken, TokenPrivilegeCollection privileges)
 {
     byte[] buffer = privileges.ToTOKEN_PRIVILEGES();
     if (!NativeMethods.AdjustTokenPrivileges(hToken,
                                              false,
                                              buffer,
                                              buffer.Length,
                                              IntPtr.Zero,
                                              IntPtr.Zero))
     {
         throw PscxException.LastWin32Exception();
     }
 }
Exemple #3
0
        private static void AdjustToken()
        {
            using (Process process = Process.GetCurrentProcess())
            {
                SafeTokenHandle hToken = SafeTokenHandle.InvalidHandle;
                
                try
                {
                    if (!NativeMethods.OpenProcessToken(process.Handle, TokenAccessLevels.AdjustPrivileges, ref hToken))
                    {
                        throw PscxException.LastWin32Exception();
                    }

                    TokenPrivilegeCollection privileges = new TokenPrivilegeCollection();
                    
                    privileges.Enable(TokenPrivilege.Backup);
                    privileges.Enable(TokenPrivilege.Restore);

                    Utils.AdjustTokenPrivileges(hToken, privileges);
                }
                finally
                {
                    hToken.Dispose();
                }
            }
        }