Подскажите, как с помощью функций NativeAPI поднять привилегиии до SE_SHUTDOWN_PRIVILEGE. Без этого функция NtShutdownSystem не работает.
У меня RtlAdjustPrivilege не поднимает права. Пишу вот так: Код (Text): RtlAdjustPrivilege(SE_SHUTDOWN_PRIVILEGE, TRUE, TRUE, &priv); if (priv) BootPrint(L"\nShutting down...\n"); NtShutdownSystem(ShutdownPowerOff); Сообщение не печатается, винда не останавливается. Сейчас попробую другую функцию.
Вот может поможет код на Дельфи, это для выключение компьютера на Windows XP и выше (если не ошибаюсь) Код (Text): //Переменные: var ph: THandle; tp ,prevst: TTokenPrivileges; rl: DWORD; uu: Integer; //Сама функция: OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph); LookupPrivilegeValue(Nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid); tp.PrivilegeCount := 1; tp.Privileges[0].Attributes := 2; AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl); ExitWindowsEx(EWX_FORCE+EWX_POWEROFF, 1);