af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2005 Benjamin Cutler
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync/*
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * a choice of LGPL license versions is made available with the language indicating
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * of the LGPL is applied is otherwise unspecified.
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync */
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifndef __WINE_POWRPROF_H
af062818b47340eef15700d2f0211576ba3506eevboxsync#define __WINE_POWRPROF_H 1
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#define EnableSysTrayBatteryMeter 0x01
af062818b47340eef15700d2f0211576ba3506eevboxsync#define EnableMultiBatteryDisplay 0x02
af062818b47340eef15700d2f0211576ba3506eevboxsync#define EnablePasswordLogon 0x04
af062818b47340eef15700d2f0211576ba3506eevboxsync#define EnableWakeOnRing 0x08
af062818b47340eef15700d2f0211576ba3506eevboxsync#define EnableVideoDimDisplay 0x10
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _GLOBAL_MACHINE_POWER_POLICY {
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG Revision;
af062818b47340eef15700d2f0211576ba3506eevboxsync SYSTEM_POWER_STATE LidOpenWakeAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync SYSTEM_POWER_STATE LidOpenWakeDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG BroadcastCapacityResolution;
af062818b47340eef15700d2f0211576ba3506eevboxsync} GLOBAL_MACHINE_POWER_POLICY,
af062818b47340eef15700d2f0211576ba3506eevboxsync*PGLOBAL_MACHINE_POWER_POLICY;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _GLOBAL_USER_POWER_POLICY {
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG Revision;
af062818b47340eef15700d2f0211576ba3506eevboxsync POWER_ACTION_POLICY PowerButtonAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync POWER_ACTION_POLICY PowerButtonDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync POWER_ACTION_POLICY SleepButtonAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync POWER_ACTION_POLICY SleepButtonDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync POWER_ACTION_POLICY LidCloseAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync POWER_ACTION_POLICY LidCloseDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG GlobalFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync} GLOBAL_USER_POWER_POLICY,
af062818b47340eef15700d2f0211576ba3506eevboxsync*PGLOBAL_USER_POWER_POLICY;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _GLOBAL_POWER_POLICY {
af062818b47340eef15700d2f0211576ba3506eevboxsync GLOBAL_USER_POWER_POLICY user;
af062818b47340eef15700d2f0211576ba3506eevboxsync GLOBAL_MACHINE_POWER_POLICY mach;
af062818b47340eef15700d2f0211576ba3506eevboxsync} GLOBAL_POWER_POLICY,
af062818b47340eef15700d2f0211576ba3506eevboxsync*PGLOBAL_POWER_POLICY;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _MACHINE_POWER_POLICY {
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG Revision;
af062818b47340eef15700d2f0211576ba3506eevboxsync SYSTEM_POWER_STATE MinSleepAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync SYSTEM_POWER_STATE MinSleepDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync SYSTEM_POWER_STATE ReducedLatencySleepAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync SYSTEM_POWER_STATE ReducedLatencySleepDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG DozeTimeoutAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG DozeTimeoutDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG DozeS4TimeoutAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG DozeS4TimeoutDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR MinThrottleAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR MinThrottleDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR pad1[2];
af062818b47340eef15700d2f0211576ba3506eevboxsync POWER_ACTION_POLICY OverThrottledAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync POWER_ACTION_POLICY OverThrottledDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync} MACHINE_POWER_POLICY,
af062818b47340eef15700d2f0211576ba3506eevboxsync*PMACHINE_POWER_POLICY;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _MACHINE_PROCESSOR_POWER_POLICY {
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG Revision;
af062818b47340eef15700d2f0211576ba3506eevboxsync PROCESSOR_POWER_POLICY ProcessorPolicyAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync PROCESSOR_POWER_POLICY ProcessorPolicyDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync} MACHINE_PROCESSOR_POWER_POLICY,
af062818b47340eef15700d2f0211576ba3506eevboxsync*PMACHINE_PROCESSOR_POWER_POLICY;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _USER_POWER_POLICY {
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG Revision;
af062818b47340eef15700d2f0211576ba3506eevboxsync POWER_ACTION_POLICY IdleAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync POWER_ACTION_POLICY IdleDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG IdleTimeoutAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG IdleTimeoutDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR IdleSensitivityAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR IdleSensitivityDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR ThrottlePolicyAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR ThrottlePolicyDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync SYSTEM_POWER_STATE MaxSleepAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync SYSTEM_POWER_STATE MaxSleepDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG Reserved[2];
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG VideoTimeoutAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG VideoTimeoutDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG SpindownTimeoutAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG SpindownTimeoutDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOLEAN OptimizeForPowerAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOLEAN OptimizeForPowerDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR FanThrottleToleranceAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR FanThrottleToleranceDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR ForcedThrottleAc;
af062818b47340eef15700d2f0211576ba3506eevboxsync UCHAR ForcedThrottleDc;
af062818b47340eef15700d2f0211576ba3506eevboxsync} USER_POWER_POLICY,
af062818b47340eef15700d2f0211576ba3506eevboxsync*PUSER_POWER_POLICY;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _POWER_POLICY {
af062818b47340eef15700d2f0211576ba3506eevboxsync USER_POWER_POLICY user;
af062818b47340eef15700d2f0211576ba3506eevboxsync MACHINE_POWER_POLICY mach;
af062818b47340eef15700d2f0211576ba3506eevboxsync} POWER_POLICY,
af062818b47340eef15700d2f0211576ba3506eevboxsync*PPOWER_POLICY;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsyncextern "C" {
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef BOOLEAN (CALLBACK* PWRSCHEMESENUMPROC)(UINT, DWORD, LPWSTR, DWORD, LPWSTR, PPOWER_POLICY, LPARAM);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncNTSTATUS WINAPI CallNtPowerInformation(POWER_INFORMATION_LEVEL, PVOID, ULONG, PVOID, ULONG);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI CanUserWritePwrScheme(VOID);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI DeletePwrScheme(UINT);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI EnumPwrSchemes(PWRSCHEMESENUMPROC, LPARAM);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI GetActivePwrScheme(PUINT);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI GetPwrDiskSpindownRange(PUINT, PUINT);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI IsPwrHibernateAllowed(VOID);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI IsPwrShutdownAllowed(VOID);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI IsPwrSuspendAllowed(VOID);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI ReadProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI ReadPwrScheme(UINT, PPOWER_POLICY);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI SetActivePwrScheme(UINT, PGLOBAL_POWER_POLICY, PPOWER_POLICY);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI SetSuspendState(BOOLEAN, BOOLEAN, BOOLEAN);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI WriteProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOLEAN WINAPI WritePwrScheme(PUINT, LPWSTR, LPWSTR, PPOWER_POLICY);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* _POWRPROF_H */