From a45da19ead2ea5903f0ed1f091e02a1b435ac002 Mon Sep 17 00:00:00 2001 From: Dmitry Chapyshev Date: Thu, 15 Jan 2009 17:07:01 +0000 Subject: [PATCH] - Move SetThreadExecutionState to power.c - Implement IsSystemResumeAutomatic - Implement SetThreadExecutionState svn path=/trunk/; revision=38772 --- reactos/dll/win32/kernel32/misc/power.c | 37 +++++++++++++++++++++++-- reactos/dll/win32/kernel32/misc/stubs.c | 20 ------------- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/reactos/dll/win32/kernel32/misc/power.c b/reactos/dll/win32/kernel32/misc/power.c index e94588c1256..be29e3bd8be 100644 --- a/reactos/dll/win32/kernel32/misc/power.c +++ b/reactos/dll/win32/kernel32/misc/power.c @@ -34,6 +34,19 @@ NtRequestWakeupLatency( IN LATENCY_TIME latency ); +NTSYSAPI +BOOLEAN +NTAPI +NtIsSystemResumeAutomatic(VOID); + +NTSYSAPI +NTSTATUS +NTAPI +NtSetThreadExecutionState( + IN EXECUTION_STATE esFlags, + OUT EXECUTION_STATE *PreviousFlags +); + /* PUBLIC FUNCTIONS ***********************************************************/ /* @@ -181,8 +194,7 @@ BOOL WINAPI IsSystemResumeAutomatic(VOID) { - STUB; - return 0; + return NtIsSystemResumeAutomatic(); } /* @@ -196,3 +208,24 @@ SetMessageWaitingIndicator(HANDLE hMsgIndicator, STUB; return 0; } + +/* + * @implemented + */ +EXECUTION_STATE +WINAPI +SetThreadExecutionState(EXECUTION_STATE esFlags) +{ + EXECUTION_STATE OldFlags; + NTSTATUS Status; + + Status = NtSetThreadExecutionState(esFlags, &OldFlags); + + if (!NT_SUCCESS(Status)) + { + SetLastErrorByStatus(Status); + return 0; + } + + return OldFlags; +} diff --git a/reactos/dll/win32/kernel32/misc/stubs.c b/reactos/dll/win32/kernel32/misc/stubs.c index 4bd44a59bfd..89f22405595 100644 --- a/reactos/dll/win32/kernel32/misc/stubs.c +++ b/reactos/dll/win32/kernel32/misc/stubs.c @@ -561,26 +561,6 @@ RestoreLastError( STUB; } -/* - * @unimplemented - */ -EXECUTION_STATE -WINAPI -SetThreadExecutionState( - EXECUTION_STATE esFlags - ) -{ - static EXECUTION_STATE current = - ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED | ES_USER_PRESENT; - EXECUTION_STATE old = current; - - DPRINT1("(0x%x): stub, harmless.\n", esFlags); - - if (!(current & ES_CONTINUOUS) || (esFlags & ES_CONTINUOUS)) - current = esFlags; - return old; -} - /* * @implemented */