| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the w64 mingw-runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef struct _GLOBAL_MACHINE_POWER_POLICY{ |
| ULONG Revision; |
| SYSTEM_POWER_STATE LidOpenWakeAc; |
| SYSTEM_POWER_STATE LidOpenWakeDc; |
| ULONG BroadcastCapacityResolution; |
| } GLOBAL_MACHINE_POWER_POLICY,*PGLOBAL_MACHINE_POWER_POLICY; |
| |
| typedef struct _GLOBAL_USER_POWER_POLICY{ |
| ULONG Revision; |
| POWER_ACTION_POLICY PowerButtonAc; |
| POWER_ACTION_POLICY PowerButtonDc; |
| POWER_ACTION_POLICY SleepButtonAc; |
| POWER_ACTION_POLICY SleepButtonDc; |
| POWER_ACTION_POLICY LidCloseAc; |
| POWER_ACTION_POLICY LidCloseDc; |
| SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; |
| ULONG GlobalFlags; |
| } GLOBAL_USER_POWER_POLICY,*PGLOBAL_USER_POWER_POLICY; |
| |
| typedef struct _GLOBAL_POWER_POLICY{ |
| GLOBAL_USER_POWER_POLICY user; |
| GLOBAL_MACHINE_POWER_POLICY mach; |
| } GLOBAL_POWER_POLICY,*PGLOBAL_POWER_POLICY; |
| |
| typedef struct _MACHINE_POWER_POLICY{ |
| ULONG Revision; |
| SYSTEM_POWER_STATE MinSleepAc; |
| SYSTEM_POWER_STATE MinSleepDc; |
| SYSTEM_POWER_STATE ReducedLatencySleepAc; |
| SYSTEM_POWER_STATE ReducedLatencySleepDc; |
| ULONG DozeTimeoutAc; |
| ULONG DozeTimeoutDc; |
| ULONG DozeS4TimeoutAc; |
| ULONG DozeS4TimeoutDc; |
| UCHAR MinThrottleAc; |
| UCHAR MinThrottleDc; |
| UCHAR pad1[2]; |
| POWER_ACTION_POLICY OverThrottledAc; |
| POWER_ACTION_POLICY OverThrottledDc; |
| } MACHINE_POWER_POLICY,*PMACHINE_POWER_POLICY; |
| |
| typedef struct _MACHINE_PROCESSOR_POWER_POLICY { |
| ULONG Revision; |
| PROCESSOR_POWER_POLICY ProcessorPolicyAc; |
| PROCESSOR_POWER_POLICY ProcessorPolicyDc; |
| } MACHINE_PROCESSOR_POWER_POLICY,*PMACHINE_PROCESSOR_POWER_POLICY; |
| |
| typedef struct _USER_POWER_POLICY{ |
| ULONG Revision; |
| POWER_ACTION_POLICY IdleAc; |
| POWER_ACTION_POLICY IdleDc; |
| ULONG IdleTimeoutAc; |
| ULONG IdleTimeoutDc; |
| UCHAR IdleSensitivityAc; |
| UCHAR IdleSensitivityDc; |
| UCHAR ThrottlePolicyAc; |
| UCHAR ThrottlePolicyDc; |
| SYSTEM_POWER_STATE MaxSleepAc; |
| SYSTEM_POWER_STATE MaxSleepDc; |
| ULONG Reserved[2]; |
| ULONG VideoTimeoutAc; |
| ULONG VideoTimeoutDc; |
| ULONG SpindownTimeoutAc; |
| ULONG SpindownTimeoutDc; |
| BOOLEAN OptimizeForPowerAc; |
| BOOLEAN OptimizeForPowerDc; |
| UCHAR FanThrottleToleranceAc; |
| UCHAR FanThrottleToleranceDc; |
| UCHAR ForcedThrottleAc; |
| UCHAR ForcedThrottleDc; |
| } USER_POWER_POLICY,*PUSER_POWER_POLICY; |
| |
| typedef struct _POWER_POLICY{ |
| USER_POWER_POLICY user; |
| MACHINE_POWER_POLICY mach; |
| } POWER_POLICY,*PPOWER_POLICY; |
| |
| #define EnableSysTrayBatteryMeter 0x01 |
| #define EnableMultiBatteryDisplay 0x02 |
| #define EnablePasswordLogon 0x04 |
| #define EnableWakeOnRing 0x08 |
| #define EnableVideoDimDisplay 0x10 |
| |
| #define NEWSCHEME (UINT)-1 |
| |
| typedef BOOLEAN (CALLBACK *PWRSCHEMESENUMPROC)(UINT,DWORD,LPTSTR,DWORD,LPTSTR,PPOWER_POLICY,LPARAM); |
| typedef BOOLEAN (CALLBACK *PFNNTINITIATEPWRACTION)(POWER_ACTION,SYSTEM_POWER_STATE,ULONG,BOOLEAN); |
| |
| BOOLEAN WINAPI GetPwrDiskSpindownRange(PUINT,PUINT); |
| BOOLEAN WINAPI EnumPwrSchemes(PWRSCHEMESENUMPROC,LPARAM); |
| BOOLEAN WINAPI ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY); |
| BOOLEAN WINAPI ReadPwrScheme(UINT,PPOWER_POLICY); |
| BOOLEAN WINAPI WritePwrScheme(PUINT,LPTSTR,LPTSTR,PPOWER_POLICY); |
| BOOLEAN WINAPI WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY); |
| BOOLEAN WINAPI DeletePwrScheme(UINT); |
| BOOLEAN WINAPI GetActivePwrScheme(PUINT); |
| BOOLEAN WINAPI SetActivePwrScheme(UINT,PGLOBAL_POWER_POLICY,PPOWER_POLICY); |
| BOOLEAN WINAPI GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES); |
| BOOLEAN WINAPI IsPwrSuspendAllowed(VOID); |
| BOOLEAN WINAPI IsPwrHibernateAllowed(VOID); |
| BOOLEAN WINAPI IsPwrShutdownAllowed(VOID); |
| BOOLEAN WINAPI IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY); |
| BOOLEAN WINAPI SetSuspendState(BOOLEAN,BOOLEAN,BOOLEAN); |
| BOOLEAN WINAPI GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY,PPOWER_POLICY); |
| BOOLEAN WINAPI CanUserWritePwrScheme(VOID); |
| BOOLEAN WINAPI ReadProcessorPwrScheme(UINT,PMACHINE_PROCESSOR_POWER_POLICY); |
| BOOLEAN WINAPI WriteProcessorPwrScheme(UINT,PMACHINE_PROCESSOR_POWER_POLICY); |
| BOOLEAN WINAPI ValidatePowerPolicies(PGLOBAL_POWER_POLICY,PPOWER_POLICY); |
| #ifndef NT_SUCCESS |
| #define NTSTATUS LONG |
| #define _OVERRIDE_NTSTATUS_ |
| #endif |
| |
| NTSTATUS WINAPI CallNtPowerInformation(POWER_INFORMATION_LEVEL,PVOID,ULONG,PVOID,ULONG); |
| |
| #ifdef _OVERRIDE_NTSTATUS_ |
| #undef NTSTATUS |
| #endif |
| |
| #ifdef __cplusplus |
| } |
| #endif |