Artifact 4256acef1917a8cc61c2b482e5c693e63daf6a3d:
- File
src/win32/powrprof.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 20 70 6f 77 72 70 powrp 0070: 72 6f 66 2e 64 20 20 20 20 20 20 20 20 20 20 20 rof.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla 0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W 01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..* 01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 79 by 01e0: 20 53 74 65 77 61 72 74 20 47 6f 72 64 6f 6e 20 Stewart Gordon 01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..* 0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0250: 20 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 *..* 0260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0270: 50 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c Placed into publ 0280: 69 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 ic domain 0290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 02a0: 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a *..\************ 02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f ***********/..mo 02f0: 64 75 6c 65 20 77 69 6e 33 32 2e 70 6f 77 72 70 dule win32.powrp 0300: 72 6f 66 3b 0d 0a 70 72 61 67 6d 61 28 6c 69 62 rof;..pragma(lib 0310: 2c 20 22 70 6f 77 72 70 72 6f 66 22 29 3b 0d 0a , "powrprof");.. 0320: 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 ..private import 0330: 20 77 69 6e 33 32 2e 77 69 6e 64 65 66 3b 0d 0a win32.windef;.. 0340: 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 private import w 0350: 69 6e 33 32 2e 6e 74 64 65 66 3b 0d 0a 0d 0a 2f in32.ntdef;..../ 0360: 2f 20 46 49 58 4d 45 3a 20 6c 6f 6f 6b 20 75 70 / FIXME: look up 0370: 20 57 69 6e 64 6f 77 73 20 76 65 72 73 69 6f 6e Windows version 0380: 20 73 75 70 70 6f 72 74 0d 0a 0d 0a 63 6f 6e 73 support....cons 0390: 74 20 55 4c 4f 4e 47 0d 0a 09 45 6e 61 62 6c 65 t ULONG...Enable 03a0: 53 79 73 54 72 61 79 42 61 74 74 65 72 79 4d 65 SysTrayBatteryMe 03b0: 74 65 72 20 3d 20 20 31 2c 0d 0a 09 45 6e 61 62 ter = 1,...Enab 03c0: 6c 65 4d 75 6c 74 69 42 61 74 74 65 72 79 44 69 leMultiBatteryDi 03d0: 73 70 6c 61 79 20 3d 20 20 32 2c 0d 0a 09 45 6e splay = 2,...En 03e0: 61 62 6c 65 50 61 73 73 77 6f 72 64 4c 6f 67 6f ablePasswordLogo 03f0: 6e 20 20 20 20 20 20 20 3d 20 20 34 2c 0d 0a 09 n = 4,... 0400: 45 6e 61 62 6c 65 57 61 6b 65 4f 6e 52 69 6e 67 EnableWakeOnRing 0410: 20 20 20 20 20 20 20 20 20 20 3d 20 20 38 2c 0d = 8,. 0420: 0a 09 45 6e 61 62 6c 65 56 69 64 65 6f 44 69 6d ..EnableVideoDim 0430: 44 69 73 70 6c 61 79 20 20 20 20 20 3d 20 31 36 Display = 16 0440: 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 55 49 4e 54 20 ;....const UINT 0450: 4e 45 57 53 43 48 45 4d 45 20 3d 20 2d 31 3b 0d NEWSCHEME = -1;. 0460: 0a 0d 0a 73 74 72 75 63 74 20 47 4c 4f 42 41 4c ...struct GLOBAL 0470: 5f 4d 41 43 48 49 4e 45 5f 50 4f 57 45 52 5f 50 _MACHINE_POWER_P 0480: 4f 4c 49 43 59 20 7b 0d 0a 09 55 4c 4f 4e 47 20 OLICY {...ULONG 0490: 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 76 Rev 04a0: 69 73 69 6f 6e 3b 0d 0a 09 53 59 53 54 45 4d 5f ision;...SYSTEM_ 04b0: 50 4f 57 45 52 5f 53 54 41 54 45 20 4c 69 64 4f POWER_STATE LidO 04c0: 70 65 6e 57 61 6b 65 41 63 3b 0d 0a 09 53 59 53 penWakeAc;...SYS 04d0: 54 45 4d 5f 50 4f 57 45 52 5f 53 54 41 54 45 20 TEM_POWER_STATE 04e0: 4c 69 64 4f 70 65 6e 57 61 6b 65 44 63 3b 0d 0a LidOpenWakeDc;.. 04f0: 09 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 20 .ULONG 0500: 20 20 20 20 42 72 6f 61 64 63 61 73 74 43 61 70 BroadcastCap 0510: 61 63 69 74 79 52 65 73 6f 6c 75 74 69 6f 6e 3b acityResolution; 0520: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 47 4c 4f 42 41 ..}..alias GLOBA 0530: 4c 5f 4d 41 43 48 49 4e 45 5f 50 4f 57 45 52 5f L_MACHINE_POWER_ 0540: 50 4f 4c 49 43 59 2a 20 50 47 4c 4f 42 41 4c 5f POLICY* PGLOBAL_ 0550: 4d 41 43 48 49 4e 45 5f 50 4f 57 45 52 5f 50 4f MACHINE_POWER_PO 0560: 4c 49 43 59 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 LICY;....struct 0570: 47 4c 4f 42 41 4c 5f 55 53 45 52 5f 50 4f 57 45 GLOBAL_USER_POWE 0580: 52 5f 50 4f 4c 49 43 59 20 7b 0d 0a 09 55 4c 4f R_POLICY {...ULO 0590: 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 NG 05a0: 20 52 65 76 69 73 69 6f 6e 3b 0d 0a 09 50 4f 57 Revision;...POW 05b0: 45 52 5f 41 43 54 49 4f 4e 5f 50 4f 4c 49 43 59 ER_ACTION_POLICY 05c0: 20 50 6f 77 65 72 42 75 74 74 6f 6e 41 63 3b 0d PowerButtonAc;. 05d0: 0a 09 50 4f 57 45 52 5f 41 43 54 49 4f 4e 5f 50 ..POWER_ACTION_P 05e0: 4f 4c 49 43 59 20 50 6f 77 65 72 42 75 74 74 6f OLICY PowerButto 05f0: 6e 44 63 3b 0d 0a 09 50 4f 57 45 52 5f 41 43 54 nDc;...POWER_ACT 0600: 49 4f 4e 5f 50 4f 4c 49 43 59 20 53 6c 65 65 70 ION_POLICY Sleep 0610: 42 75 74 74 6f 6e 41 63 3b 0d 0a 09 50 4f 57 45 ButtonAc;...POWE 0620: 52 5f 41 43 54 49 4f 4e 5f 50 4f 4c 49 43 59 20 R_ACTION_POLICY 0630: 53 6c 65 65 70 42 75 74 74 6f 6e 44 63 3b 0d 0a SleepButtonDc;.. 0640: 09 50 4f 57 45 52 5f 41 43 54 49 4f 4e 5f 50 4f .POWER_ACTION_PO 0650: 4c 49 43 59 20 4c 69 64 43 6c 6f 73 65 41 63 3b LICY LidCloseAc; 0660: 0d 0a 09 50 4f 57 45 52 5f 41 43 54 49 4f 4e 5f ...POWER_ACTION_ 0670: 50 4f 4c 49 43 59 20 4c 69 64 43 6c 6f 73 65 44 POLICY LidCloseD 0680: 63 3b 0d 0a 09 53 59 53 54 45 4d 5f 50 4f 57 45 c;...SYSTEM_POWE 0690: 52 5f 4c 45 56 45 4c 5b 4e 55 4d 5f 44 49 53 43 R_LEVEL[NUM_DISC 06a0: 48 41 52 47 45 5f 50 4f 4c 49 43 49 45 53 5d 20 HARGE_POLICIES] 06b0: 44 69 73 63 68 61 72 67 65 50 6f 6c 69 63 79 3b DischargePolicy; 06c0: 0d 0a 09 55 4c 4f 4e 47 20 47 6c 6f 62 61 6c 46 ...ULONG GlobalF 06d0: 6c 61 67 73 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 lags;..}..alias 06e0: 47 4c 4f 42 41 4c 5f 55 53 45 52 5f 50 4f 57 45 GLOBAL_USER_POWE 06f0: 52 5f 50 4f 4c 49 43 59 2a 20 50 47 4c 4f 42 41 R_POLICY* PGLOBA 0700: 4c 5f 55 53 45 52 5f 50 4f 57 45 52 5f 50 4f 4c L_USER_POWER_POL 0710: 49 43 59 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 47 ICY;....struct G 0720: 4c 4f 42 41 4c 5f 50 4f 57 45 52 5f 50 4f 4c 49 LOBAL_POWER_POLI 0730: 43 59 20 7b 0d 0a 09 47 4c 4f 42 41 4c 5f 55 53 CY {...GLOBAL_US 0740: 45 52 5f 50 4f 57 45 52 5f 50 4f 4c 49 43 59 20 ER_POWER_POLICY 0750: 20 20 20 75 73 65 72 3b 0d 0a 09 47 4c 4f 42 41 user;...GLOBA 0760: 4c 5f 4d 41 43 48 49 4e 45 5f 50 4f 57 45 52 5f L_MACHINE_POWER_ 0770: 50 4f 4c 49 43 59 20 6d 61 63 68 3b 0d 0a 7d 0d POLICY mach;..}. 0780: 0a 61 6c 69 61 73 20 47 4c 4f 42 41 4c 5f 50 4f .alias GLOBAL_PO 0790: 57 45 52 5f 50 4f 4c 49 43 59 2a 20 50 47 4c 4f WER_POLICY* PGLO 07a0: 42 41 4c 5f 50 4f 57 45 52 5f 50 4f 4c 49 43 59 BAL_POWER_POLICY 07b0: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 4d 41 43 48 ;....struct MACH 07c0: 49 4e 45 5f 50 4f 57 45 52 5f 50 4f 4c 49 43 59 INE_POWER_POLICY 07d0: 20 7b 0d 0a 09 55 4c 4f 4e 47 20 20 20 20 20 20 {...ULONG 07e0: 20 20 20 20 20 20 20 20 20 52 65 76 69 73 69 6f Revisio 07f0: 6e 3b 0d 0a 09 53 59 53 54 45 4d 5f 50 4f 57 45 n;...SYSTEM_POWE 0800: 52 5f 53 54 41 54 45 20 20 4d 69 6e 53 6c 65 65 R_STATE MinSlee 0810: 70 41 63 3b 0d 0a 09 53 59 53 54 45 4d 5f 50 4f pAc;...SYSTEM_PO 0820: 57 45 52 5f 53 54 41 54 45 20 20 4d 69 6e 53 6c WER_STATE MinSl 0830: 65 65 70 44 63 3b 0d 0a 09 53 59 53 54 45 4d 5f eepDc;...SYSTEM_ 0840: 50 4f 57 45 52 5f 53 54 41 54 45 20 20 52 65 64 POWER_STATE Red 0850: 75 63 65 64 4c 61 74 65 6e 63 79 53 6c 65 65 70 ucedLatencySleep 0860: 41 63 3b 0d 0a 09 53 59 53 54 45 4d 5f 50 4f 57 Ac;...SYSTEM_POW 0870: 45 52 5f 53 54 41 54 45 20 20 52 65 64 75 63 65 ER_STATE Reduce 0880: 64 4c 61 74 65 6e 63 79 53 6c 65 65 70 44 63 3b dLatencySleepDc; 0890: 0d 0a 09 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 ...ULONG 08a0: 20 20 20 20 20 20 20 44 6f 7a 65 54 69 6d 65 6f DozeTimeo 08b0: 75 74 41 63 3b 0d 0a 09 55 4c 4f 4e 47 20 20 20 utAc;...ULONG 08c0: 20 20 20 20 20 20 20 20 20 20 20 20 44 6f 7a 65 Doze 08d0: 54 69 6d 65 6f 75 74 44 63 3b 0d 0a 09 55 4c 4f TimeoutDc;...ULO 08e0: 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 NG 08f0: 20 44 6f 7a 65 53 34 54 69 6d 65 6f 75 74 41 63 DozeS4TimeoutAc 0900: 3b 0d 0a 09 55 4c 4f 4e 47 20 20 20 20 20 20 20 ;...ULONG 0910: 20 20 20 20 20 20 20 20 44 6f 7a 65 53 34 54 69 DozeS4Ti 0920: 6d 65 6f 75 74 44 63 3b 0d 0a 09 55 43 48 41 52 meoutDc;...UCHAR 0930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d M 0940: 69 6e 54 68 72 6f 74 74 6c 65 41 63 3b 0d 0a 09 inThrottleAc;... 0950: 55 43 48 41 52 20 20 20 20 20 20 20 20 20 20 20 UCHAR 0960: 20 20 20 20 4d 69 6e 54 68 72 6f 74 74 6c 65 44 MinThrottleD 0970: 63 3b 0d 0a 09 55 43 48 41 52 5b 32 5d 20 20 20 c;...UCHAR[2] 0980: 20 20 20 20 20 20 20 20 20 70 61 64 31 3b 0d 0a pad1;.. 0990: 09 50 4f 57 45 52 5f 41 43 54 49 4f 4e 5f 50 4f .POWER_ACTION_PO 09a0: 4c 49 43 59 20 4f 76 65 72 54 68 72 6f 74 74 6c LICY OverThrottl 09b0: 65 64 41 63 3b 0d 0a 09 50 4f 57 45 52 5f 41 43 edAc;...POWER_AC 09c0: 54 49 4f 4e 5f 50 4f 4c 49 43 59 20 4f 76 65 72 TION_POLICY Over 09d0: 54 68 72 6f 74 74 6c 65 64 44 63 3b 0d 0a 7d 0d ThrottledDc;..}. 09e0: 0a 61 6c 69 61 73 20 4d 41 43 48 49 4e 45 5f 50 .alias MACHINE_P 09f0: 4f 57 45 52 5f 50 4f 4c 49 43 59 2a 20 50 4d 41 OWER_POLICY* PMA 0a00: 43 48 49 4e 45 5f 50 4f 57 45 52 5f 50 4f 4c 49 CHINE_POWER_POLI 0a10: 43 59 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 4d 41 CY;....struct MA 0a20: 43 48 49 4e 45 5f 50 52 4f 43 45 53 53 4f 52 5f CHINE_PROCESSOR_ 0a30: 50 4f 57 45 52 5f 50 4f 4c 49 43 59 20 7b 0d 0a POWER_POLICY {.. 0a40: 09 55 4c 4f 4e 47 20 52 65 76 69 73 69 6f 6e 3b .ULONG Revision; 0a50: 0d 0a 09 50 52 4f 43 45 53 53 4f 52 5f 50 4f 57 ...PROCESSOR_POW 0a60: 45 52 5f 50 4f 4c 49 43 59 20 50 72 6f 63 65 73 ER_POLICY Proces 0a70: 73 6f 72 50 6f 6c 69 63 79 41 63 3b 0d 0a 09 50 sorPolicyAc;...P 0a80: 52 4f 43 45 53 53 4f 52 5f 50 4f 57 45 52 5f 50 ROCESSOR_POWER_P 0a90: 4f 4c 49 43 59 20 50 72 6f 63 65 73 73 6f 72 50 OLICY ProcessorP 0aa0: 6f 6c 69 63 79 44 63 3b 0d 0a 7d 0d 0a 61 6c 69 olicyDc;..}..ali 0ab0: 61 73 20 4d 41 43 48 49 4e 45 5f 50 52 4f 43 45 as MACHINE_PROCE 0ac0: 53 53 4f 52 5f 50 4f 57 45 52 5f 50 4f 4c 49 43 SSOR_POWER_POLIC 0ad0: 59 2a 20 50 4d 41 43 48 49 4e 45 5f 50 52 4f 43 Y* PMACHINE_PROC 0ae0: 45 53 53 4f 52 5f 50 4f 57 45 52 5f 50 4f 4c 49 ESSOR_POWER_POLI 0af0: 43 59 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 55 53 CY;....struct US 0b00: 45 52 5f 50 4f 57 45 52 5f 50 4f 4c 49 43 59 20 ER_POWER_POLICY 0b10: 7b 0d 0a 20 20 20 55 4c 4f 4e 47 20 20 20 20 20 {.. ULONG 0b20: 20 20 20 20 20 20 20 20 20 20 52 65 76 69 73 69 Revisi 0b30: 6f 6e 3b 0d 0a 20 20 20 50 4f 57 45 52 5f 41 43 on;.. POWER_AC 0b40: 54 49 4f 4e 5f 50 4f 4c 49 43 59 20 49 64 6c 65 TION_POLICY Idle 0b50: 41 63 3b 0d 0a 20 20 20 50 4f 57 45 52 5f 41 43 Ac;.. POWER_AC 0b60: 54 49 4f 4e 5f 50 4f 4c 49 43 59 20 49 64 6c 65 TION_POLICY Idle 0b70: 44 63 3b 0d 0a 20 20 20 55 4c 4f 4e 47 20 20 20 Dc;.. ULONG 0b80: 20 20 20 20 20 20 20 20 20 20 20 20 49 64 6c 65 Idle 0b90: 54 69 6d 65 6f 75 74 41 63 3b 0d 0a 20 20 20 55 TimeoutAc;.. U 0ba0: 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 LONG 0bb0: 20 20 20 49 64 6c 65 54 69 6d 65 6f 75 74 44 63 IdleTimeoutDc 0bc0: 3b 0d 0a 20 20 20 55 43 48 41 52 20 20 20 20 20 ;.. UCHAR 0bd0: 20 20 20 20 20 20 20 20 20 20 49 64 6c 65 53 65 IdleSe 0be0: 6e 73 69 74 69 76 69 74 79 41 63 3b 0d 0a 20 20 nsitivityAc;.. 0bf0: 20 55 43 48 41 52 20 20 20 20 20 20 20 20 20 20 UCHAR 0c00: 20 20 20 20 20 49 64 6c 65 53 65 6e 73 69 74 69 IdleSensiti 0c10: 76 69 74 79 44 63 3b 0d 0a 20 20 20 55 43 48 41 vityDc;.. UCHA 0c20: 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R 0c30: 54 68 72 6f 74 74 6c 65 50 6f 6c 69 63 79 41 63 ThrottlePolicyAc 0c40: 3b 0d 0a 20 20 20 55 43 48 41 52 20 20 20 20 20 ;.. UCHAR 0c50: 20 20 20 20 20 20 20 20 20 20 54 68 72 6f 74 74 Thrott 0c60: 6c 65 50 6f 6c 69 63 79 44 63 3b 0d 0a 20 20 20 lePolicyDc;.. 0c70: 53 59 53 54 45 4d 5f 50 4f 57 45 52 5f 53 54 41 SYSTEM_POWER_STA 0c80: 54 45 20 20 4d 61 78 53 6c 65 65 70 41 63 3b 0d TE MaxSleepAc;. 0c90: 0a 20 20 20 53 59 53 54 45 4d 5f 50 4f 57 45 52 . SYSTEM_POWER 0ca0: 5f 53 54 41 54 45 20 20 4d 61 78 53 6c 65 65 70 _STATE MaxSleep 0cb0: 44 63 3b 0d 0a 20 20 20 55 4c 4f 4e 47 5b 32 5d Dc;.. ULONG[2] 0cc0: 20 20 20 20 20 20 20 20 20 20 20 20 52 65 73 65 Rese 0cd0: 72 76 65 64 3b 0d 0a 20 20 20 55 4c 4f 4e 47 20 rved;.. ULONG 0ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 56 69 Vi 0cf0: 64 65 6f 54 69 6d 65 6f 75 74 41 63 3b 0d 0a 20 deoTimeoutAc;.. 0d00: 20 20 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 ULONG 0d10: 20 20 20 20 20 20 56 69 64 65 6f 54 69 6d 65 6f VideoTimeo 0d20: 75 74 44 63 3b 0d 0a 20 20 20 55 4c 4f 4e 47 20 utDc;.. ULONG 0d30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 70 Sp 0d40: 69 6e 64 6f 77 6e 54 69 6d 65 6f 75 74 41 63 3b indownTimeoutAc; 0d50: 0d 0a 20 20 20 55 4c 4f 4e 47 20 20 20 20 20 20 .. ULONG 0d60: 20 20 20 20 20 20 20 20 20 53 70 69 6e 64 6f 77 Spindow 0d70: 6e 54 69 6d 65 6f 75 74 44 63 3b 0d 0a 20 20 20 nTimeoutDc;.. 0d80: 42 4f 4f 4c 45 41 4e 20 20 20 20 20 20 20 20 20 BOOLEAN 0d90: 20 20 20 20 4f 70 74 69 6d 69 7a 65 46 6f 72 50 OptimizeForP 0da0: 6f 77 65 72 41 63 3b 0d 0a 20 20 20 42 4f 4f 4c owerAc;.. BOOL 0db0: 45 41 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 EAN 0dc0: 4f 70 74 69 6d 69 7a 65 46 6f 72 50 6f 77 65 72 OptimizeForPower 0dd0: 44 63 3b 0d 0a 20 20 20 55 43 48 41 52 20 20 20 Dc;.. UCHAR 0de0: 20 20 20 20 20 20 20 20 20 20 20 20 46 61 6e 54 FanT 0df0: 68 72 6f 74 74 6c 65 54 6f 6c 65 72 61 6e 63 65 hrottleTolerance 0e00: 41 63 3b 0d 0a 20 20 20 55 43 48 41 52 20 20 20 Ac;.. UCHAR 0e10: 20 20 20 20 20 20 20 20 20 20 20 20 46 61 6e 54 FanT 0e20: 68 72 6f 74 74 6c 65 54 6f 6c 65 72 61 6e 63 65 hrottleTolerance 0e30: 44 63 3b 0d 0a 20 20 20 55 43 48 41 52 20 20 20 Dc;.. UCHAR 0e40: 20 20 20 20 20 20 20 20 20 20 20 20 46 6f 72 63 Forc 0e50: 65 64 54 68 72 6f 74 74 6c 65 41 63 3b 0d 0a 20 edThrottleAc;.. 0e60: 20 20 55 43 48 41 52 20 20 20 20 20 20 20 20 20 UCHAR 0e70: 20 20 20 20 20 20 46 6f 72 63 65 64 54 68 72 6f ForcedThro 0e80: 74 74 6c 65 44 63 3b 0d 0a 7d 0d 0a 61 6c 69 61 ttleDc;..}..alia 0e90: 73 20 55 53 45 52 5f 50 4f 57 45 52 5f 50 4f 4c s USER_POWER_POL 0ea0: 49 43 59 2a 20 50 55 53 45 52 5f 50 4f 57 45 52 ICY* PUSER_POWER 0eb0: 5f 50 4f 4c 49 43 59 3b 0d 0a 0d 0a 73 74 72 75 _POLICY;....stru 0ec0: 63 74 20 50 4f 57 45 52 5f 50 4f 4c 49 43 59 20 ct POWER_POLICY 0ed0: 7b 0d 0a 09 55 53 45 52 5f 50 4f 57 45 52 5f 50 {...USER_POWER_P 0ee0: 4f 4c 49 43 59 20 20 20 20 75 73 65 72 3b 0d 0a OLICY user;.. 0ef0: 09 4d 41 43 48 49 4e 45 5f 50 4f 57 45 52 5f 50 .MACHINE_POWER_P 0f00: 4f 4c 49 43 59 20 6d 61 63 68 3b 0d 0a 7d 0d 0a OLICY mach;..}.. 0f10: 61 6c 69 61 73 20 50 4f 57 45 52 5f 50 4f 4c 49 alias POWER_POLI 0f20: 43 59 2a 20 50 50 4f 57 45 52 5f 50 4f 4c 49 43 CY* PPOWER_POLIC 0f30: 59 3b 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 Y;....extern (Wi 0f40: 6e 64 6f 77 73 29 20 7b 0d 0a 09 61 6c 69 61 73 ndows) {...alias 0f50: 20 42 4f 4f 4c 45 41 4e 20 66 75 6e 63 74 69 6f BOOLEAN functio 0f60: 6e 28 55 49 4e 54 2c 20 44 57 4f 52 44 2c 20 4c n(UINT, DWORD, L 0f70: 50 54 53 54 52 2c 20 44 57 4f 52 44 2c 20 4c 50 PTSTR, DWORD, LP 0f80: 54 53 54 52 2c 20 50 50 4f 57 45 52 5f 50 4f 4c TSTR, PPOWER_POL 0f90: 49 43 59 2c 0d 0a 09 20 20 4c 50 41 52 41 4d 29 ICY,... LPARAM) 0fa0: 20 50 57 52 53 43 48 45 4d 45 53 45 4e 55 4d 50 PWRSCHEMESENUMP 0fb0: 52 4f 43 3b 0d 0a 09 61 6c 69 61 73 20 42 4f 4f ROC;...alias BOO 0fc0: 4c 45 41 4e 20 66 75 6e 63 74 69 6f 6e 28 50 4f LEAN function(PO 0fd0: 57 45 52 5f 41 43 54 49 4f 4e 2c 20 53 59 53 54 WER_ACTION, SYST 0fe0: 45 4d 5f 50 4f 57 45 52 5f 53 54 41 54 45 2c 20 EM_POWER_STATE, 0ff0: 55 4c 4f 4e 47 2c 20 42 4f 4f 4c 45 41 4e 29 0d ULONG, BOOLEAN). 1000: 0a 09 20 20 50 46 4e 4e 54 49 4e 49 54 49 41 54 .. PFNNTINITIAT 1010: 45 50 57 52 41 43 54 49 4f 4e 3b 0d 0a 0d 0a 09 EPWRACTION;..... 1020: 4e 54 53 54 41 54 55 53 20 43 61 6c 6c 4e 74 50 NTSTATUS CallNtP 1030: 6f 77 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 owerInformation( 1040: 50 4f 57 45 52 5f 49 4e 46 4f 52 4d 41 54 49 4f POWER_INFORMATIO 1050: 4e 5f 4c 45 56 45 4c 2c 20 50 56 4f 49 44 2c 20 N_LEVEL, PVOID, 1060: 55 4c 4f 4e 47 2c 0d 0a 09 20 20 50 56 4f 49 44 ULONG,... PVOID 1070: 2c 20 55 4c 4f 4e 47 29 3b 0d 0a 09 42 4f 4f 4c , ULONG);...BOOL 1080: 45 41 4e 20 43 61 6e 55 73 65 72 57 72 69 74 65 EAN CanUserWrite 1090: 50 77 72 53 63 68 65 6d 65 28 29 3b 0d 0a 09 42 PwrScheme();...B 10a0: 4f 4f 4c 45 41 4e 20 44 65 6c 65 74 65 50 77 72 OOLEAN DeletePwr 10b0: 53 63 68 65 6d 65 28 55 49 4e 54 29 3b 0d 0a 09 Scheme(UINT);... 10c0: 42 4f 4f 4c 45 41 4e 20 45 6e 75 6d 50 77 72 53 BOOLEAN EnumPwrS 10d0: 63 68 65 6d 65 73 28 50 57 52 53 43 48 45 4d 45 chemes(PWRSCHEME 10e0: 53 45 4e 55 4d 50 52 4f 43 2c 20 4c 50 41 52 41 SENUMPROC, LPARA 10f0: 4d 29 3b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 47 65 M);...BOOLEAN Ge 1100: 74 41 63 74 69 76 65 50 77 72 53 63 68 65 6d 65 tActivePwrScheme 1110: 28 50 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f 4c 45 (PUINT);...BOOLE 1120: 41 4e 20 47 65 74 43 75 72 72 65 6e 74 50 6f 77 AN GetCurrentPow 1130: 65 72 50 6f 6c 69 63 69 65 73 28 50 47 4c 4f 42 erPolicies(PGLOB 1140: 41 4c 5f 50 4f 57 45 52 5f 50 4f 4c 49 43 59 2c AL_POWER_POLICY, 1150: 20 50 50 4f 57 45 52 5f 50 4f 4c 49 43 59 29 3b PPOWER_POLICY); 1160: 0d 0a 09 42 4f 4f 4c 45 41 4e 20 47 65 74 50 77 ...BOOLEAN GetPw 1170: 72 43 61 70 61 62 69 6c 69 74 69 65 73 28 50 53 rCapabilities(PS 1180: 59 53 54 45 4d 5f 50 4f 57 45 52 5f 43 41 50 41 YSTEM_POWER_CAPA 1190: 42 49 4c 49 54 49 45 53 29 3b 0d 0a 09 42 4f 4f BILITIES);...BOO 11a0: 4c 45 41 4e 20 47 65 74 50 77 72 44 69 73 6b 53 LEAN GetPwrDiskS 11b0: 70 69 6e 64 6f 77 6e 52 61 6e 67 65 28 50 55 49 pindownRange(PUI 11c0: 4e 54 2c 20 50 55 49 4e 54 29 3b 0d 0a 09 42 4f NT, PUINT);...BO 11d0: 4f 4c 45 41 4e 20 49 73 41 64 6d 69 6e 4f 76 65 OLEAN IsAdminOve 11e0: 72 72 69 64 65 41 63 74 69 76 65 28 50 41 44 4d rrideActive(PADM 11f0: 49 4e 49 53 54 52 41 54 4f 52 5f 50 4f 57 45 52 INISTRATOR_POWER 1200: 5f 50 4f 4c 49 43 59 29 3b 0d 0a 09 42 4f 4f 4c _POLICY);...BOOL 1210: 45 41 4e 20 49 73 50 77 72 48 69 62 65 72 6e 61 EAN IsPwrHiberna 1220: 74 65 41 6c 6c 6f 77 65 64 28 29 3b 0d 0a 09 42 teAllowed();...B 1230: 4f 4f 4c 45 41 4e 20 49 73 50 77 72 53 68 75 74 OOLEAN IsPwrShut 1240: 64 6f 77 6e 41 6c 6c 6f 77 65 64 28 29 3b 0d 0a downAllowed();.. 1250: 09 42 4f 4f 4c 45 41 4e 20 49 73 50 77 72 53 75 .BOOLEAN IsPwrSu 1260: 73 70 65 6e 64 41 6c 6c 6f 77 65 64 28 29 3b 0d spendAllowed();. 1270: 0a 09 42 4f 4f 4c 45 41 4e 20 52 65 61 64 47 6c ..BOOLEAN ReadGl 1280: 6f 62 61 6c 50 77 72 50 6f 6c 69 63 79 28 50 47 obalPwrPolicy(PG 1290: 4c 4f 42 41 4c 5f 50 4f 57 45 52 5f 50 4f 4c 49 LOBAL_POWER_POLI 12a0: 43 59 29 3b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 52 CY);...BOOLEAN R 12b0: 65 61 64 50 72 6f 63 65 73 73 6f 72 50 77 72 53 eadProcessorPwrS 12c0: 63 68 65 6d 65 28 55 49 4e 54 2c 20 50 4d 41 43 cheme(UINT, PMAC 12d0: 48 49 4e 45 5f 50 52 4f 43 45 53 53 4f 52 5f 50 HINE_PROCESSOR_P 12e0: 4f 57 45 52 5f 50 4f 4c 49 43 59 29 3b 0d 0a 09 OWER_POLICY);... 12f0: 42 4f 4f 4c 45 41 4e 20 52 65 61 64 50 77 72 53 BOOLEAN ReadPwrS 1300: 63 68 65 6d 65 28 55 49 4e 54 2c 20 50 50 4f 57 cheme(UINT, PPOW 1310: 45 52 5f 50 4f 4c 49 43 59 29 3b 0d 0a 09 42 4f ER_POLICY);...BO 1320: 4f 4c 45 41 4e 20 53 65 74 41 63 74 69 76 65 50 OLEAN SetActiveP 1330: 77 72 53 63 68 65 6d 65 28 55 49 4e 54 2c 20 50 wrScheme(UINT, P 1340: 47 4c 4f 42 41 4c 5f 50 4f 57 45 52 5f 50 4f 4c GLOBAL_POWER_POL 1350: 49 43 59 2c 20 50 50 4f 57 45 52 5f 50 4f 4c 49 ICY, PPOWER_POLI 1360: 43 59 29 3b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 53 CY);...BOOLEAN S 1370: 65 74 53 75 73 70 65 6e 64 53 74 61 74 65 28 42 etSuspendState(B 1380: 4f 4f 4c 45 41 4e 2c 20 42 4f 4f 4c 45 41 4e 2c OOLEAN, BOOLEAN, 1390: 20 42 4f 4f 4c 45 41 4e 29 3b 0d 0a 09 42 4f 4f BOOLEAN);...BOO 13a0: 4c 45 41 4e 20 57 72 69 74 65 47 6c 6f 62 61 6c LEAN WriteGlobal 13b0: 50 77 72 50 6f 6c 69 63 79 28 50 47 4c 4f 42 41 PwrPolicy(PGLOBA 13c0: 4c 5f 50 4f 57 45 52 5f 50 4f 4c 49 43 59 29 3b L_POWER_POLICY); 13d0: 0d 0a 09 42 4f 4f 4c 45 41 4e 20 57 72 69 74 65 ...BOOLEAN Write 13e0: 50 72 6f 63 65 73 73 6f 72 50 77 72 53 63 68 65 ProcessorPwrSche 13f0: 6d 65 28 55 49 4e 54 2c 20 50 4d 41 43 48 49 4e me(UINT, PMACHIN 1400: 45 5f 50 52 4f 43 45 53 53 4f 52 5f 50 4f 57 45 E_PROCESSOR_POWE 1410: 52 5f 50 4f 4c 49 43 59 29 3b 0d 0a 09 42 4f 4f R_POLICY);...BOO 1420: 4c 45 41 4e 20 56 61 6c 69 64 61 74 65 50 6f 77 LEAN ValidatePow 1430: 65 72 50 6f 6c 69 63 69 65 73 28 50 47 4c 4f 42 erPolicies(PGLOB 1440: 41 4c 5f 50 4f 57 45 52 5f 50 4f 4c 49 43 59 2c AL_POWER_POLICY, 1450: 20 50 50 4f 57 45 52 5f 50 4f 4c 49 43 59 29 3b PPOWER_POLICY); 1460: 0d 0a 09 42 4f 4f 4c 45 41 4e 20 57 72 69 74 65 ...BOOLEAN Write 1470: 50 77 72 53 63 68 65 6d 65 28 50 55 49 4e 54 2c PwrScheme(PUINT, 1480: 20 4c 50 54 53 54 52 2c 20 4c 50 54 53 54 52 2c LPTSTR, LPTSTR, 1490: 20 50 50 4f 57 45 52 5f 50 4f 4c 49 43 59 29 3b PPOWER_POLICY); 14a0: 0d 0a 7d 0d 0a ..}..