-/* $Id: shutdown.c,v 1.4 2002/09/07 15:12:22 chorns Exp $
+/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS system libraries
- * FILE: lib/advapi32/misc/shutdown.c
- * PURPOSE: System shutdown functions
+ * PROJECT: ReactOS system libraries
+ * FILE: lib/advapi32/misc/shutdown.c
+ * PURPOSE: System shutdown functions
* PROGRAMMER: Emanuele Aliberti
* UPDATE HISTORY:
- * 19990413 EA created
- * 19990515 EA
+ * 19990413 EA created
+ * 19990515 EA
*/
#include <advapi32.h>
-
+#include <wine/debug.h>
#define USZ {0,0,0}
/**********************************************************************
- * AbortSystemShutdownW
+ * AbortSystemShutdownW
+ *
+ * @unimplemented
*/
-BOOL
-STDCALL
-AbortSystemShutdownW(
- LPCWSTR lpMachineName
- )
+BOOL STDCALL
+AbortSystemShutdownW(LPCWSTR lpMachineName)
{
- NTSTATUS Status;
-
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
}
/**********************************************************************
- * AbortSystemShutdownA
+ * AbortSystemShutdownA
+ *
+ * @unimplemented
*/
-BOOL
-STDCALL
-AbortSystemShutdownA(
- LPCSTR lpMachineName
- )
+BOOL STDCALL
+AbortSystemShutdownA(LPCSTR lpMachineName)
{
- ANSI_STRING MachineNameA;
- UNICODE_STRING MachineNameW;
- NTSTATUS Status;
- BOOL rv;
-
- RtlInitAnsiString(
- & MachineNameA,
- lpMachineName
- );
- Status = RtlAnsiStringToUnicodeString(
- & MachineNameW,
- & MachineNameA,
- TRUE
- );
- if (STATUS_SUCCESS != Status)
- {
- SetLastError(RtlNtStatusToDosError(Status));
- return FALSE;
- }
- rv = AbortSystemShutdownW(
- MachineNameW.Buffer
- );
- RtlFreeAnsiString(
- & MachineNameA
- );
- RtlFreeUnicodeString(
- & MachineNameW
- );
- SetLastError(ERROR_SUCCESS);
- return rv;
+ ANSI_STRING MachineNameA;
+ UNICODE_STRING MachineNameW;
+ NTSTATUS Status;
+ BOOL rv;
+
+ RtlInitAnsiString(&MachineNameA, (LPSTR)lpMachineName);
+ Status = RtlAnsiStringToUnicodeString(&MachineNameW, &MachineNameA, TRUE);
+ if (STATUS_SUCCESS != Status) {
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
+ }
+ rv = AbortSystemShutdownW(MachineNameW.Buffer);
+ RtlFreeUnicodeString(&MachineNameW);
+ SetLastError(ERROR_SUCCESS);
+ return rv;
}
/**********************************************************************
- * InitiateSystemShutdownW
+ * InitiateSystemShutdownW
+ *
+ * @unimplemented
*/
-BOOL
-STDCALL
+BOOL STDCALL
InitiateSystemShutdownW(
- LPWSTR lpMachineName,
- LPWSTR lpMessage,
- DWORD dwTimeout,
- BOOL bForceAppsClosed,
- BOOL bRebootAfterShutdown
- )
+ LPWSTR lpMachineName,
+ LPWSTR lpMessage,
+ DWORD dwTimeout,
+ BOOL bForceAppsClosed,
+ BOOL bRebootAfterShutdown)
{
- SHUTDOWN_ACTION Action = ShutdownNoReboot;
- NTSTATUS Status;
-
- if (lpMachineName)
- {
- /* FIXME: remote machine shutdown not supported yet */
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
- }
- if (dwTimeout)
- {
- }
- Status = NtShutdownSystem(Action);
- SetLastError(RtlNtStatusToDosError(Status));
- return FALSE;
+ SHUTDOWN_ACTION Action = ShutdownNoReboot;
+ NTSTATUS Status;
+
+ if (lpMachineName) {
+ /* FIXME: remote machine shutdown not supported yet */
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+ }
+ if (dwTimeout) {
+ }
+ Status = NtShutdownSystem(Action);
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
}
/**********************************************************************
- * InitiateSystemShutdownA
+ * InitiateSystemShutdownA
+ *
+ * @unimplemented
*/
BOOL
STDCALL
InitiateSystemShutdownA(
- LPSTR lpMachineName,
- LPSTR lpMessage,
- DWORD dwTimeout,
- BOOL bForceAppsClosed,
- BOOL bRebootAfterShutdown
- )
+ LPSTR lpMachineName,
+ LPSTR lpMessage,
+ DWORD dwTimeout,
+ BOOL bForceAppsClosed,
+ BOOL bRebootAfterShutdown)
{
- ANSI_STRING MachineNameA;
- ANSI_STRING MessageA;
- UNICODE_STRING MachineNameW;
- UNICODE_STRING MessageW;
- NTSTATUS Status;
- INT LastError;
- BOOL rv;
-
- if (lpMachineName)
- {
- RtlInitAnsiString(
- & MachineNameA,
- lpMachineName
- );
- Status = RtlAnsiStringToUnicodeString(
- & MachineNameW,
- & MachineNameA,
- TRUE
- );
- if (STATUS_SUCCESS != Status)
- {
- RtlFreeAnsiString(&MachineNameA);
- SetLastError(RtlNtStatusToDosError(Status));
- return FALSE;
- }
- }
- if (lpMessage)
- {
- RtlInitAnsiString(
- & MessageA,
- lpMessage
- );
- Status = RtlAnsiStringToUnicodeString(
- & MessageW,
- & MessageA,
- TRUE
- );
- if (STATUS_SUCCESS != Status)
- {
- if (MachineNameW.Length)
- {
- RtlFreeAnsiString(&MachineNameA);
- RtlFreeUnicodeString(&MachineNameW);
- }
- RtlFreeAnsiString(&MessageA);
- SetLastError(RtlNtStatusToDosError(Status));
- return FALSE;
- }
- }
- rv = InitiateSystemShutdownW(
- MachineNameW.Buffer,
- MessageW.Buffer,
- dwTimeout,
- bForceAppsClosed,
- bRebootAfterShutdown
- );
- LastError = GetLastError();
- if (lpMachineName)
- {
- RtlFreeAnsiString(&MachineNameA);
- RtlFreeUnicodeString(&MachineNameW);
+ ANSI_STRING MachineNameA;
+ ANSI_STRING MessageA;
+ UNICODE_STRING MachineNameW;
+ UNICODE_STRING MessageW;
+ NTSTATUS Status;
+ INT LastError;
+ BOOL rv;
+
+ if (lpMachineName) {
+ RtlInitAnsiString(&MachineNameA, lpMachineName);
+ Status = RtlAnsiStringToUnicodeString(&MachineNameW, &MachineNameA, TRUE);
+ if (STATUS_SUCCESS != Status) {
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
}
- if (lpMessage)
- {
- RtlFreeAnsiString(&MessageA);
- RtlFreeUnicodeString(&MessageW);
+ }
+ if (lpMessage) {
+ RtlInitAnsiString(&MessageA, lpMessage);
+ Status = RtlAnsiStringToUnicodeString(&MessageW, &MessageA, TRUE);
+ if (STATUS_SUCCESS != Status) {
+ if (MachineNameW.Length) {
+ RtlFreeUnicodeString(&MachineNameW);
+ }
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
}
- SetLastError(LastError);
- return rv;
+ }
+ rv = InitiateSystemShutdownW(
+ MachineNameW.Buffer,
+ MessageW.Buffer,
+ dwTimeout,
+ bForceAppsClosed,
+ bRebootAfterShutdown);
+ LastError = GetLastError();
+ if (lpMachineName) {
+ RtlFreeUnicodeString(&MachineNameW);
+ }
+ if (lpMessage) {
+ RtlFreeUnicodeString(&MessageW);
+ }
+ SetLastError(LastError);
+ return rv;
}
+/******************************************************************************
+ * InitiateSystemShutdownExW [ADVAPI32.@]
+ *
+ * see InitiateSystemShutdownExA
+ */
+BOOL WINAPI InitiateSystemShutdownExW( LPWSTR lpMachineName, LPWSTR lpMessage,
+ DWORD dwTimeout, BOOL bForceAppsClosed, BOOL bRebootAfterShutdown,
+ DWORD dwReason)
+{
+ FIXME("%s %s %ld %d %d %ld\n", debugstr_w(lpMachineName),
+ debugstr_w(lpMessage), dwTimeout, bForceAppsClosed,
+ bRebootAfterShutdown, dwReason);
+ return TRUE;
+}
/* EOF */
-