#define NDEBUG
#include <debug.h>
-#define STUB \
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED); \
- DPRINT1("%s() is UNIMPLEMENTED!\n", __FUNCTION__)
NTSYSAPI
NTSTATUS
OUT EXECUTION_STATE *PreviousFlags
);
+NTSYSAPI
+NTSTATUS
+NTAPI
+NtInitiatePowerAction(
+ IN POWER_ACTION SystemAction,
+ IN SYSTEM_POWER_STATE MinSystemState,
+ IN ULONG Flags,
+ IN BOOLEAN Asynchronous
+);
+
/* PUBLIC FUNCTIONS ***********************************************************/
/*
}
/*
- * @unimplemented
+ * @implemented
*/
BOOL WINAPI
SetSystemPowerState(BOOL fSuspend, BOOL fForce)
{
- STUB;
- return FALSE;
+ SYSTEM_POWER_STATE MinSystemState = (!fSuspend ? PowerSystemHibernate : PowerSystemSleeping1);
+ ULONG Flags = (!fForce ? POWER_ACTION_QUERY_ALLOWED : 0);
+ NTSTATUS Status;
+
+ Status = NtInitiatePowerAction(PowerActionSleep,
+ MinSystemState,
+ Flags,
+ FALSE);
+
+ if (!NT_SUCCESS(Status))
+ {
+ SetLastErrorByStatus(Status);
+ return FALSE;
+ }
+
+ return TRUE;
}
/*
WINAPI
RequestDeviceWakeup(HANDLE hDevice)
{
- STUB;
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ DPRINT1("RequestDeviceWakeup is UNIMPLEMENTED!\n");
return 0;
}
WINAPI
CancelDeviceWakeupRequest(HANDLE hDevice)
{
- STUB;
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ DPRINT1("CancelDeviceWakeupRequest is UNIMPLEMENTED!\n");
return 0;
}
SetMessageWaitingIndicator(HANDLE hMsgIndicator,
ULONG ulMsgCount)
{
- STUB;
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ DPRINT1("SetMessageWaitingIndicator is UNIMPLEMENTED!\n");
return 0;
}