OSDN Git Service

Correct mistyped __MINGW_NOTHROW macro.
[mingw/mingw-org-wsl.git] / include / powrprof.h
1 /**
2  * @file powrprof.h
3  * Copyright 2012, 2013 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _POWRPROF_H
25 #define _POWRPROF_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 #define EnableMultiBatteryDisplay 2
34 #define EnablePasswordLogon 4
35 #define EnableSysTrayBatteryMeter 1
36 #define EnableWakeOnRing 8
37 #define EnableVideoDimDisplay 16
38 #define NEWSCHEME (UINT)-1
39
40 #ifndef RC_INVOKED
41 #include <ntdef.h>  /* for NTSTATUS */
42 typedef struct _GLOBAL_MACHINE_POWER_POLICY{
43    ULONG Revision;
44    SYSTEM_POWER_STATE LidOpenWakeAc;
45    SYSTEM_POWER_STATE LidOpenWakeDc;
46    ULONG BroadcastCapacityResolution;
47 } GLOBAL_MACHINE_POWER_POLICY, *PGLOBAL_MACHINE_POWER_POLICY;
48 typedef struct _GLOBAL_USER_POWER_POLICY{
49    ULONG Revision;
50    POWER_ACTION_POLICY PowerButtonAc;
51    POWER_ACTION_POLICY PowerButtonDc;
52    POWER_ACTION_POLICY SleepButtonAc;
53    POWER_ACTION_POLICY SleepButtonDc;
54    POWER_ACTION_POLICY LidCloseAc;
55    POWER_ACTION_POLICY LidCloseDc;
56    SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];
57    ULONG GlobalFlags;
58 } GLOBAL_USER_POWER_POLICY, *PGLOBAL_USER_POWER_POLICY;
59 typedef struct _GLOBAL_POWER_POLICY{
60    GLOBAL_USER_POWER_POLICY user;
61    GLOBAL_MACHINE_POWER_POLICY mach;
62 } GLOBAL_POWER_POLICY, *PGLOBAL_POWER_POLICY;
63 typedef struct _MACHINE_POWER_POLICY{
64    ULONG Revision;
65    SYSTEM_POWER_STATE MinSleepAc;
66    SYSTEM_POWER_STATE MinSleepDc;
67    SYSTEM_POWER_STATE ReducedLatencySleepAc;
68    SYSTEM_POWER_STATE ReducedLatencySleepDc;
69    ULONG DozeTimeoutAc;
70    ULONG DozeTimeoutDc;
71    ULONG DozeS4TimeoutAc;
72    ULONG DozeS4TimeoutDc;
73    UCHAR MinThrottleAc;
74    UCHAR MinThrottleDc;
75    UCHAR pad1[2];
76    POWER_ACTION_POLICY OverThrottledAc;
77    POWER_ACTION_POLICY OverThrottledDc;
78 } MACHINE_POWER_POLICY, *PMACHINE_POWER_POLICY;
79 typedef struct _MACHINE_PROCESSOR_POWER_POLICY {
80    ULONG Revision;
81    PROCESSOR_POWER_POLICY ProcessorPolicyAc;    
82    PROCESSOR_POWER_POLICY ProcessorPolicyDc;    
83 } MACHINE_PROCESSOR_POWER_POLICY, *PMACHINE_PROCESSOR_POWER_POLICY;
84 typedef struct _USER_POWER_POLICY{
85    ULONG Revision;
86    POWER_ACTION_POLICY IdleAc;
87    POWER_ACTION_POLICY IdleDc;
88    ULONG IdleTimeoutAc;
89    ULONG IdleTimeoutDc;
90    UCHAR IdleSensitivityAc;
91    UCHAR IdleSensitivityDc;
92    UCHAR ThrottlePolicyAc;
93    UCHAR ThrottlePolicyDc;
94    SYSTEM_POWER_STATE MaxSleepAc;
95    SYSTEM_POWER_STATE MaxSleepDc;
96    ULONG Reserved[2];
97    ULONG VideoTimeoutAc;
98    ULONG VideoTimeoutDc;
99    ULONG SpindownTimeoutAc;
100    ULONG SpindownTimeoutDc;
101    BOOLEAN OptimizeForPowerAc;
102    BOOLEAN OptimizeForPowerDc;
103    UCHAR FanThrottleToleranceAc;
104    UCHAR FanThrottleToleranceDc;
105    UCHAR ForcedThrottleAc;
106    UCHAR ForcedThrottleDc;
107 } USER_POWER_POLICY, *PUSER_POWER_POLICY;
108 typedef struct _POWER_POLICY{
109    USER_POWER_POLICY user;
110    MACHINE_POWER_POLICY mach;
111 } POWER_POLICY, *PPOWER_POLICY;
112 typedef BOOLEAN (CALLBACK* PWRSCHEMESENUMPROC)(UINT, DWORD, LPTSTR, DWORD, LPTSTR, PPOWER_POLICY, LPARAM);
113 typedef BOOLEAN (CALLBACK* PFNNTINITIATEPWRACTION)(POWER_ACTION, SYSTEM_POWER_STATE, ULONG, BOOLEAN);
114 NTSTATUS WINAPI CallNtPowerInformation(POWER_INFORMATION_LEVEL, PVOID, ULONG, PVOID, ULONG);
115 BOOLEAN WINAPI CanUserWritePwrScheme(VOID);
116 BOOLEAN WINAPI DeletePwrScheme(UINT);
117 BOOLEAN WINAPI EnumPwrSchemes(PWRSCHEMESENUMPROC, LPARAM);
118 BOOLEAN WINAPI GetActivePwrScheme(PUINT);
119 BOOLEAN WINAPI GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
120 BOOLEAN WINAPI GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES);
121 BOOLEAN WINAPI GetPwrDiskSpindownRange(PUINT, PUINT);
122 BOOLEAN WINAPI IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY);
123 BOOLEAN WINAPI IsPwrHibernateAllowed(VOID);
124 BOOLEAN WINAPI IsPwrShutdownAllowed(VOID);
125 BOOLEAN WINAPI IsPwrSuspendAllowed(VOID);
126 BOOLEAN WINAPI ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
127 BOOLEAN WINAPI ReadProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
128 BOOLEAN WINAPI ReadPwrScheme(UINT, PPOWER_POLICY);
129 BOOLEAN WINAPI SetActivePwrScheme(UINT, PGLOBAL_POWER_POLICY, PPOWER_POLICY);
130 BOOLEAN WINAPI SetSuspendState(BOOLEAN, BOOLEAN, BOOLEAN);
131 BOOLEAN WINAPI WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
132 BOOLEAN WINAPI WriteProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
133 BOOLEAN WINAPI ValidatePowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
134 BOOLEAN WINAPI WritePwrScheme(PUINT, LPTSTR, LPTSTR, PPOWER_POLICY);
135
136 #endif /* RC_INVOKED */
137
138 #ifdef __cplusplus
139 }
140 #endif
141
142 #endif /* _POWRPROF_H */