3 #define WIN32_NO_STATUS
12 #include "wine/unicode.h"
14 LONG WINAPI RegOpenCurrentUser(REGSAM a,PHKEY b)
16 *b = HKEY_CURRENT_USER;
20 unsigned int g_NumPwrSchemes
= 0;
21 unsigned int g_NumPwrSchemesEnumerated
= 0;
22 unsigned int g_ActivePwrScheme
= 3;
23 unsigned int g_TempPwrScheme
= 99;
25 #if 0 // FIXME: needed to build. Please update pwrprof winetest.
26 typedef struct _PROCESSOR_POWER_INFORMATION
{
32 ULONG CurrentIdleState
;
33 } PROCESSOR_POWER_INFORMATION
,
34 *PPROCESSOR_POWER_INFORMATION
;
37 POWER_POLICY g_PowerPolicy
;
39 static const WCHAR szMachPowerPoliciesSubKey
[] = { 'S', 'O', 'F', 'T', 'W', 'A', 'R',
40 'E', '\\', 'M', 'i', 'c', 'r', 'o', 's', 'o', 'f', 't', '\\', 'W', 'i', 'n', 'd',
41 'o', 'w', 's', '\\', 'C', 'u', 'r', 'r', 'e', 'n', 't', 'V', 'e', 'r', 's', 'i',
42 'o', 'n', '\\', 'C', 'o', 'n', 't', 'r', 'o', 'l', 's', ' ', 'F', 'o', 'l', 'd',
43 'e', 'r', '\\', 'P', 'o', 'w', 'e', 'r', 'C', 'f', 'g', '\\', 'P', 'o', 'w', 'e',
44 'r', 'P', 'o', 'l', 'i', 'c', 'i', 'e', 's', 0};
46 static const WCHAR szTempPwrScheme
[] = { '9', '9', 0 };
48 ULONG
DbgPrint(PCCH X
,...)
53 void test_CallNtPowerInformation(void)
56 ADMINISTRATOR_POWER_POLICY apolicy
;
57 ULONGLONG atime
, ctime
;
58 PROCESSOR_POWER_INFORMATION ppi
, *pppi
;
59 PROCESSOR_POWER_POLICY ppp
;
60 SYSTEM_BATTERY_STATE sbs
;
61 SYSTEM_POWER_CAPABILITIES spc
;
62 SYSTEM_POWER_INFORMATION spi
;
63 SYSTEM_POWER_POLICY spp
;
66 /* AdministratorPowerPolicy tests */
67 retval
= CallNtPowerInformation(AdministratorPowerPolicy
, 0, 0, 0, 0);
68 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
69 retval
= CallNtPowerInformation(AdministratorPowerPolicy
, 0, 0, &apolicy
, sizeof(ADMINISTRATOR_POWER_POLICY
));
70 ok(retval
== STATUS_SUCCESS
, "function expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
71 retval
= CallNtPowerInformation(AdministratorPowerPolicy
, &apolicy
, sizeof(ADMINISTRATOR_POWER_POLICY
), 0, 0);
72 ok(retval
!= STATUS_PRIVILEGE_NOT_HELD
, "Privileg not held!!!! more errors to expect");
73 ok(retval
== STATUS_SUCCESS
, "function expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
75 /* LastSleepTime tests */
76 retval
= CallNtPowerInformation(LastSleepTime
, 0, 0, 0, 0);
77 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
78 retval
= CallNtPowerInformation(LastSleepTime
, &atime
, sizeof(sizeof(ULONGLONG
)), 0, 0);
79 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
80 retval
= CallNtPowerInformation(LastSleepTime
, &atime
, sizeof(ULONGLONG
), &ctime
, sizeof(ULONGLONG
));
81 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
82 retval
= CallNtPowerInformation(LastSleepTime
, 0, 0, &atime
, sizeof(ULONGLONG
));
83 ok(retval
== STATUS_SUCCESS
, "function expected STATUS_SUCCESS but got %d\n",(UINT
)retval
);
85 /* LastWakeTime tests */
86 retval
= CallNtPowerInformation(LastWakeTime
, 0, 0, 0, 0);
87 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
88 retval
= CallNtPowerInformation(LastWakeTime
, &atime
, sizeof(sizeof(ULONGLONG
)), 0, 0);
89 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
90 retval
= CallNtPowerInformation(LastWakeTime
, &atime
, sizeof(ULONGLONG
), &ctime
, sizeof(ULONGLONG
));
91 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
92 retval
= CallNtPowerInformation(LastWakeTime
, 0, 0, &atime
, sizeof(ULONGLONG
));
93 ok(retval
== STATUS_SUCCESS
, "function expected STATUS_SUCCESS but got %d\n",(UINT
)retval
);
95 /* ProcessorInformation tests */
96 retval
= CallNtPowerInformation(ProcessorInformation
, 0, 0, 0, 0);
97 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
98 retval
= CallNtPowerInformation(ProcessorInformation
, 0, 0, &ppi
, sizeof(PROCESSOR_POWER_INFORMATION
));
99 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
100 retval
= CallNtPowerInformation(ProcessorInformation
, &ppi
, sizeof(PROCESSOR_POWER_INFORMATION
), 0, 0);
101 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
102 retval
= CallNtPowerInformation(ProcessorInformation
, &ppi
, sizeof(PROCESSOR_POWER_INFORMATION
), &ppi
, sizeof(PROCESSOR_POWER_INFORMATION
));
104 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
105 retval
= CallNtPowerInformation(ProcessorInformation
, 0, 0, &pppi
, sizeof(PPROCESSOR_POWER_INFORMATION
));
106 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
107 retval
= CallNtPowerInformation(ProcessorInformation
, &pppi
, sizeof(PPROCESSOR_POWER_INFORMATION
), 0, 0);
108 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
109 retval
= CallNtPowerInformation(ProcessorInformation
, &pppi
, sizeof(PPROCESSOR_POWER_INFORMATION
), &pppi
, sizeof(PPROCESSOR_POWER_INFORMATION
));
110 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
112 /* ProcessorPowerPolicyAc tests */
113 retval
= CallNtPowerInformation(ProcessorPowerPolicyAc
, 0, 0, 0, 0);
114 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
115 retval
= CallNtPowerInformation(ProcessorPowerPolicyAc
, 0, 0, &ppp
, sizeof(PROCESSOR_POWER_POLICY
));
116 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
117 retval
= CallNtPowerInformation(ProcessorPowerPolicyAc
, &ppp
, sizeof(PROCESSOR_POWER_POLICY
), 0, 0);
118 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
119 retval
= CallNtPowerInformation(ProcessorPowerPolicyAc
, &ppp
, sizeof(PROCESSOR_POWER_POLICY
), &ppp
, sizeof(PROCESSOR_POWER_POLICY
));
120 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
122 /* ProcessorPowerPolicyCurrent tests */
123 retval
= CallNtPowerInformation(ProcessorPowerPolicyCurrent
, 0, 0, 0, 0);
124 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
125 retval
= CallNtPowerInformation(ProcessorPowerPolicyCurrent
, 0, 0, &ppp
, sizeof(PROCESSOR_POWER_POLICY
));
126 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
127 retval
= CallNtPowerInformation(ProcessorPowerPolicyCurrent
, &ppp
, sizeof(PROCESSOR_POWER_POLICY
), 0, 0);
128 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
129 retval
= CallNtPowerInformation(ProcessorPowerPolicyCurrent
, &ppp
, sizeof(PROCESSOR_POWER_POLICY
), &ppp
, sizeof(PROCESSOR_POWER_POLICY
));
130 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
132 /* ProcessorPowerPolicyDc tests */
133 retval
= CallNtPowerInformation(ProcessorPowerPolicyDc
, 0, 0, 0, 0);
134 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
135 retval
= CallNtPowerInformation(ProcessorPowerPolicyDc
, 0, 0, &ppp
, sizeof(PROCESSOR_POWER_POLICY
));
136 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
137 retval
= CallNtPowerInformation(ProcessorPowerPolicyDc
, &ppp
, sizeof(PROCESSOR_POWER_POLICY
), 0, 0);
138 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
139 retval
= CallNtPowerInformation(ProcessorPowerPolicyDc
, &ppp
, sizeof(PROCESSOR_POWER_POLICY
), &ppp
, sizeof(PROCESSOR_POWER_POLICY
));
140 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
142 /* SystemBatteryState tests */
143 retval
= CallNtPowerInformation(SystemBatteryState
, 0, 0, 0, 0);
144 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
145 retval
= CallNtPowerInformation(SystemBatteryState
, 0, 0, &sbs
, sizeof(SYSTEM_BATTERY_STATE
));
146 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
147 retval
= CallNtPowerInformation(SystemBatteryState
, &sbs
, sizeof(SYSTEM_BATTERY_STATE
), 0, 0);
148 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
149 retval
= CallNtPowerInformation(SystemBatteryState
, &sbs
, sizeof(SYSTEM_BATTERY_STATE
), &sbs
, sizeof(SYSTEM_BATTERY_STATE
));
150 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
152 /* SystemExecutionState tests */
153 retval
= CallNtPowerInformation(SystemExecutionState
, 0, 0, 0, 0);
154 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
156 /* SystemPowerCapabilities tests */
157 retval
= CallNtPowerInformation(SystemPowerCapabilities
, 0, 0, 0, 0);
158 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
159 retval
= CallNtPowerInformation(SystemPowerCapabilities
, 0, 0, &spc
, sizeof(SYSTEM_POWER_CAPABILITIES
));
160 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
161 retval
= CallNtPowerInformation(SystemPowerCapabilities
, &spc
, sizeof(SYSTEM_POWER_CAPABILITIES
), 0, 0);
162 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
163 retval
= CallNtPowerInformation(SystemPowerCapabilities
, &spc
, sizeof(SYSTEM_POWER_CAPABILITIES
), &spc
, sizeof(SYSTEM_POWER_CAPABILITIES
));
164 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
166 /* SystemPowerInformation tests */
167 retval
= CallNtPowerInformation(SystemPowerInformation
, 0, 0, 0, 0);
168 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
169 retval
= CallNtPowerInformation(SystemPowerInformation
, 0, 0, &spi
, sizeof(SYSTEM_POWER_INFORMATION
));
170 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
171 retval
= CallNtPowerInformation(SystemPowerInformation
, &spi
, sizeof(SYSTEM_POWER_INFORMATION
), 0, 0);
172 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
173 retval
= CallNtPowerInformation(SystemPowerInformation
, &spi
, sizeof(SYSTEM_POWER_INFORMATION
), &spi
, sizeof(SYSTEM_POWER_INFORMATION
));
174 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
175 retval
= CallNtPowerInformation(SystemPowerInformation
, &spp
, sizeof(SYSTEM_POWER_POLICY
), 0, 0);
176 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
177 retval
= CallNtPowerInformation(SystemPowerInformation
, &spp
, sizeof(SYSTEM_POWER_POLICY
), &spi
, sizeof(SYSTEM_POWER_INFORMATION
));
178 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
180 /* SystemPowerPolicyAc tests */
181 retval
= CallNtPowerInformation(SystemPowerPolicyAc
, 0, 0, 0, 0);
182 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
183 retval
= CallNtPowerInformation(SystemPowerPolicyAc
, 0, 0, &spp
, sizeof(SYSTEM_POWER_POLICY
));
184 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
185 retval
= CallNtPowerInformation(SystemPowerPolicyAc
, &spp
, sizeof(SYSTEM_POWER_POLICY
), 0, 0);
186 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
187 retval
= CallNtPowerInformation(SystemPowerPolicyAc
, &spp
, sizeof(SYSTEM_POWER_POLICY
), &spp
, sizeof(SYSTEM_POWER_POLICY
));
188 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
190 /* SystemPowerPolicyCurrent tests */
191 retval
= CallNtPowerInformation(SystemPowerPolicyCurrent
, 0, 0, 0, 0);
192 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
193 retval
= CallNtPowerInformation(SystemPowerPolicyCurrent
, 0, 0, &spp
, sizeof(SYSTEM_POWER_POLICY
));
194 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
195 retval
= CallNtPowerInformation(SystemPowerPolicyCurrent
, &spp
, sizeof(SYSTEM_POWER_POLICY
), 0, 0);
196 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
197 retval
= CallNtPowerInformation(SystemPowerPolicyCurrent
, &spp
, sizeof(SYSTEM_POWER_POLICY
), &spp
, sizeof(SYSTEM_POWER_POLICY
));
198 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
200 /* SystemPowerPolicyDc tests */
201 retval
= CallNtPowerInformation(SystemPowerPolicyDc
, 0, 0, 0, 0);
202 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
203 retval
= CallNtPowerInformation(SystemPowerPolicyDc
, 0, 0, &spp
, sizeof(SYSTEM_POWER_POLICY
));
204 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
205 retval
= CallNtPowerInformation(SystemPowerPolicyDc
, &spp
, sizeof(SYSTEM_POWER_POLICY
), 0, 0);
206 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
207 retval
= CallNtPowerInformation(SystemPowerPolicyDc
, &spp
, sizeof(SYSTEM_POWER_POLICY
), &spp
, sizeof(SYSTEM_POWER_POLICY
));
208 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
210 /* SystemReserveHiberFile tests */
212 retval = CallNtPowerInformation(SystemReserveHiberFile, 0, 0, 0, 0);
213 ok(retval == STATUS_INVALID_PARAMETER, "function result wrong expected STATUS_INVALID_PARAMETER but got %ld\n", retval);
215 retval = CallNtPowerInformation(SystemReserveHiberFile, &bln, sizeof(bln), 0, 0);
216 ok(retval == STATUS_DISK_FULL, "function result wrong expected STATUS_DISK_FULL but got %ld\n", nret);
218 retval = CallNtPowerInformation(SystemReserveHiberFile, &bln, sizeof(bln), 0, 0);
219 ok(retval == STATUS_SUCCESS, "function result wrong expected STATUS_SUCCESS but got %ld\n", nret);
222 nret = CallNtPowerInformation(SystemReserveHiberFile, 0, 0, &bln2, sizeof(bln2));
223 ok(nret == STATUS_DATATYPE_MISALIGNMENT, "function result wrong expected STATUS_DATATYPE_MISALIGNMENT but got %ld\n", nret);
225 nret = CallNtPowerInformation(SystemReserveHiberFile, 0, 0, &bln2, sizeof(bln2));
226 ok(nret == STATUS_DATATYPE_MISALIGNMENT, "function result wrong expected STATUS_DATATYPE_MISALIGNMENT but got %ld\n", nret);
230 nret = CallNtPowerInformation(SystemReserveHiberFile, &bln, sizeof(bln), &bln2, sizeof(bln2));
231 ok(nret == STATUS_DATATYPE_MISALIGNMENT, "function result wrong expected STATUS_DATATYPE_MISALIGNMENT but got %ld\n", nret);
233 nret = CallNtPowerInformation(SystemReserveHiberFile, &bln, sizeof(bln), &bln2, sizeof(bln2));
234 ok(nret == STATUS_DATATYPE_MISALIGNMENT, "function result wrong expected STATUS_DATATYPE_MISALIGNMENT but got %ld\n", nret);
237 nret = CallNtPowerInformation(SystemReserveHiberFile, &bln, sizeof(bln), &bln2, sizeof(bln2));
238 ok(nret == STATUS_DATATYPE_MISALIGNMENT, "function result wrong expected STATUS_DATATYPE_MISALIGNMENT but got %ld\n", nret);
240 nret = CallNtPowerInformation(SystemReserveHiberFile, &bln, sizeof(bln), &bln2, sizeof(bln2));
241 ok(nret == STATUS_DATATYPE_MISALIGNMENT, "function result wrong expected STATUS_DATATYPE_MISALIGNMENT but got %ld\n", nret);
244 /* VerifyProcessorPowerPolicyAc tests */
245 retval
= CallNtPowerInformation(VerifyProcessorPowerPolicyAc
, 0, 0, 0, 0);
246 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
247 retval
= CallNtPowerInformation(VerifyProcessorPowerPolicyAc
, 0, 0, &ppp
, sizeof(PROCESSOR_POWER_POLICY
));
248 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
249 retval
= CallNtPowerInformation(VerifyProcessorPowerPolicyAc
, &ppp
, sizeof(PROCESSOR_POWER_POLICY
), 0, 0);
250 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
251 retval
= CallNtPowerInformation(VerifyProcessorPowerPolicyAc
, &ppp
, sizeof(PROCESSOR_POWER_POLICY
), &ppp
, sizeof(PROCESSOR_POWER_POLICY
));
252 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
254 /* VerifyProcessorPowerPolicyDc tests */
255 retval
= CallNtPowerInformation(VerifyProcessorPowerPolicyDc
, 0, 0, 0, 0);
256 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
257 retval
= CallNtPowerInformation(VerifyProcessorPowerPolicyDc
, 0, 0, &ppp
, sizeof(PROCESSOR_POWER_POLICY
));
258 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
259 retval
= CallNtPowerInformation(VerifyProcessorPowerPolicyDc
, &ppp
, sizeof(PROCESSOR_POWER_POLICY
), 0, 0);
260 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
261 retval
= CallNtPowerInformation(VerifyProcessorPowerPolicyDc
, &ppp
, sizeof(PROCESSOR_POWER_POLICY
), &ppp
, sizeof(PROCESSOR_POWER_POLICY
));
262 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
264 /* VerifySystemPolicyAc tests */
265 retval
= CallNtPowerInformation(VerifySystemPolicyAc
, 0, 0, 0, 0);
266 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
267 retval
= CallNtPowerInformation(VerifySystemPolicyAc
, 0, 0, &spp
, sizeof(SYSTEM_POWER_POLICY
));
268 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
269 retval
= CallNtPowerInformation(VerifySystemPolicyAc
, &spp
, sizeof(SYSTEM_POWER_POLICY
), 0, 0);
270 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
271 retval
= CallNtPowerInformation(VerifySystemPolicyAc
, &spp
, sizeof(SYSTEM_POWER_POLICY
), &spp
, sizeof(SYSTEM_POWER_POLICY
));
272 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
274 /* VerifySystemPolicyDc tests */
275 retval
= CallNtPowerInformation(VerifySystemPolicyDc
, 0, 0, 0, 0);
276 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
277 retval
= CallNtPowerInformation(VerifySystemPolicyDc
, 0, 0, &spp
, sizeof(SYSTEM_POWER_POLICY
));
278 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
279 retval
= CallNtPowerInformation(VerifySystemPolicyDc
, &spp
, sizeof(SYSTEM_POWER_POLICY
), 0, 0);
280 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
281 retval
= CallNtPowerInformation(VerifySystemPolicyDc
, &spp
, sizeof(SYSTEM_POWER_POLICY
), &spp
, sizeof(SYSTEM_POWER_POLICY
));
282 ok(retval
== STATUS_SUCCESS
, "function result wrong expected STATUS_SUCCESS but got %d\n", (UINT
)retval
);
284 /* SystemPowerStateHandler tests */
285 retval
= CallNtPowerInformation(SystemPowerStateHandler
, 0, 0, 0, 0);
286 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
287 retval
= CallNtPowerInformation(SystemPowerStateHandler
, 0, 0, x
, sizeof(HANDLE
));
288 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
290 /* ProcessorStateHandler tests */
291 retval
= CallNtPowerInformation(ProcessorStateHandler
, 0, 0, 0, 0);
292 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
293 retval
= CallNtPowerInformation(ProcessorStateHandler
, 0, 0, x
, sizeof(HANDLE
));
294 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
296 /* ProcessorStateHandler2 tests */
297 retval
= CallNtPowerInformation(ProcessorStateHandler2
, 0, 0, 0, 0);
298 ok(retval
== STATUS_ACCESS_DENIED
, "function result wrong expected STATUS_ACCESS_DENIED but got %d\n", (UINT
)retval
);
299 retval
= CallNtPowerInformation(ProcessorStateHandler2
, 0, 0, x
, sizeof(HANDLE
));
300 ok(retval
== STATUS_ACCESS_DENIED
, "function result wrong expected STATUS_ACCESS_DENIED but got %d\n", (UINT
)retval
);
302 /* SystemPowerStateNotifyHandler tests */
303 retval
= CallNtPowerInformation(SystemPowerStateNotifyHandler
, 0, 0, 0, 0);
304 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
305 retval
= CallNtPowerInformation(SystemPowerStateNotifyHandler
, 0, 0, x
, sizeof(HANDLE
));
306 ok(retval
== STATUS_INVALID_PARAMETER
, "function result wrong expected STATUS_INVALID_PARAMETER but got %d\n", (UINT
)retval
);
313 void test_CanUserWritePwrScheme(void)
317 retval
= CanUserWritePwrScheme();
319 error
= GetLastError();
322 ok(retval
, "function failed?");
324 ok(error
== ERROR_ACCESS_DENIED
, "function last error wrong expected ERROR_ACCESS_DENIED but got %d\n", (UINT
)error
);
327 BOOLEAN CALLBACK
test_callback_EnumPwrScheme(UINT uiIndex
, DWORD dwName
, LPWSTR sName
, DWORD dwDesc
,
328 LPWSTR sDesc
, PPOWER_POLICY pp
,LPARAM lParam
)
330 ok(uiIndex
== g_NumPwrSchemes
, "expected power scheme index of %d but got %d\n", g_NumPwrSchemes
, uiIndex
);
333 ok(lParam
== 0xDEADBEEF, "expected function lParam to be 0xDEADBEEF but got %d\n", (UINT
)lParam
);
338 BOOLEAN CALLBACK
test_callback_stop_EnumPwrScheme(UINT uiIndex
, DWORD dwName
, LPWSTR sName
, DWORD dwDesc
,
339 LPWSTR sDesc
, PPOWER_POLICY pp
,LPARAM lParam
)
341 ok((!uiIndex
|| g_NumPwrSchemesEnumerated
+ 1 == uiIndex
), "expected power scheme %d but got %d\n",g_NumPwrSchemesEnumerated
+1, uiIndex
);
342 g_NumPwrSchemesEnumerated
= uiIndex
;
344 ok(uiIndex
<= (UINT
)lParam
, "enumeration should have already been stopped at index %d current index %d\n", (UINT
)lParam
, uiIndex
);
345 if (uiIndex
== (UINT
)lParam
)
351 void test_DeletePwrScheme(void)
358 * try inexistant profile number, should fail
361 retval
= DeletePwrScheme(0xFFFFFFFF);
362 ok(!retval
, "function should have failed error %x\n",(UINT
)GetLastError());
365 * delete active power scheme, should fail
368 retval
= GetActivePwrScheme(&g_ActivePwrScheme
);
369 ok(retval
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
371 retval
= DeletePwrScheme(g_ActivePwrScheme
);
372 ok(!retval
, "function should have failed\n");
373 ok(GetLastError() == ERROR_ACCESS_DENIED
, "function should have failed with ERROR_ACCESS_DENIED but got %x\n", (UINT
)GetLastError());
376 * delete a temporarly created power scheme
378 retval
= DeletePwrScheme(g_TempPwrScheme
);
379 ok(retval
, "function should have succeeded\n");
382 * clean up, delete illegal entry, witch was created for this test
385 if (RegOpenKeyW(HKEY_LOCAL_MACHINE
, szMachPowerPoliciesSubKey
, &hSubKey
) == ERROR_SUCCESS
)
387 if (RegDeleteKeyW(hSubKey
, szTempPwrScheme
) != STATUS_SUCCESS
)
388 printf("failed to delete subkey %i (testentry)\n", g_TempPwrScheme
);
389 RegCloseKey(hSubKey
);
394 void test_EnumPwrSchemes(void)
399 * test EnumPwrScheme with null pointer callback
402 retval
= EnumPwrSchemes(0, 0);
403 ok(!retval
, "function was expected to fail\n");
404 ok(GetLastError() == ERROR_INVALID_PARAMETER
, "expected ERROR_INVALID_PARAMETER but got %x\n",(UINT
)GetLastError());
407 * enumerate power schemes, should succeed
410 retval
= EnumPwrSchemes(test_callback_EnumPwrScheme
, 0xDEADBEEF);
411 ok(retval
, "function was expected to succeed %d\n",retval
);
412 ok(g_NumPwrSchemes
, "Warning: no power schemes available\n");
415 * stop enumeration after first power scheme
418 retval
= EnumPwrSchemes(test_callback_stop_EnumPwrScheme
, (LPARAM
)0);
419 ok(!retval
, "function was expected to false\n");
422 * enumerate half of all avalailble profiles
425 g_NumPwrSchemesEnumerated
= 0;
426 retval
= EnumPwrSchemes(test_callback_stop_EnumPwrScheme
, (LPARAM
)g_NumPwrSchemes
/ 2);
427 ok(retval
, "function was expected to succeed but got %i\n", (UINT
)retval
);
428 ok(g_NumPwrSchemesEnumerated
== g_NumPwrSchemes
/ 2, "function did not enumerate requested num of profiles %d enumerated %d\n", g_NumPwrSchemes
/ 2, g_NumPwrSchemesEnumerated
);
433 void test_GetSetActivePwrScheme(void)
436 UINT current_scheme
= 2;
437 UINT temp_scheme
= 0;
440 * read active power scheme
443 retval
= GetActivePwrScheme(&g_ActivePwrScheme
);
445 ok(retval
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
446 ok(retval
<= g_NumPwrSchemes
, "expected index lower as power scheme count %d but got %d\n", g_NumPwrSchemes
, g_ActivePwrScheme
);
449 * sets active power scheme to inexistant profile
450 * -> corrupts power scheme enumeration on Windows XP SP2
453 //retval = SetActivePwrScheme(0xFFFFFFFF, 0, 0);
454 //ok(!retval, "function was expected to fail");
455 //current_scheme = min(active_scheme+1, g_NumPwrSchemes-1);
458 * sets the active power scheme to profile with index 0
461 retval
= SetActivePwrScheme(current_scheme
, 0, 0);
462 ok(retval
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
465 * read back the active power scheme
468 retval
= GetActivePwrScheme(&temp_scheme
);
469 ok(retval
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
470 ok(temp_scheme
== current_scheme
, "expected %d but got %d\n", (UINT
)current_scheme
, (UINT
)temp_scheme
);
473 * restore previous active power scheme
476 retval
= SetActivePwrScheme(g_ActivePwrScheme
, 0, 0);
477 ok(retval
, "Warning: failed to restore old active power scheme %d\n", (UINT
)g_ActivePwrScheme
);
480 void test_GetCurrentPowerPolicies(void)
482 GLOBAL_POWER_POLICY gpp
;
485 UINT current_scheme
= 2;
488 ret
= GetActivePwrScheme(&g_ActivePwrScheme
);
490 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
491 ret
= SetActivePwrScheme(0, &gpp
, 0);
493 ok(!ret
, "function was expected to fail, error %x\n",(UINT
)GetLastError());
495 ret
= SetActivePwrScheme(0, 0, &pp
);
496 ok(!ret
, "function was expected to fail, error %x\n",(UINT
)GetLastError());
498 ret
= SetActivePwrScheme(0, &gpp
, &pp
);
499 ok(!ret
, "function was expected to fail, error %x\n",(UINT
)GetLastError());
501 ret
= SetActivePwrScheme(current_scheme
, &gpp
, 0);
502 ok(!ret
, "function was expected to fail, error %x\n",(UINT
)GetLastError());
504 ret
= SetActivePwrScheme(current_scheme
, 0, &pp
);
505 ok(!ret
, "function was expected to fail, error %x\n",(UINT
)GetLastError());
507 ret
= SetActivePwrScheme(current_scheme
, &gpp
, &pp
);
508 ok(!ret
, "function was expected to fail, error %x\n",(UINT
)GetLastError());
510 ret
= SetActivePwrScheme(g_ActivePwrScheme
, 0, 0);
511 ok(ret
, "Warning: failed to restore old active power scheme %d\n", (UINT
)g_ActivePwrScheme
);
513 ret
= GetCurrentPowerPolicies(0,0);
514 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
516 ret
= GetCurrentPowerPolicies(&gpp
,0);
517 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
519 ret
= GetCurrentPowerPolicies(0,&pp
);
520 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
522 ret
= GetCurrentPowerPolicies(&gpp
,&pp
);
523 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
524 ok(gpp
.mach
.Revision
== 1,"Global Mach Revision was expected to be 1 got %i",(UINT
)gpp
.mach
.Revision
);
525 ok(gpp
.user
.Revision
== 1,"Global User Revision was expected to be 1 got %i",(UINT
)gpp
.mach
.Revision
);
526 ok(pp
.mach
.Revision
== 1,"Mach Revision was expected to be 1 got %i",(UINT
)gpp
.mach
.Revision
);
527 ok(pp
.user
.Revision
== 1,"User Revision was expected to be 1 got %i",(UINT
)gpp
.mach
.Revision
);
530 ret
= GetActivePwrScheme(&g_ActivePwrScheme
);
531 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
533 ret
= SetActivePwrScheme(0, &gpp
, 0);
534 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
536 ret
= SetActivePwrScheme(0, 0, &pp
);
537 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
539 ret
= SetActivePwrScheme(0, &gpp
, &pp
);
540 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
542 ret
= SetActivePwrScheme(current_scheme
, &gpp
, 0);
543 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
545 ret
= SetActivePwrScheme(current_scheme
, 0, &pp
);
546 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
548 ret
= SetActivePwrScheme(current_scheme
, &gpp
, &pp
);
549 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
551 ret
= SetActivePwrScheme(g_ActivePwrScheme
, 0, 0);
552 ok(ret
, "Warning: failed to restore old active power scheme %d\n", (UINT
)g_ActivePwrScheme
);
556 void test_GetPwrCapabilities(void)
558 SYSTEM_POWER_CAPABILITIES spc
;
561 ret
= GetPwrCapabilities(0);
562 ok(!ret
, "function was expected to fail\n");
565 ok(GetLastError() == ERROR_INVALID_PARAMETER
,"function was expectet to return ERROR_INVALID_PARAMETER, but returns: %x\n",(UINT
)GetLastError());
567 ret
= GetPwrCapabilities(&spc
);
568 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
571 void test_GetPwrDiskSpindownRange(void)
578 * invalid parameter checks
581 retval
= GetPwrDiskSpindownRange(NULL
, NULL
);
582 ok(!retval
, "function was expected to fail\n");
583 ok(GetLastError() == ERROR_INVALID_PARAMETER
, "expected error ERROR_INVALID_PARAMETER but got %x\n", (UINT
)GetLastError());
585 retval
= GetPwrDiskSpindownRange(&max
, NULL
);
586 ok(!retval
, "function was expected to fail\n");
587 ok(GetLastError() == ERROR_INVALID_PARAMETER
, "expected error ERROR_INVALID_PARAMETER but got %x\n", (UINT
)GetLastError());
589 retval
= GetPwrDiskSpindownRange(NULL
, &min
);
590 ok(!retval
, "function was expected to fail\n");
591 ok(GetLastError() == ERROR_INVALID_PARAMETER
, "expected error ERROR_INVALID_PARAMETER but got %x\n", (UINT
)GetLastError());
594 * read disk spindown range
597 retval
= GetPwrDiskSpindownRange(&max
, &min
);
598 ok(retval
, "function was expected to succeed error %x\n",(UINT
)GetLastError());
599 ok(min
<= max
, "range mismatch min %d max %d\n",min
, max
);
602 void test_IsAdminOverrideActive(void)
604 ADMINISTRATOR_POWER_POLICY app
;
607 ret
= IsAdminOverrideActive(0);
608 ok(!ret
, "function was expected to fail, error %x\n",(UINT
)GetLastError());
610 ret
= IsAdminOverrideActive(&app
);
611 ok(!ret
, "function was expected to fail, error %x\n",(UINT
)GetLastError());
615 app
.MinVideoTimeout
= 0;
616 app
.MaxVideoTimeout
= 0;
617 app
.MinSpindownTimeout
= 0;
618 app
.MaxSpindownTimeout
= 0;
620 ret
= IsAdminOverrideActive(&app
);
621 ok(!ret
, "function was expected to fail, error %x\n",(UINT
)GetLastError());
625 app
.MinVideoTimeout
= 3;
626 app
.MaxVideoTimeout
= 4;
627 app
.MinSpindownTimeout
= 5;
628 app
.MaxSpindownTimeout
= 6;
630 ret
= IsAdminOverrideActive(&app
);
631 ok(!ret
, "function was expected to fail, error %x\n",(UINT
)GetLastError());
635 void test_IsPwrHibernateAllowed(void)
640 ret = IsPwrHibernateAllowed();
641 ok(!ret, "function was expected to fail, error %x\n",(UINT)GetLastError());
645 void test_IsPwrShutdownAllowed(void)
650 ret = IsPwrShutdownAllowed();
651 ok(ret, "function was expected to succeed, error %x\n",(UINT)GetLastError());
655 void test_IsPwrSuspendAllowed(void)
660 ret = IsPwrSuspendAllowed();
661 ok(ret, "function was expected to succed, error %x\n",(UINT)GetLastError());
665 void test_ReadGlobalPwrPolicy(void)
667 GLOBAL_POWER_POLICY gpp
;
670 ret
= ReadGlobalPwrPolicy(&gpp
);
671 ok(ret
, "function was expected to succeed, error %x\n",(UINT
)GetLastError());
672 ok(gpp
.mach
.Revision
== 1,"Global Mach Revision was expected to be 1 got %i",(UINT
)gpp
.mach
.Revision
);
673 ok(gpp
.user
.Revision
== 1,"Global User Revision was expected to be 1 got %i",(UINT
)gpp
.mach
.Revision
);
679 void test_ReadProcessorPwrScheme(void)
681 MACHINE_PROCESSOR_POWER_POLICY mppp
;
688 RtlZeroMemory(&mppp
, sizeof(MACHINE_PROCESSOR_POWER_POLICY
));
689 ret
= ReadProcessorPwrScheme(i
,&mppp
);
692 ok(mppp
.Revision
== 1,"Main Revision was expected to be 1 got %i",(UINT
)mppp
.Revision
);
693 ok(mppp
.ProcessorPolicyAc
.Revision
== 1,"PowerAC Revision was expected to be 1 got %i",(UINT
)mppp
.ProcessorPolicyAc
.Revision
);
694 ok(mppp
.ProcessorPolicyDc
.Revision
== 1,"PowerDC Revision was expected to be 1 got %i",(UINT
)mppp
.ProcessorPolicyDc
.Revision
);
698 err
= GetLastError();
699 ok(err
== 0,"Failed Error %x\n",(UINT
)err
);
703 if (i
== g_NumPwrSchemes
)
709 void test_ReadPwrScheme(void)
714 * read power scheme with null pointer -> crashs on Windows XP SP2
716 //retval = ReadPwrScheme(0, NULL);
717 //ok(!retval, "function was expected to fail\n");
718 //ok(GetLastError() == STATUS_INVALID_PARAMETER, "expected error ... but got %x\n", GetLastError());
721 * read a power scheme with an invalid index, leads to the creation of the key
722 * -> corrupts power scheme enumeration
724 //retval = ReadPwrScheme(0xFFFFFFFF, &powerPolicy);
725 //ok(!retval, "function was expected to fail\n");
726 //ok(GetLastError() == ERROR_ACCESS_DENIED, "expected error ERROR_ACCESS_DENIED but got %x\n", GetLastError());
729 * read current active power scheme
732 retval
= ReadPwrScheme(g_ActivePwrScheme
, &g_PowerPolicy
);
733 ok(retval
, "function was expected to succeed error %x\n",(UINT
)GetLastError());
737 void test_SetSuspendState(void)
739 // SetSuspendState(FALSE,FALSE,FALSE)
742 void test_ValidatePowerPolicies(void)
744 GLOBAL_POWER_POLICY gpp
;
749 ret
= ValidatePowerPolicies(0,0);
750 ok(ret
, "function was expected to succeed error %i\n",(UINT
)GetLastError());
752 ret
= ValidatePowerPolicies(&gpp
,0);
753 ok(!ret
, "function was expected to fail return %i\n",(UINT
)ret
);
754 ok(GetLastError() == ERROR_REVISION_MISMATCH
,"function was expected to fail with ERROR_REVISION_MISMATCH(%i,%i), but error :%i\n",(UINT
)gpp
.user
.Revision
,(UINT
)gpp
.mach
.Revision
,(UINT
)GetLastError());
756 ret
= ValidatePowerPolicies(0,&pp
);
757 ok(!ret
, "function was expected to fail return %i\n",(UINT
)ret
);
758 ok(GetLastError() == ERROR_REVISION_MISMATCH
,"function was expected to fail with ERROR_REVISION_MISMATCH, but error :%i\n",(UINT
)GetLastError());
760 ret
= ValidatePowerPolicies(&gpp
,&pp
);
761 ok(!ret
, "function was expected to fail return %i\n",(UINT
)ret
);
762 ok(GetLastError() == ERROR_REVISION_MISMATCH
,"function was expected to fail with ERROR_REVISION_MISMATCH, but error :%i\n",(UINT
)GetLastError());
764 gpp
.user
.Revision
= 1;
765 gpp
.mach
.Revision
= 1;
767 ret
= ValidatePowerPolicies(&gpp
,0);
768 ok(!ret
, "function was expected to fail return %i\n",(UINT
)ret
);
769 ok(GetLastError() == ERROR_INVALID_DATA
,"function was expected to fail with ERROR_INVALID_DATA, but error :%i\n",(UINT
)GetLastError());
771 gpp
.mach
.LidOpenWakeAc
= PowerSystemWorking
;
772 gpp
.mach
.LidOpenWakeDc
= PowerSystemWorking
;
774 ret
= ValidatePowerPolicies(&gpp
,0);
775 ok(!ret
, "function was expected to fail return %i\n",(UINT
)ret
);
776 ok(GetLastError() == ERROR_INVALID_DATA
,"function was expected to fail with ERROR_INVALID_DATA, but error :%i\n",(UINT
)GetLastError());
778 gpp
.user
.PowerButtonAc
.Action
= PowerActionNone
;
779 gpp
.user
.PowerButtonDc
.Action
= PowerActionNone
;
780 gpp
.user
.SleepButtonAc
.Action
= PowerActionNone
;
781 gpp
.user
.SleepButtonDc
.Action
= PowerActionNone
;
782 gpp
.user
.LidCloseAc
.Action
= PowerActionNone
;
783 gpp
.user
.LidCloseDc
.Action
= PowerActionNone
;
785 gpp
.user
.DischargePolicy
[0].Enable
=FALSE
;
786 gpp
.user
.DischargePolicy
[1].Enable
=FALSE
;
787 gpp
.user
.DischargePolicy
[2].Enable
=FALSE
;
788 gpp
.user
.DischargePolicy
[3].Enable
=FALSE
;
789 gpp
.user
.DischargePolicy
[4].Enable
=FALSE
;
790 ret
= ValidatePowerPolicies(&gpp
,0);
791 ok(ret
, "function was expected to succeed return %i\n",(UINT
)GetLastError());
794 ok(GetLastError() == ERROR_INVALID_DATA
,"function was expected to fail with ERROR_INVALID_DATA, but error :%i\n",(UINT
)GetLastError());
797 pp
.user
.Revision
= 1;
798 pp
.mach
.Revision
= 1;
800 ret
= ValidatePowerPolicies(0,&pp
);
801 ok(!ret
, "function was expected to fail return %i\n",(UINT
)ret
);
802 ok(GetLastError() == ERROR_INVALID_DATA
|| GetLastError() == ERROR_GEN_FAILURE
,"function was expected to fail with ERROR_GEN_FAILURE or ERROR_INVALID_DATA, but error :%i\n",(UINT
)GetLastError());
804 pp
.mach
.MinSleepAc
= PowerSystemWorking
;
805 pp
.mach
.MinSleepDc
= PowerSystemWorking
;
806 pp
.mach
.ReducedLatencySleepAc
= PowerSystemWorking
;
807 pp
.mach
.ReducedLatencySleepDc
= PowerSystemWorking
;
808 pp
.mach
.OverThrottledAc
.Action
= PowerActionNone
;
809 pp
.mach
.OverThrottledDc
.Action
= PowerActionNone
;
811 pp
.user
.IdleAc
.Action
= PowerActionWarmEject
+1;
812 pp
.user
.IdleDc
.Action
= PowerActionNone
-1;
813 pp
.user
.MaxSleepAc
= PowerSystemMaximum
+1;
814 pp
.user
.MaxSleepDc
= PowerSystemUnspecified
;
816 ret
= ValidatePowerPolicies(0,&pp
);
817 ok(!ret
, "function was expected to fail return %i\n",(UINT
)GetLastError());
820 ok(GetLastError() == ERROR_INVALID_DATA
,"function was expected to fail with ERROR_INVALID_DATA, but error :%i\n",(UINT
)GetLastError());
823 pp
.user
.IdleAc
.Action
= PowerActionNone
;
824 pp
.user
.IdleDc
.Action
= PowerActionNone
;
825 pp
.user
.MaxSleepAc
= PowerSystemWorking
;
826 pp
.user
.MaxSleepDc
= PowerSystemWorking
;
828 ret
= ValidatePowerPolicies(0,&pp
);
829 ok(ret
, "function was expected to succeed, error %i\n",(UINT
)GetLastError());
832 ok(GetLastError() == ERROR_GEN_FAILURE
,"function was expected to fail with ERROR_GEN_FAILURE, but error :%i\n",(UINT
)GetLastError());
835 ret
= ValidatePowerPolicies(&gpp
,&pp
);
836 ok(ret
, "function was expected to succeed, error %i\n",(UINT
)GetLastError());
839 // ok(GetLastError() == ERROR_GEN_FAILURE,"function was expected to fail with ERROR_GEN_FAILURE, but error :%i\n",(UINT)GetLastError());
843 ret
= GetCurrentPowerPolicies(&gpp
,&pp
);
844 ok(ret
, "function was expected to succeed error %i\n",(UINT
)GetLastError());
846 ret
= ValidatePowerPolicies(&gpp
,0);
847 ok(ret
, "function was expected to succeed error %i\n",(UINT
)GetLastError());
849 ret
= ValidatePowerPolicies(0,&pp
);
850 ok(ret
, "function was expected to succeed error %i\n",(UINT
)GetLastError());
852 ret
= ValidatePowerPolicies(&gpp
,&pp
);
853 ok(ret
, "function was expected to succeed error %i\n",(UINT
)GetLastError());
857 void test_WriteGlobalPwrPolicy(void)
859 // WriteGlobalPwrPolicy(&gpp);
862 void test_WriteProcessorPwrScheme(void)
864 // WriteProcessorPwrScheme(0,&mppp);
867 void test_WritePwrScheme(void)
870 static const WCHAR szTestSchemeName
[] = {'P','o','w','r','p','r','o','f',0};
871 static const WCHAR szTestSchemeDesc
[] = {'P','o','w','r','p','r','o','f',' ','S','c','h','e','m','e',0};
874 * create a temporarly profile, will be deleted in test_DeletePwrScheme
877 retval
= WritePwrScheme(&g_TempPwrScheme
, (LPWSTR
)szTestSchemeName
, (LPWSTR
)szTestSchemeDesc
, &g_PowerPolicy
);
878 ok(retval
, "Warning: function should have succeeded\n");
881 void func_power(void)
883 test_CallNtPowerInformation();
884 test_CanUserWritePwrScheme();
885 test_EnumPwrSchemes();
886 test_GetSetActivePwrScheme();
887 test_ReadPwrScheme();
888 test_WritePwrScheme();
889 test_DeletePwrScheme();
890 test_GetPwrDiskSpindownRange();
892 test_GetCurrentPowerPolicies();
894 test_GetPwrCapabilities();
895 test_IsAdminOverrideActive();
896 test_IsPwrHibernateAllowed();
897 test_IsPwrShutdownAllowed();
898 test_IsPwrSuspendAllowed();
899 test_ReadGlobalPwrPolicy();
900 test_ReadProcessorPwrScheme();
901 test_SetSuspendState();
902 test_ValidatePowerPolicies();
903 test_WriteGlobalPwrPolicy();
904 test_WriteProcessorPwrScheme();
908 void func_ros_init(void)
910 HKEY hUser
, hKeyPowrCfg
, hKeyGlobalPowrPol
, hKeyPowerPolicies
, hKeytmp
;
912 GLOBAL_USER_POWER_POLICY gupp
;
913 GLOBAL_MACHINE_POWER_POLICY gmpp
;
914 USER_POWER_POLICY upp
;
915 MACHINE_POWER_POLICY mpp
;
916 MACHINE_PROCESSOR_POWER_POLICY mppp
;
917 GLOBAL_POWER_POLICY gpp
;
922 static const WCHAR szUserPowrCfgKey
[] = { 'C', 'o', 'n', 't', 'r', 'o', 'l', ' ',
923 'P', 'a', 'n', 'e', 'l', '\\', 'P', 'o', 'w', 'e', 'r', 'C', 'f', 'g', 0};
925 static const WCHAR szCurrentPowerPolicy
[] = {'C', 'u', 'r', 'r', 'e', 'n', 't', 'P',
926 'o', 'w', 'e', 'r', 'P', 'o', 'l', 'i', 'c', 'y', 0};
927 static const WCHAR szcpp
[] = {'3', 0 };
929 static const WCHAR szGlobalPowerPolicy
[] = { 'G', 'l', 'o', 'b', 'a', 'l', 'P', 'o',
930 'w', 'e', 'r', 'P', 'o', 'l', 'i', 'c', 'y', 0};
931 static const WCHAR szPolicies
[] = {'P', 'o', 'l', 'i', 'c', 'i', 'e', 's', 0};
932 static const WCHAR szPowerPolicies
[] = { 'P', 'o', 'w', 'e', 'r', 'P', 'o', 'l', 'i',
933 'c', 'i', 'e', 's', 0};
935 static const WCHAR szProcessorPolicies
[] = { 'P', 'r', 'o', 'c', 'e', 's', 's', 'o', 'r',
936 'P', 'o', 'l', 'i', 'c', 'i', 'e', 's', 0};
938 static const WCHAR szcName
[] = {'N', 'a', 'm', 'e', 0};
939 static const WCHAR szcDescription
[] = {'D', 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n', 0};
941 static WCHAR szName
[] = {'N', 'a', 'm', 'e', '(', '0', ')', 0};
942 static WCHAR szDescription
[] = {'D', 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n', '(', '0', ')', 0};
944 static const WCHAR szMachPowrCfgKey
[] = {'S', 'O', 'F', 'T', 'W', 'A', 'R', 'E', '\\', 'M', 'i',
945 'c', 'r', 'o', 's', 'o', 'f', 't', '\\', 'W', 'i', 'n', 'd', 'o', 'w', 's', '\\', 'C', 'u',
946 'r', 'r', 'e', 'n', 't', 'V', 'e', 'r', 's', 'i', 'o', 'n', '\\', 'C', 'o', 'n', 't', 'r',
947 'o', 'l', 's', ' ', 'F', 'o', 'l', 'd', 'e', 'r', '\\', 'P', 'o', 'w', 'e', 'r', 'C', 'f', 'g', 0};
949 static const WCHAR szLastID
[] = {'L', 'a', 's', 't', 'I', 'D', 0};
950 static const WCHAR szDiskSpinDownMax
[] = {'D', 'i', 's', 'k', 'S', 'p', 'i', 'n', 'D', 'o', 'w', 'n', 'M', 'a', 'x', 0};
951 static const WCHAR szDiskSpinDownMin
[] = {'D', 'i', 's', 'k', 'S', 'p', 'i', 'n', 'D', 'o', 'w', 'n', 'M', 'i', 'n', 0};
953 static const WCHAR szLastIDValue
[] = {'5', 0};
954 static const WCHAR szDiskSpinDownMaxValue
[] = {'3', '6', '0', '0', 0};
955 static const WCHAR szDiskSpinDownMinValue
[] = {'3', 0};
959 * Erstelle die Registry-struktur und Daten, welche dafür erforderlich ist damit diese Tests funktionieren
965 err
= RegOpenCurrentUser(KEY_ALL_ACCESS
,&hUser
);
966 ok(err
== ERROR_SUCCESS
,"Öffnen des Aktuellen Users Fehlgeschlagen\n");
967 if (err
== ERROR_SUCCESS
)
969 err
= RegCreateKey(hUser
,szUserPowrCfgKey
,&hKeyPowrCfg
);
970 ok(err
== ERROR_SUCCESS
,"Create Key UserPowrCfg failed with error %i\n",(UINT
)err
);
971 ok(hKeyPowrCfg
!= NULL
,"Erstellen des Eintrages Powercfg fehlgeschalgen\n");
972 err
= RegSetValueExW(hKeyPowrCfg
,szCurrentPowerPolicy
,(DWORD
)NULL
,REG_SZ
,(CONST BYTE
*)szcpp
,strlenW(szcpp
)*sizeof(WCHAR
));
973 ok(err
== ERROR_SUCCESS
,"Set Value CurrentPowerPolicy failed with error %i\n",(UINT
)err
);
974 err
= RegCreateKey(hKeyPowrCfg
,szGlobalPowerPolicy
,&hKeyGlobalPowrPol
);
975 ok(err
== ERROR_SUCCESS
,"Create Key GlobalPowerPolicy failed with error %i\n",(UINT
)err
);
977 gupp
.PowerButtonAc
.Action
= PowerActionNone
;
978 gupp
.PowerButtonDc
.Action
= PowerActionNone
;
979 gupp
.SleepButtonAc
.Action
= PowerActionNone
;
980 gupp
.SleepButtonDc
.Action
= PowerActionNone
;
981 gupp
.LidCloseAc
.Action
= PowerActionNone
;
982 gupp
.LidCloseDc
.Action
= PowerActionNone
;
983 for (i
=0; i
<NUM_DISCHARGE_POLICIES
; i
++)
985 gupp
.DischargePolicy
[0].Enable
=FALSE
;
988 err
= RegSetValueExW(hKeyGlobalPowrPol
,szPolicies
,(DWORD
)NULL
,REG_BINARY
,(CONST BYTE
*)&gupp
,sizeof(GLOBAL_USER_POWER_POLICY
));
989 ok(err
== ERROR_SUCCESS
,"Set Value GlobalPowrPol failed with error %i\n",(UINT
)err
);
990 err
= RegCloseKey(hKeyGlobalPowrPol
);
991 ok(err
== ERROR_SUCCESS
,"Close Key GlobalPowrPol failed with error %i\n",(UINT
)err
);
992 err
= RegCreateKey(hKeyPowrCfg
,szPowerPolicies
,&hKeyPowerPolicies
);
993 ok(err
== ERROR_SUCCESS
,"Create Key PowerPolicies failed with error %i\n",(UINT
)err
);
996 upp
.IdleAc
.Action
= PowerActionNone
;
997 upp
.IdleDc
.Action
= PowerActionNone
;
998 upp
.MaxSleepAc
= PowerSystemWorking
;
999 upp
.MaxSleepDc
= PowerSystemWorking
;
1000 upp
.VideoTimeoutAc
= 0;
1001 upp
.VideoTimeoutDc
= 0;
1002 upp
.SpindownTimeoutAc
= 0;
1003 upp
.SpindownTimeoutDc
= 0;
1005 for (i
= 0; i
<6; i
++)
1008 err
= RegCreateKey(hKeyPowerPolicies
,tmp
,&hKeytmp
);
1009 ok(err
== ERROR_SUCCESS
,"Create Key PowerPolicies(%i) failed with error %i\n",i
,(UINT
)err
);
1011 szDescription
[12]++;
1012 err
= RegSetValueExW(hKeytmp
,szcName
,(DWORD
)NULL
,REG_SZ
,(CONST BYTE
*)szName
,strlenW(szName
)*sizeof(WCHAR
));
1013 err
= RegSetValueExW(hKeytmp
,szcDescription
,(DWORD
)NULL
,REG_SZ
,(CONST BYTE
*)szDescription
,strlenW(szDescription
)*sizeof(WCHAR
));
1014 err
= RegSetValueExW(hKeytmp
,szPolicies
,(DWORD
)NULL
,REG_BINARY
,(CONST BYTE
*)&upp
,sizeof(USER_POWER_POLICY
));
1015 err
= RegCloseKey(hKeytmp
);
1017 err
= RegCloseKey(hKeyPowerPolicies
);
1018 err
= RegCloseKey(hKeyPowrCfg
);
1019 err
= RegCloseKey(hUser
);
1025 err
= RegCreateKey(HKEY_LOCAL_MACHINE
,szMachPowrCfgKey
,&hKeyPowrCfg
);
1026 ok(err
== ERROR_SUCCESS
,"Create Key MachPowrCfgKey failed with error %i\n",(UINT
)err
);
1027 err
= RegSetValueExW(hKeyPowrCfg
,szLastID
,(DWORD
)NULL
,REG_SZ
,(CONST BYTE
*)szLastIDValue
,strlenW(szLastIDValue
)*sizeof(WCHAR
));
1028 err
= RegSetValueExW(hKeyPowrCfg
,szDiskSpinDownMax
,(DWORD
)NULL
,REG_SZ
,(CONST BYTE
*)szDiskSpinDownMaxValue
,strlenW(szDiskSpinDownMaxValue
)*sizeof(WCHAR
));
1029 err
= RegSetValueExW(hKeyPowrCfg
,szDiskSpinDownMin
,(DWORD
)NULL
,REG_SZ
,(CONST BYTE
*)szDiskSpinDownMinValue
,strlenW(szDiskSpinDownMinValue
)*sizeof(WCHAR
));
1031 err
= RegCreateKey(hKeyPowrCfg
,szGlobalPowerPolicy
,&hKeyGlobalPowrPol
);
1032 ok(err
== ERROR_SUCCESS
,"Create Key Mach GlobalPowerPolicy failed with error %i\n",(UINT
)err
);
1034 gmpp
.LidOpenWakeAc
= PowerSystemWorking
;
1035 gmpp
.LidOpenWakeDc
= PowerSystemWorking
;
1036 gmpp
.BroadcastCapacityResolution
=0;
1038 err
= RegSetValueExW(hKeyGlobalPowrPol
,szPolicies
,(DWORD
)NULL
,REG_BINARY
,(CONST BYTE
*)&gmpp
,sizeof(GLOBAL_MACHINE_POWER_POLICY
));
1040 err
= RegCloseKey(hKeyGlobalPowrPol
);
1041 err
= RegCreateKey(hKeyPowrCfg
,szPowerPolicies
,&hKeyPowerPolicies
);
1042 ok(err
== ERROR_SUCCESS
,"Create Key Mach PowerPolicies failed with error %i\n",(UINT
)err
);
1045 mpp
.MinSleepAc
= PowerSystemWorking
;
1046 mpp
.MinSleepDc
= PowerSystemWorking
;
1047 mpp
.ReducedLatencySleepAc
= PowerSystemWorking
;
1048 mpp
.ReducedLatencySleepDc
= PowerSystemWorking
;
1049 mpp
.OverThrottledAc
.Action
= PowerActionNone
;
1050 mpp
.OverThrottledDc
.Action
= PowerActionNone
;
1051 mpp
.DozeS4TimeoutAc
=0;
1052 mpp
.DozeS4TimeoutDc
=0;
1054 for (i
= 0; i
<6; i
++)
1057 err
= RegCreateKey(hKeyPowerPolicies
,tmp
,&hKeytmp
);
1058 ok(err
== ERROR_SUCCESS
,"Create Key Mach PowerPolicies(%i) failed with error %i\n",(UINT
)i
,(UINT
)err
);
1059 err
= RegSetValueExW(hKeytmp
,szPolicies
,(DWORD
)NULL
,REG_BINARY
,(CONST BYTE
*)&mpp
,sizeof(MACHINE_POWER_POLICY
));
1060 err
= RegCloseKey(hKeytmp
);
1062 err
= RegCloseKey(hKeyPowerPolicies
);
1064 err
= RegCreateKey(hKeyPowrCfg
,szProcessorPolicies
,&hKeyPowerPolicies
);
1065 ok(err
== ERROR_SUCCESS
,"Create Key Mach ProcessorPolicies failed with error %i\n",(UINT
)err
);
1068 mppp
.ProcessorPolicyAc
.Revision
= 1;
1069 mppp
.ProcessorPolicyDc
.Revision
= 1;
1071 for (i
= 0; i
<6; i
++)
1074 err
= RegCreateKey(hKeyPowerPolicies
,tmp
,&hKeytmp
);
1075 ok(err
== ERROR_SUCCESS
,"Create Key Mach ProcessorPolicies(%i) failed with error %i\n",i
,(UINT
)err
);
1076 err
= RegSetValueExW(hKeytmp
,szPolicies
,(DWORD
)NULL
,REG_BINARY
,(CONST BYTE
*)&mppp
,sizeof(MACHINE_PROCESSOR_POWER_POLICY
));
1077 err
= RegCloseKey(hKeytmp
);
1079 err
= RegCloseKey(hKeyPowerPolicies
);
1081 err
= RegCloseKey(hKeyPowrCfg
);
1083 err
= GetCurrentPowerPolicies(&gpp
,&pp
);
1084 ok(err
, "function was expected to succeed error %i\n",(UINT
)GetLastError());
1086 err
= ValidatePowerPolicies(&gpp
,&pp
);
1087 ok(err
, "function was expected to succeed error %i\n",(UINT
)GetLastError());
1090 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Controls Folder\PowerCfg\GlobalPowerPolicy]
1091 "CursorProperties"=...