1 /* $Id: shutdown.c,v 1.1 1999/05/19 16:43:30 ea Exp $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS system libraries
5 * FILE: lib/advapi32/misc/shutdown.c
6 * PURPOSE: System shutdown functions
7 * PROGRAMMER: Emanuele Aliberti
14 #include <ddk/ntddk.h>
18 /**********************************************************************
19 * AbortSystemShutdownW
29 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
34 /**********************************************************************
35 * AbortSystemShutdownA
43 UNICODE_STRING MachineNameW
= USZ
;
47 Status
= RtlAnsiStringToUnicodeString(
52 if (STATUS_SUCCESS
!= Status
)
54 SetLastError(RtlNtStatusToDosError(Status
));
57 rv
= AbortSystemShutdownW(
63 SetLastError(ERROR_SUCCESS
);
68 /**********************************************************************
69 * InitiateSystemShutdownW
73 InitiateSystemShutdownW(
77 BOOL bForceAppsClosed
,
78 BOOL bRebootAfterShutdown
81 SHUTDOWN_ACTION Action
= ShutdownNoReboot
;
86 /* remote machine shutdown not supported yet */
87 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
93 Status
= NtShutdownSystem(Action
);
94 SetLastError(RtlNtStatusToDosError(Status
));
99 /**********************************************************************
100 * InitiateSystemShutdownA
104 InitiateSystemShutdownA(
108 BOOL bForceAppsClosed
,
109 BOOL bRebootAfterShutdown
112 UNICODE_STRING MachineNameW
= USZ
;
113 UNICODE_STRING MessageW
= USZ
;
120 Status
= RtlAnsiStringToUnicodeString(
125 if (STATUS_SUCCESS
!= Status
)
127 SetLastError(RtlNtStatusToDosError(Status
));
133 Status
= RtlAnsiStringToUnicodeString(
138 if (STATUS_SUCCESS
!= Status
)
140 if (MachineNameW
.Length
)
142 RtlFreeUnicodeString(&MachineNameW
);
144 SetLastError(RtlNtStatusToDosError(Status
));
148 rv
= InitiateSystemShutdownW(
155 LastError
= GetLastError();
156 if (MachineNameW
.Length
) RtlFreeUnicodeString(&MachineNameW
);
157 if (MessageW
.Length
) RtlFreeUnicodeString(&MessageW
);
158 SetLastError(LastError
);