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.
/***********************************************************************\ * powrprof.d * * * * Windows API header module * * * * Translated from MinGW Windows headers * * by Stewart Gordon * * * * Placed into public domain * \***********************************************************************/ module win32.powrprof; pragma(lib, "powrprof"); private import win32.windef; private import win32.ntdef; // FIXME: look up Windows version support const ULONG EnableSysTrayBatteryMeter = 1, EnableMultiBatteryDisplay = 2, EnablePasswordLogon = 4, EnableWakeOnRing = 8, EnableVideoDimDisplay = 16; const UINT NEWSCHEME = -1; struct GLOBAL_MACHINE_POWER_POLICY { ULONG Revision; SYSTEM_POWER_STATE LidOpenWakeAc; SYSTEM_POWER_STATE LidOpenWakeDc; ULONG BroadcastCapacityResolution; } alias GLOBAL_MACHINE_POWER_POLICY* PGLOBAL_MACHINE_POWER_POLICY; struct GLOBAL_USER_POWER_POLICY { ULONG Revision; POWER_ACTION_POLICY PowerButtonAc; POWER_ACTION_POLICY PowerButtonDc; POWER_ACTION_POLICY SleepButtonAc; POWER_ACTION_POLICY SleepButtonDc; POWER_ACTION_POLICY LidCloseAc; POWER_ACTION_POLICY LidCloseDc; SYSTEM_POWER_LEVEL[NUM_DISCHARGE_POLICIES] DischargePolicy; ULONG GlobalFlags; } alias GLOBAL_USER_POWER_POLICY* PGLOBAL_USER_POWER_POLICY; struct GLOBAL_POWER_POLICY { GLOBAL_USER_POWER_POLICY user; GLOBAL_MACHINE_POWER_POLICY mach; } alias GLOBAL_POWER_POLICY* PGLOBAL_POWER_POLICY; struct MACHINE_POWER_POLICY { ULONG Revision; SYSTEM_POWER_STATE MinSleepAc; SYSTEM_POWER_STATE MinSleepDc; SYSTEM_POWER_STATE ReducedLatencySleepAc; SYSTEM_POWER_STATE ReducedLatencySleepDc; ULONG DozeTimeoutAc; ULONG DozeTimeoutDc; ULONG DozeS4TimeoutAc; ULONG DozeS4TimeoutDc; UCHAR MinThrottleAc; UCHAR MinThrottleDc; UCHAR[2] pad1; POWER_ACTION_POLICY OverThrottledAc; POWER_ACTION_POLICY OverThrottledDc; } alias MACHINE_POWER_POLICY* PMACHINE_POWER_POLICY; struct MACHINE_PROCESSOR_POWER_POLICY { ULONG Revision; PROCESSOR_POWER_POLICY ProcessorPolicyAc; PROCESSOR_POWER_POLICY ProcessorPolicyDc; } alias MACHINE_PROCESSOR_POWER_POLICY* PMACHINE_PROCESSOR_POWER_POLICY; struct USER_POWER_POLICY { ULONG Revision; POWER_ACTION_POLICY IdleAc; POWER_ACTION_POLICY IdleDc; ULONG IdleTimeoutAc; ULONG IdleTimeoutDc; UCHAR IdleSensitivityAc; UCHAR IdleSensitivityDc; UCHAR ThrottlePolicyAc; UCHAR ThrottlePolicyDc; SYSTEM_POWER_STATE MaxSleepAc; SYSTEM_POWER_STATE MaxSleepDc; ULONG[2] Reserved; ULONG VideoTimeoutAc; ULONG VideoTimeoutDc; ULONG SpindownTimeoutAc; ULONG SpindownTimeoutDc; BOOLEAN OptimizeForPowerAc; BOOLEAN OptimizeForPowerDc; UCHAR FanThrottleToleranceAc; UCHAR FanThrottleToleranceDc; UCHAR ForcedThrottleAc; UCHAR ForcedThrottleDc; } alias USER_POWER_POLICY* PUSER_POWER_POLICY; struct POWER_POLICY { USER_POWER_POLICY user; MACHINE_POWER_POLICY mach; } alias POWER_POLICY* PPOWER_POLICY; extern (Windows) { alias BOOLEAN function(UINT, DWORD, LPTSTR, DWORD, LPTSTR, PPOWER_POLICY, LPARAM) PWRSCHEMESENUMPROC; alias BOOLEAN function(POWER_ACTION, SYSTEM_POWER_STATE, ULONG, BOOLEAN) PFNNTINITIATEPWRACTION; NTSTATUS CallNtPowerInformation(POWER_INFORMATION_LEVEL, PVOID, ULONG, PVOID, ULONG); BOOLEAN CanUserWritePwrScheme(); BOOLEAN DeletePwrScheme(UINT); BOOLEAN EnumPwrSchemes(PWRSCHEMESENUMPROC, LPARAM); BOOLEAN GetActivePwrScheme(PUINT); BOOLEAN GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY); BOOLEAN GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES); BOOLEAN GetPwrDiskSpindownRange(PUINT, PUINT); BOOLEAN IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY); BOOLEAN IsPwrHibernateAllowed(); BOOLEAN IsPwrShutdownAllowed(); BOOLEAN IsPwrSuspendAllowed(); BOOLEAN ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY); BOOLEAN ReadProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY); BOOLEAN ReadPwrScheme(UINT, PPOWER_POLICY); BOOLEAN SetActivePwrScheme(UINT, PGLOBAL_POWER_POLICY, PPOWER_POLICY); BOOLEAN SetSuspendState(BOOLEAN, BOOLEAN, BOOLEAN); BOOLEAN WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY); BOOLEAN WriteProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY); BOOLEAN ValidatePowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY); BOOLEAN WritePwrScheme(PUINT, LPTSTR, LPTSTR, PPOWER_POLICY); }