Author: hpoussin Date: Mon Aug 6 15:57:15 2007 New Revision: 28191
URL: http://svn.reactos.org/svn/reactos?rev=28191&view=rev Log: Enable shutdown privilege before trying to reboot
Modified: trunk/reactos/dll/win32/syssetup/install.c
Modified: trunk/reactos/dll/win32/syssetup/install.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/install.... ============================================================================== --- trunk/reactos/dll/win32/syssetup/install.c (original) +++ trunk/reactos/dll/win32/syssetup/install.c Mon Aug 6 15:57:15 2007 @@ -628,6 +628,8 @@ { TCHAR szBuffer[MAX_PATH]; DWORD LastError; + HANDLE token; + TOKEN_PRIVILEGES privs;
InitializeSetupActionLog(FALSE); LogItem(SYSSETUP_SEVERITY_INFORMATION, L"Installing ReactOS"); @@ -723,6 +725,34 @@ LogItem(SYSSETUP_SEVERITY_INFORMATION, L"Installing ReactOS done"); TerminateSetupActionLog();
+ /* Get shutdown privilege */ + if (! OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &token)) + { + DebugPrint("OpenProcessToken() failed!"); + return 0; + } + if (!LookupPrivilegeValue( + NULL, + SE_SHUTDOWN_NAME, + &privs.Privileges[0].Luid)) + { + DebugPrint("LookupPrivilegeValue() failed!"); + return 0; + } + privs.PrivilegeCount = 1; + privs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; + if (AdjustTokenPrivileges( + token, + FALSE, + &privs, + 0, + (PTOKEN_PRIVILEGES)NULL, + NULL) == 0) + { + DebugPrint("AdjustTokenPrivileges() failed!"); + return 0; + } + /// THE FOLLOWING DPRINT IS FOR THE SYSTEM REGRESSION TOOL /// DO NOT REMOVE!!! DbgPrint("SYSREG_CHECKPOINT:SYSSETUP_COMPLETE\n");