File Annotation

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