4 #pragma GCC system_header
11 #define EnableMultiBatteryDisplay 2
12 #define EnablePasswordLogon 4
13 #define EnableSysTrayBatteryMeter 1
14 #define EnableWakeOnRing 8
15 #define EnableVideoDimDisplay 16
16 #define NEWSCHEME (UINT)-1
19 #include <ntdef.h> /* for NTSTATUS */
20 typedef struct _GLOBAL_MACHINE_POWER_POLICY
{
22 SYSTEM_POWER_STATE LidOpenWakeAc
;
23 SYSTEM_POWER_STATE LidOpenWakeDc
;
24 ULONG BroadcastCapacityResolution
;
25 } GLOBAL_MACHINE_POWER_POLICY
, *PGLOBAL_MACHINE_POWER_POLICY
;
26 typedef struct _GLOBAL_USER_POWER_POLICY
{
28 POWER_ACTION_POLICY PowerButtonAc
;
29 POWER_ACTION_POLICY PowerButtonDc
;
30 POWER_ACTION_POLICY SleepButtonAc
;
31 POWER_ACTION_POLICY SleepButtonDc
;
32 POWER_ACTION_POLICY LidCloseAc
;
33 POWER_ACTION_POLICY LidCloseDc
;
34 SYSTEM_POWER_LEVEL DischargePolicy
[NUM_DISCHARGE_POLICIES
];
36 } GLOBAL_USER_POWER_POLICY
, *PGLOBAL_USER_POWER_POLICY
;
37 typedef struct _GLOBAL_POWER_POLICY
{
38 GLOBAL_USER_POWER_POLICY user
;
39 GLOBAL_MACHINE_POWER_POLICY mach
;
40 } GLOBAL_POWER_POLICY
, *PGLOBAL_POWER_POLICY
;
41 typedef struct _MACHINE_POWER_POLICY
{
43 SYSTEM_POWER_STATE MinSleepAc
;
44 SYSTEM_POWER_STATE MinSleepDc
;
45 SYSTEM_POWER_STATE ReducedLatencySleepAc
;
46 SYSTEM_POWER_STATE ReducedLatencySleepDc
;
49 ULONG DozeS4TimeoutAc
;
50 ULONG DozeS4TimeoutDc
;
54 POWER_ACTION_POLICY OverThrottledAc
;
55 POWER_ACTION_POLICY OverThrottledDc
;
56 } MACHINE_POWER_POLICY
, *PMACHINE_POWER_POLICY
;
57 typedef struct _MACHINE_PROCESSOR_POWER_POLICY
{
59 PROCESSOR_POWER_POLICY ProcessorPolicyAc
;
60 PROCESSOR_POWER_POLICY ProcessorPolicyDc
;
61 } MACHINE_PROCESSOR_POWER_POLICY
, *PMACHINE_PROCESSOR_POWER_POLICY
;
62 typedef struct _USER_POWER_POLICY
{
64 POWER_ACTION_POLICY IdleAc
;
65 POWER_ACTION_POLICY IdleDc
;
68 UCHAR IdleSensitivityAc
;
69 UCHAR IdleSensitivityDc
;
70 UCHAR ThrottlePolicyAc
;
71 UCHAR ThrottlePolicyDc
;
72 SYSTEM_POWER_STATE MaxSleepAc
;
73 SYSTEM_POWER_STATE MaxSleepDc
;
77 ULONG SpindownTimeoutAc
;
78 ULONG SpindownTimeoutDc
;
79 BOOLEAN OptimizeForPowerAc
;
80 BOOLEAN OptimizeForPowerDc
;
81 UCHAR FanThrottleToleranceAc
;
82 UCHAR FanThrottleToleranceDc
;
83 UCHAR ForcedThrottleAc
;
84 UCHAR ForcedThrottleDc
;
85 } USER_POWER_POLICY
, *PUSER_POWER_POLICY
;
86 typedef struct _POWER_POLICY
{
87 USER_POWER_POLICY user
;
88 MACHINE_POWER_POLICY mach
;
89 } POWER_POLICY
, *PPOWER_POLICY
;
90 typedef BOOLEAN (CALLBACK
* PWRSCHEMESENUMPROC
)(UINT
, DWORD
, LPTSTR
, DWORD
, LPTSTR
, PPOWER_POLICY
, LPARAM
);
91 typedef BOOLEAN (CALLBACK
* PFNNTINITIATEPWRACTION
)(POWER_ACTION
, SYSTEM_POWER_STATE
, ULONG
, BOOLEAN
);
92 NTSTATUS WINAPI
CallNtPowerInformation(POWER_INFORMATION_LEVEL
, PVOID
, ULONG
, PVOID
, ULONG
);
93 BOOLEAN WINAPI
CanUserWritePwrScheme(VOID
);
94 BOOLEAN WINAPI
DeletePwrScheme(UINT
);
95 BOOLEAN WINAPI
EnumPwrSchemes(PWRSCHEMESENUMPROC
, LPARAM
);
96 BOOLEAN WINAPI
GetActivePwrScheme(PUINT
);
97 BOOLEAN WINAPI
GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY
, PPOWER_POLICY
);
98 BOOLEAN WINAPI
GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES
);
99 BOOLEAN WINAPI
GetPwrDiskSpindownRange(PUINT
, PUINT
);
100 BOOLEAN WINAPI
IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY
);
101 BOOLEAN WINAPI
IsPwrHibernateAllowed(VOID
);
102 BOOLEAN WINAPI
IsPwrShutdownAllowed(VOID
);
103 BOOLEAN WINAPI
IsPwrSuspendAllowed(VOID
);
104 BOOLEAN WINAPI
ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY
);
105 BOOLEAN WINAPI
ReadProcessorPwrScheme(UINT
, PMACHINE_PROCESSOR_POWER_POLICY
);
106 BOOLEAN WINAPI
ReadPwrScheme(UINT
, PPOWER_POLICY
);
107 BOOLEAN WINAPI
SetActivePwrScheme(UINT
, PGLOBAL_POWER_POLICY
, PPOWER_POLICY
);
108 BOOLEAN WINAPI
SetSuspendState(BOOLEAN
, BOOLEAN
, BOOLEAN
);
109 BOOLEAN WINAPI
WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY
);
110 BOOLEAN WINAPI
WriteProcessorPwrScheme(UINT
, PMACHINE_PROCESSOR_POWER_POLICY
);
111 BOOLEAN WINAPI
ValidatePowerPolicies(PGLOBAL_POWER_POLICY
, PPOWER_POLICY
);
112 BOOLEAN WINAPI
WritePwrScheme(PUINT
, LPTSTR
, LPTSTR
, PPOWER_POLICY
);
114 #endif /* RC_INVOKED */
120 #endif /* _POWRPROF_H */