Mercurial > projects > ddbg_continued
diff win32/powrprof.d @ 1:4a9dcbd9e54f
-files of 0.13 beta
-fixes so that it now compiles with the current dmd version
author | marton@basel.hu |
---|---|
date | Tue, 05 Apr 2011 20:44:01 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win32/powrprof.d Tue Apr 05 20:44:01 2011 +0200 @@ -0,0 +1,140 @@ +/***********************************************************************\ +* powrprof.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.powrprof; +pragma(lib, "powrprof.lib"); + +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); +}