OSDN Git Service

Prepare environment for Earnie's tools.
[mingw/mingw-org-wsl.git] / wslapi / include / powrprof.h
1 #ifndef _POWRPROF_H
2 #define _POWRPROF_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
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
17
18 #ifndef RC_INVOKED
19 #include <ntdef.h>  /* for NTSTATUS */
20 typedef struct _GLOBAL_MACHINE_POWER_POLICY{
21    ULONG Revision;
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{
27    ULONG Revision;
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];
35    ULONG GlobalFlags;
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{
42    ULONG Revision;
43    SYSTEM_POWER_STATE MinSleepAc;
44    SYSTEM_POWER_STATE MinSleepDc;
45    SYSTEM_POWER_STATE ReducedLatencySleepAc;
46    SYSTEM_POWER_STATE ReducedLatencySleepDc;
47    ULONG DozeTimeoutAc;
48    ULONG DozeTimeoutDc;
49    ULONG DozeS4TimeoutAc;
50    ULONG DozeS4TimeoutDc;
51    UCHAR MinThrottleAc;
52    UCHAR MinThrottleDc;
53    UCHAR pad1[2];
54    POWER_ACTION_POLICY OverThrottledAc;
55    POWER_ACTION_POLICY OverThrottledDc;
56 } MACHINE_POWER_POLICY, *PMACHINE_POWER_POLICY;
57 typedef struct _MACHINE_PROCESSOR_POWER_POLICY {
58    ULONG Revision;
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{
63    ULONG Revision;
64    POWER_ACTION_POLICY IdleAc;
65    POWER_ACTION_POLICY IdleDc;
66    ULONG IdleTimeoutAc;
67    ULONG IdleTimeoutDc;
68    UCHAR IdleSensitivityAc;
69    UCHAR IdleSensitivityDc;
70    UCHAR ThrottlePolicyAc;
71    UCHAR ThrottlePolicyDc;
72    SYSTEM_POWER_STATE MaxSleepAc;
73    SYSTEM_POWER_STATE MaxSleepDc;
74    ULONG Reserved[2];
75    ULONG VideoTimeoutAc;
76    ULONG VideoTimeoutDc;
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);
113
114 #endif /* RC_INVOKED */
115
116 #ifdef __cplusplus
117 }
118 #endif
119
120 #endif /* _POWRPROF_H */