2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/ex/power.c
5 * PURPOSE: Power managment
6 * PROGRAMMER: David Welch (welch@cwcom.net)
9 * Added reboot support 30/01/99
12 /* INCLUDES *****************************************************************/
15 #include <internal/debug.h>
17 /* FUNCTIONS *****************************************************************/
20 NtSetSystemPowerState(IN POWER_ACTION SystemAction
,
21 IN SYSTEM_POWER_STATE MinSystemState
,
24 /* Windows 2000 only */
25 return(STATUS_NOT_IMPLEMENTED
);
32 NtShutdownSystem(IN SHUTDOWN_ACTION Action
)
34 if (Action
> ShutdownPowerOff
)
35 return STATUS_INVALID_PARAMETER
;
37 IoShutdownRegisteredDevices();
39 IoShutdownRegisteredFileSystems();
41 PiShutdownProcessManager();
42 MiShutdownMemoryManager();
44 if (Action
== ShutdownNoReboot
)
48 HalReturnToFirmware (FIRMWARE_OFF
);
50 PopSetSystemPowerState(PowerSystemShutdown
);
52 Ke386DisableInterrupts();
60 else if (Action
== ShutdownReboot
)
62 HalReturnToFirmware (FIRMWARE_REBOOT
);
66 HalReturnToFirmware (FIRMWARE_HALT
);
69 return STATUS_SUCCESS
;