Пример #1
0
        // Получение привелегий Backup
        static bool RequestSetBackupPrivilege()
        {
            LUID luid;

            if (!LookupPrivilegeValue(null, "SeBackupPrivilege", out luid))
            {
                return(false);
            }

            IntPtr hToken;
            TOKEN_PRIVILEGES_SINGLE tp = new TOKEN_PRIVILEGES_SINGLE
            {
                PrivilegeCount = 1,
                Luid           = luid,
                Attributes     = SE_PRIVILEGE_ENABLED
            };

            return
                (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, out hToken) &&
                 AdjustTokenPrivileges(hToken, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero) &&
                 (Marshal.GetLastWin32Error() != ERROR_NOT_ALL_ASSIGNED));
        }
Пример #2
0
 static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, ref TOKEN_PRIVILEGES_SINGLE newst, int len, IntPtr prev, IntPtr relen);