source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/powrprof.h@ 1186

Last change on this file since 1186 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 13.8 KB
Line 
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10 typedef struct _GLOBAL_MACHINE_POWER_POLICY{
11 ULONG Revision;
12 SYSTEM_POWER_STATE LidOpenWakeAc;
13 SYSTEM_POWER_STATE LidOpenWakeDc;
14 ULONG BroadcastCapacityResolution;
15 } GLOBAL_MACHINE_POWER_POLICY,*PGLOBAL_MACHINE_POWER_POLICY;
16
17 typedef struct _GLOBAL_USER_POWER_POLICY{
18 ULONG Revision;
19 POWER_ACTION_POLICY PowerButtonAc;
20 POWER_ACTION_POLICY PowerButtonDc;
21 POWER_ACTION_POLICY SleepButtonAc;
22 POWER_ACTION_POLICY SleepButtonDc;
23 POWER_ACTION_POLICY LidCloseAc;
24 POWER_ACTION_POLICY LidCloseDc;
25 SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];
26 ULONG GlobalFlags;
27 } GLOBAL_USER_POWER_POLICY,*PGLOBAL_USER_POWER_POLICY;
28
29 typedef struct _GLOBAL_POWER_POLICY{
30 GLOBAL_USER_POWER_POLICY user;
31 GLOBAL_MACHINE_POWER_POLICY mach;
32 } GLOBAL_POWER_POLICY,*PGLOBAL_POWER_POLICY;
33
34 typedef struct _MACHINE_POWER_POLICY{
35 ULONG Revision;
36 SYSTEM_POWER_STATE MinSleepAc;
37 SYSTEM_POWER_STATE MinSleepDc;
38 SYSTEM_POWER_STATE ReducedLatencySleepAc;
39 SYSTEM_POWER_STATE ReducedLatencySleepDc;
40 ULONG DozeTimeoutAc;
41 ULONG DozeTimeoutDc;
42 ULONG DozeS4TimeoutAc;
43 ULONG DozeS4TimeoutDc;
44 UCHAR MinThrottleAc;
45 UCHAR MinThrottleDc;
46 UCHAR pad1[2];
47 POWER_ACTION_POLICY OverThrottledAc;
48 POWER_ACTION_POLICY OverThrottledDc;
49 } MACHINE_POWER_POLICY,*PMACHINE_POWER_POLICY;
50
51 typedef struct _MACHINE_PROCESSOR_POWER_POLICY {
52 ULONG Revision;
53 PROCESSOR_POWER_POLICY ProcessorPolicyAc;
54 PROCESSOR_POWER_POLICY ProcessorPolicyDc;
55 } MACHINE_PROCESSOR_POWER_POLICY,*PMACHINE_PROCESSOR_POWER_POLICY;
56
57 typedef struct _USER_POWER_POLICY{
58 ULONG Revision;
59 POWER_ACTION_POLICY IdleAc;
60 POWER_ACTION_POLICY IdleDc;
61 ULONG IdleTimeoutAc;
62 ULONG IdleTimeoutDc;
63 UCHAR IdleSensitivityAc;
64 UCHAR IdleSensitivityDc;
65 UCHAR ThrottlePolicyAc;
66 UCHAR ThrottlePolicyDc;
67 SYSTEM_POWER_STATE MaxSleepAc;
68 SYSTEM_POWER_STATE MaxSleepDc;
69 ULONG Reserved[2];
70 ULONG VideoTimeoutAc;
71 ULONG VideoTimeoutDc;
72 ULONG SpindownTimeoutAc;
73 ULONG SpindownTimeoutDc;
74 BOOLEAN OptimizeForPowerAc;
75 BOOLEAN OptimizeForPowerDc;
76 UCHAR FanThrottleToleranceAc;
77 UCHAR FanThrottleToleranceDc;
78 UCHAR ForcedThrottleAc;
79 UCHAR ForcedThrottleDc;
80 } USER_POWER_POLICY,*PUSER_POWER_POLICY;
81
82 typedef struct _POWER_POLICY{
83 USER_POWER_POLICY user;
84 MACHINE_POWER_POLICY mach;
85 } POWER_POLICY,*PPOWER_POLICY;
86
87#define EnableSysTrayBatteryMeter 0x01
88#define EnableMultiBatteryDisplay 0x02
89#define EnablePasswordLogon 0x04
90#define EnableWakeOnRing 0x08
91#define EnableVideoDimDisplay 0x10
92
93#define NEWSCHEME (UINT)-1
94
95 typedef BOOLEAN (CALLBACK *PWRSCHEMESENUMPROC)(UINT,DWORD,LPTSTR,DWORD,LPTSTR,PPOWER_POLICY,LPARAM);
96 typedef BOOLEAN (CALLBACK *PFNNTINITIATEPWRACTION)(POWER_ACTION,SYSTEM_POWER_STATE,ULONG,BOOLEAN);
97
98 BOOLEAN WINAPI GetPwrDiskSpindownRange(PUINT,PUINT);
99 BOOLEAN WINAPI EnumPwrSchemes(PWRSCHEMESENUMPROC,LPARAM);
100 BOOLEAN WINAPI ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
101 BOOLEAN WINAPI ReadPwrScheme(UINT,PPOWER_POLICY);
102 BOOLEAN WINAPI WritePwrScheme(PUINT,LPTSTR,LPTSTR,PPOWER_POLICY);
103 BOOLEAN WINAPI WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
104 BOOLEAN WINAPI DeletePwrScheme(UINT);
105 BOOLEAN WINAPI GetActivePwrScheme(PUINT);
106 BOOLEAN WINAPI SetActivePwrScheme(UINT,PGLOBAL_POWER_POLICY,PPOWER_POLICY);
107 BOOLEAN WINAPI GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES);
108 BOOLEAN WINAPI IsPwrSuspendAllowed(VOID);
109 BOOLEAN WINAPI IsPwrHibernateAllowed(VOID);
110 BOOLEAN WINAPI IsPwrShutdownAllowed(VOID);
111 BOOLEAN WINAPI IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY);
112 BOOLEAN WINAPI SetSuspendState(BOOLEAN,BOOLEAN,BOOLEAN);
113 BOOLEAN WINAPI GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY,PPOWER_POLICY);
114 BOOLEAN WINAPI CanUserWritePwrScheme(VOID);
115 BOOLEAN WINAPI ReadProcessorPwrScheme(UINT,PMACHINE_PROCESSOR_POWER_POLICY);
116 BOOLEAN WINAPI WriteProcessorPwrScheme(UINT,PMACHINE_PROCESSOR_POWER_POLICY);
117 BOOLEAN WINAPI ValidatePowerPolicies(PGLOBAL_POWER_POLICY,PPOWER_POLICY);
118
119#if (_WIN32_WINNT >= 0x0600)
120#define DEVICEPOWER_HARDWAREID 0x80000000
121#define DEVICEPOWER_FILTER_DEVICES_PRESENT 0x20000000
122#define DEVICEPOWER_AND_OPERATION 0x40000000
123#define DEVICEPOWER_FILTER_WAKEENABLED 0x08000000
124#define DEVICEPOWER_FILTER_ON_NAME 0x02000000
125
126#define PDCAP_D0_SUPPORTED 0x00000001
127#define PDCAP_D1_SUPPORTED 0x00000002
128#define PDCAP_D2_SUPPORTED 0x00000004
129#define PDCAP_D3_SUPPORTED 0x00000008
130#define PDCAP_S0_SUPPORTED 0x00010000
131#define PDCAP_S1_SUPPORTED 0x00020000
132#define PDCAP_S2_SUPPORTED 0x00040000
133#define PDCAP_S3_SUPPORTED 0x00080000
134#define PDCAP_S4_SUPPORTED 0x01000000
135#define PDCAP_S5_SUPPORTED 0x02000000
136#define PDCAP_WAKE_FROM_D0_SUPPORTED 0x00000010
137#define PDCAP_WAKE_FROM_D1_SUPPORTED 0x00000020
138#define PDCAP_WAKE_FROM_D2_SUPPORTED 0x00000040
139#define PDCAP_WAKE_FROM_D3_SUPPORTED 0x00000080
140#define PDCAP_WAKE_FROM_S0_SUPPORTED 0x00100000
141#define PDCAP_WAKE_FROM_S1_SUPPORTED 0x00200000
142#define PDCAP_WAKE_FROM_S2_SUPPORTED 0x00400000
143#define PDCAP_WAKE_FROM_S3_SUPPORTED 0x00800000
144#define PDCAP_WARM_EJECT_SUPPORTED 0x00000100
145
146#define DEVICEPOWER_SET_WAKEENABLED 0x00000001
147#define DEVICEPOWER_CLEAR_WAKEENABLED 0x00000002
148
149typedef enum _POWER_DATA_ACCESSOR {
150 ACCESS_AC_POWER_SETTING_INDEX = 0, // 0x0
151 ACCESS_DC_POWER_SETTING_INDEX = 1, // 0x1
152 ACCESS_SCHEME = 16, // 0x10
153 ACCESS_SUBGROUP = 17, // 0x11
154 ACCESS_INDIVIDUAL_SETTING = 18, // 0x12
155 ACCESS_ACTIVE_SCHEME = 19, // 0x13
156 ACCESS_CREATE_SCHEME = 20 // 0x14
157} POWER_DATA_ACCESSOR, *PPOWER_DATA_ACCESSOR;
158
159BOOLEAN WINAPI DevicePowerClose(void);
160BOOLEAN WINAPI DevicePowerEnumDevices(
161 ULONG QueryIndex,
162 ULONG QueryInterpretationFlags,
163 ULONG QueryFlags,
164 PBYTE pReturnBuffer,
165 PULONG pBufferSize
166);
167
168BOOLEAN WINAPI DevicePowerOpen(
169 ULONG Flags
170);
171
172DWORD WINAPI DevicePowerSetDeviceState(
173 LPCWSTR DeviceDescription,
174 ULONG SetFlags,
175 LPCVOID SetData
176);
177
178DWORD WINAPI PowerCanRestoreIndividualDefaultPowerScheme(
179 const GUID *SchemeGuid
180);
181
182DWORD WINAPI PowerCreatePossibleSetting(
183 HKEY RootSystemPowerKey,
184 const GUID *SubGroupOfPowerSettingsGuid,
185 const GUID *PowerSettingGuid,
186 ULONG PossibleSettingIndex
187);
188
189DWORD WINAPI PowerCreateSetting(
190 HKEY RootSystemPowerKey,
191 const GUID *SubGroupOfPowerSettingsGuid,
192 const GUID *PowerSettingGuid
193);
194
195DWORD WINAPI PowerDeleteScheme(
196 HKEY RootPowerKey,
197 const GUID *SchemeGuid
198);
199
200POWER_PLATFORM_ROLE WINAPI PowerDeterminePlatformRole(void);
201
202DWORD WINAPI PowerDuplicateScheme(
203 HKEY RootPowerKey,
204 const GUID *SourceSchemeGuid,
205 GUID **DestinationSchemeGuid
206);
207
208DWORD WINAPI PowerEnumerate(
209 HKEY RootPowerKey,
210 const GUID *SchemeGuid,
211 const GUID *SubGroupOfPowerSettingsGuid,
212 POWER_DATA_ACCESSOR AccessFlags,
213 ULONG Index,
214 UCHAR *Buffer,
215 DWORD *BufferSize
216);
217
218DWORD WINAPI PowerGetActiveScheme(
219 HKEY UserRootPowerKey,
220 GUID **ActivePolicyGuid
221);
222
223DWORD WINAPI PowerImportPowerScheme(
224 HKEY RootPowerKey,
225 LPCWSTR ImportFileNamePath,
226 GUID **DestinationSchemeGuid
227);
228
229DWORD WINAPI PowerReadACDefaultIndex(
230 HKEY RootPowerKey,
231 const GUID *SchemePersonalityGuid,
232 const GUID *SubGroupOfPowerSettingsGuid,
233 const GUID *PowerSettingGuid,
234 LPDWORD AcDefaultIndex
235);
236
237DWORD WINAPI PowerReadACValue(
238 HKEY RootPowerKey,
239 const GUID *SchemeGuid,
240 const GUID *SubGroupOfPowerSettingsGuid,
241 const GUID *PowerSettingGuid,
242 PULONG Type,
243 LPBYTE Buffer,
244 LPDWORD BufferSize
245);
246
247DWORD WINAPI PowerReadACValueIndex(
248 HKEY RootPowerKey,
249 const GUID *SchemeGuid,
250 const GUID *SubGroupOfPowerSettingsGuid,
251 const GUID *PowerSettingGuid,
252 LPDWORD AcValueIndex
253);
254
255DWORD WINAPI PowerReadDCDefaultIndex(
256 HKEY RootPowerKey,
257 const GUID *SchemePersonalityGuid,
258 const GUID *SubGroupOfPowerSettingsGuid,
259 const GUID *PowerSettingGuid,
260 LPDWORD DcDefaultIndex
261);
262
263DWORD WINAPI PowerReadDCValue(
264 HKEY RootPowerKey,
265 const GUID *SchemeGuid,
266 const GUID *SubGroupOfPowerSettingsGuid,
267 const GUID *PowerSettingGuid,
268 PULONG Type,
269 PUCHAR Buffer,
270 LPDWORD BufferSize
271);
272
273DWORD WINAPI PowerReadDCValueIndex(
274 HKEY RootPowerKey,
275 const GUID *SchemeGuid,
276 const GUID *SubGroupOfPowerSettingsGuid,
277 const GUID *PowerSettingGuid,
278 LPDWORD DcValueIndex
279);
280
281DWORD WINAPI PowerReadDescription(
282 HKEY RootPowerKey,
283 const GUID *SchemeGuid,
284 const GUID *SubGroupOfPowerSettingsGuid,
285 const GUID *PowerSettingGuid,
286 PUCHAR Buffer,
287 LPDWORD BufferSize
288);
289
290DWORD WINAPI PowerReadFriendlyName(
291 HKEY RootPowerKey,
292 const GUID *SchemeGuid,
293 const GUID *SubGroupOfPowerSettingsGuid,
294 const GUID *PowerSettingGuid,
295 PUCHAR Buffer,
296 LPDWORD BufferSize
297);
298
299DWORD WINAPI PowerReadIconResourceSpecifier(
300 HKEY RootPowerKey,
301 const GUID *SchemeGuid,
302 const GUID *SubGroupOfPowerSettingsGuid,
303 const GUID *PowerSettingGuid,
304 PUCHAR Buffer,
305 LPDWORD BufferSize
306);
307
308DWORD WINAPI PowerReadPossibleDescription(
309 HKEY RootPowerKey,
310 const GUID *SubGroupOfPowerSettingsGuid,
311 const GUID *PowerSettingGuid,
312 ULONG PossibleSettingIndex,
313 PUCHAR Buffer,
314 LPDWORD BufferSize
315);
316
317DWORD WINAPI PowerReadPossibleFriendlyName(
318 HKEY RootPowerKey,
319 const GUID *SubGroupOfPowerSettingsGuid,
320 const GUID *PowerSettingGuid,
321 ULONG PossibleSettingIndex,
322 PUCHAR Buffer,
323 LPDWORD BufferSize
324);
325
326DWORD WINAPI PowerReadPossibleValue(
327 HKEY RootPowerKey,
328 const GUID *SubGroupOfPowerSettingsGuid,
329 const GUID *PowerSettingGuid,
330 PULONG Type,
331 ULONG PossibleSettingIndex,
332 PUCHAR Buffer,
333 LPDWORD BufferSize
334);
335
336DWORD WINAPI PowerReadSettingAttributes(
337 const GUID *SubGroupGuid,
338 const GUID *PowerSettingGuid
339);
340
341DWORD WINAPI PowerReadValueIncrement(
342 HKEY RootPowerKey,
343 const GUID *SubGroupOfPowerSettingsGuid,
344 const GUID *PowerSettingGuid,
345 LPDWORD ValueIncrement
346);
347
348DWORD WINAPI PowerReadValueMax(
349 HKEY RootPowerKey,
350 const GUID *SubGroupOfPowerSettingsGuid,
351 const GUID *PowerSettingGuid,
352 LPDWORD ValueMaximum
353);
354
355DWORD WINAPI PowerReadValueMin(
356 HKEY RootPowerKey,
357 const GUID *SubGroupOfPowerSettingsGuid,
358 const GUID *PowerSettingGuid,
359 LPDWORD ValueMinimum
360);
361
362DWORD WINAPI PowerReadValueUnitsSpecifier(
363 HKEY RootPowerKey,
364 const GUID *SubGroupOfPowerSettingsGuid,
365 const GUID *PowerSettingGuid,
366 UCHAR *Buffer,
367 LPDWORD BufferSize
368);
369
370DWORD WINAPI PowerRemovePowerSetting(
371 const GUID *PowerSettingSubKeyGuid,
372 const GUID *PowerSettingGuid
373);
374
375DWORD WINAPI PowerReplaceDefaultPowerSchemes(void);
376
377DWORD WINAPI PowerRestoreDefaultPowerSchemes(void);
378
379DWORD WINAPI PowerRestoreIndividualDefaultPowerScheme(
380 const GUID *SchemeGuid
381);
382
383DWORD WINAPI PowerSetActiveScheme(
384 HKEY UserRootPowerKey,
385 const GUID *SchemeGuid
386);
387
388DWORD WINAPI PowerSettingAccessCheck(
389 POWER_DATA_ACCESSOR AccessFlags,
390 const GUID *PowerGuid
391);
392
393DWORD WINAPI PowerWriteACDefaultIndex(
394 HKEY RootSystemPowerKey,
395 const GUID *SchemePersonalityGuid,
396 const GUID *SubGroupOfPowerSettingsGuid,
397 const GUID *PowerSettingGuid,
398 DWORD DefaultAcIndex
399);
400
401DWORD WINAPI PowerWriteACValueIndex(
402 HKEY RootPowerKey,
403 const GUID *SchemeGuid,
404 const GUID *SubGroupOfPowerSettingsGuid,
405 const GUID *PowerSettingGuid,
406 DWORD AcValueIndex
407);
408
409DWORD WINAPI PowerWriteDCDefaultIndex(
410 HKEY RootSystemPowerKey,
411 const GUID *SchemePersonalityGuid,
412 const GUID *SubGroupOfPowerSettingsGuid,
413 const GUID *PowerSettingGuid,
414 DWORD DefaultDcIndex
415);
416
417DWORD WINAPI PowerWriteDCValueIndex(
418 HKEY RootPowerKey,
419 const GUID *SchemeGuid,
420 const GUID *SubGroupOfPowerSettingsGuid,
421 const GUID *PowerSettingGuid,
422 DWORD DcValueIndex
423);
424
425DWORD WINAPI PowerWriteDescription(
426 HKEY RootPowerKey,
427 const GUID *SchemeGuid,
428 const GUID *SubGroupOfPowerSettingsGuid,
429 const GUID *PowerSettingGuid,
430 UCHAR *Buffer,
431 DWORD BufferSize
432);
433
434DWORD WINAPI PowerWriteFriendlyName(
435 HKEY RootPowerKey,
436 const GUID *SchemeGuid,
437 const GUID *SubGroupOfPowerSettingsGuid,
438 const GUID *PowerSettingGuid,
439 UCHAR *Buffer,
440 DWORD BufferSize
441);
442
443DWORD WINAPI PowerWriteIconResourceSpecifier(
444 HKEY RootPowerKey,
445 const GUID *SchemeGuid,
446 const GUID *SubGroupOfPowerSettingsGuid,
447 const GUID *PowerSettingGuid,
448 UCHAR *Buffer,
449 DWORD BufferSize
450);
451
452DWORD WINAPI PowerWritePossibleDescription(
453 HKEY RootPowerKey,
454 const GUID *SubGroupOfPowerSettingsGuid,
455 const GUID *PowerSettingGuid,
456 ULONG PossibleSettingIndex,
457 UCHAR *Buffer,
458 DWORD BufferSize
459);
460
461DWORD WINAPI PowerWritePossibleFriendlyName(
462 HKEY RootPowerKey,
463 const GUID *SubGroupOfPowerSettingsGuid,
464 const GUID *PowerSettingGuid,
465 ULONG PossibleSettingIndex,
466 UCHAR *Buffer,
467 DWORD BufferSize
468);
469
470DWORD WINAPI PowerWritePossibleValue(
471 HKEY RootPowerKey,
472 const GUID *SubGroupOfPowerSettingsGuid,
473 const GUID *PowerSettingGuid,
474 ULONG Type,
475 ULONG PossibleSettingIndex,
476 UCHAR *Buffer,
477 DWORD BufferSize
478);
479
480#define POWER_ATTRIBUTE_HIDE 1
481
482DWORD WINAPI PowerWriteSettingAttributes(
483 const GUID *SubGroupGuid,
484 const GUID *PowerSettingGuid,
485 DWORD Attributes
486);
487
488DWORD WINAPI PowerWriteValueIncrement(
489 HKEY RootPowerKey,
490 const GUID *SubGroupOfPowerSettingsGuid,
491 const GUID *PowerSettingGuid,
492 DWORD ValueIncrement
493);
494
495DWORD WINAPI PowerWriteValueMax(
496 HKEY RootPowerKey,
497 const GUID *SubGroupOfPowerSettingsGuid,
498 const GUID *PowerSettingGuid,
499 DWORD ValueMaximum
500);
501
502DWORD WINAPI PowerWriteValueMin(
503 HKEY RootPowerKey,
504 const GUID *SubGroupOfPowerSettingsGuid,
505 const GUID *PowerSettingGuid,
506 DWORD ValueMinimum
507);
508
509DWORD WINAPI PowerWriteValueUnitsSpecifier(
510 HKEY RootPowerKey,
511 const GUID *SubGroupOfPowerSettingsGuid,
512 const GUID *PowerSettingGuid,
513 UCHAR *Buffer,
514 DWORD BufferSize
515);
516
517#endif /*(_WIN32_WINNT >= 0x0600)*/
518
519#ifndef NT_SUCCESS
520#define NTSTATUS LONG
521#define _OVERRIDE_NTSTATUS_
522#endif
523
524 NTSTATUS WINAPI CallNtPowerInformation(POWER_INFORMATION_LEVEL,PVOID,ULONG,PVOID,ULONG);
525
526#ifdef _OVERRIDE_NTSTATUS_
527#undef NTSTATUS
528#endif
529
530#ifdef __cplusplus
531}
532#endif
Note: See TracBrowser for help on using the repository browser.