| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the w64 mingw-runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| typedef struct _GLOBAL_MACHINE_POWER_POLICY{ | |
| ULONG Revision; | |
| SYSTEM_POWER_STATE LidOpenWakeAc; | |
| SYSTEM_POWER_STATE LidOpenWakeDc; | |
| ULONG BroadcastCapacityResolution; | |
| } GLOBAL_MACHINE_POWER_POLICY,*PGLOBAL_MACHINE_POWER_POLICY; | |
| typedef 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 DischargePolicy[NUM_DISCHARGE_POLICIES]; | |
| ULONG GlobalFlags; | |
| } GLOBAL_USER_POWER_POLICY,*PGLOBAL_USER_POWER_POLICY; | |
| typedef struct _GLOBAL_POWER_POLICY{ | |
| GLOBAL_USER_POWER_POLICY user; | |
| GLOBAL_MACHINE_POWER_POLICY mach; | |
| } GLOBAL_POWER_POLICY,*PGLOBAL_POWER_POLICY; | |
| typedef 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 pad1[2]; | |
| POWER_ACTION_POLICY OverThrottledAc; | |
| POWER_ACTION_POLICY OverThrottledDc; | |
| } MACHINE_POWER_POLICY,*PMACHINE_POWER_POLICY; | |
| typedef struct _MACHINE_PROCESSOR_POWER_POLICY { | |
| ULONG Revision; | |
| PROCESSOR_POWER_POLICY ProcessorPolicyAc; | |
| PROCESSOR_POWER_POLICY ProcessorPolicyDc; | |
| } MACHINE_PROCESSOR_POWER_POLICY,*PMACHINE_PROCESSOR_POWER_POLICY; | |
| typedef 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 Reserved[2]; | |
| ULONG VideoTimeoutAc; | |
| ULONG VideoTimeoutDc; | |
| ULONG SpindownTimeoutAc; | |
| ULONG SpindownTimeoutDc; | |
| BOOLEAN OptimizeForPowerAc; | |
| BOOLEAN OptimizeForPowerDc; | |
| UCHAR FanThrottleToleranceAc; | |
| UCHAR FanThrottleToleranceDc; | |
| UCHAR ForcedThrottleAc; | |
| UCHAR ForcedThrottleDc; | |
| } USER_POWER_POLICY,*PUSER_POWER_POLICY; | |
| typedef struct _POWER_POLICY{ | |
| USER_POWER_POLICY user; | |
| MACHINE_POWER_POLICY mach; | |
| } POWER_POLICY,*PPOWER_POLICY; | |
| #define EnableSysTrayBatteryMeter 0x01 | |
| #define EnableMultiBatteryDisplay 0x02 | |
| #define EnablePasswordLogon 0x04 | |
| #define EnableWakeOnRing 0x08 | |
| #define EnableVideoDimDisplay 0x10 | |
| #define NEWSCHEME (UINT)-1 | |
| typedef BOOLEAN (CALLBACK *PWRSCHEMESENUMPROC)(UINT,DWORD,LPTSTR,DWORD,LPTSTR,PPOWER_POLICY,LPARAM); | |
| typedef BOOLEAN (CALLBACK *PFNNTINITIATEPWRACTION)(POWER_ACTION,SYSTEM_POWER_STATE,ULONG,BOOLEAN); | |
| BOOLEAN WINAPI GetPwrDiskSpindownRange(PUINT,PUINT); | |
| BOOLEAN WINAPI EnumPwrSchemes(PWRSCHEMESENUMPROC,LPARAM); | |
| BOOLEAN WINAPI ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY); | |
| BOOLEAN WINAPI ReadPwrScheme(UINT,PPOWER_POLICY); | |
| BOOLEAN WINAPI WritePwrScheme(PUINT,LPTSTR,LPTSTR,PPOWER_POLICY); | |
| BOOLEAN WINAPI WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY); | |
| BOOLEAN WINAPI DeletePwrScheme(UINT); | |
| BOOLEAN WINAPI GetActivePwrScheme(PUINT); | |
| BOOLEAN WINAPI SetActivePwrScheme(UINT,PGLOBAL_POWER_POLICY,PPOWER_POLICY); | |
| BOOLEAN WINAPI GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES); | |
| BOOLEAN WINAPI IsPwrSuspendAllowed(VOID); | |
| BOOLEAN WINAPI IsPwrHibernateAllowed(VOID); | |
| BOOLEAN WINAPI IsPwrShutdownAllowed(VOID); | |
| BOOLEAN WINAPI IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY); | |
| BOOLEAN WINAPI SetSuspendState(BOOLEAN,BOOLEAN,BOOLEAN); | |
| BOOLEAN WINAPI GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY,PPOWER_POLICY); | |
| BOOLEAN WINAPI CanUserWritePwrScheme(VOID); | |
| BOOLEAN WINAPI ReadProcessorPwrScheme(UINT,PMACHINE_PROCESSOR_POWER_POLICY); | |
| BOOLEAN WINAPI WriteProcessorPwrScheme(UINT,PMACHINE_PROCESSOR_POWER_POLICY); | |
| BOOLEAN WINAPI ValidatePowerPolicies(PGLOBAL_POWER_POLICY,PPOWER_POLICY); | |
| #if (_WIN32_WINNT >= 0x0600) | |
| #define DEVICEPOWER_HARDWAREID 0x80000000 | |
| #define DEVICEPOWER_FILTER_DEVICES_PRESENT 0x20000000 | |
| #define DEVICEPOWER_AND_OPERATION 0x40000000 | |
| #define DEVICEPOWER_FILTER_WAKEENABLED 0x08000000 | |
| #define DEVICEPOWER_FILTER_ON_NAME 0x02000000 | |
| #define PDCAP_D0_SUPPORTED 0x00000001 | |
| #define PDCAP_D1_SUPPORTED 0x00000002 | |
| #define PDCAP_D2_SUPPORTED 0x00000004 | |
| #define PDCAP_D3_SUPPORTED 0x00000008 | |
| #define PDCAP_S0_SUPPORTED 0x00010000 | |
| #define PDCAP_S1_SUPPORTED 0x00020000 | |
| #define PDCAP_S2_SUPPORTED 0x00040000 | |
| #define PDCAP_S3_SUPPORTED 0x00080000 | |
| #define PDCAP_S4_SUPPORTED 0x01000000 | |
| #define PDCAP_S5_SUPPORTED 0x02000000 | |
| #define PDCAP_WAKE_FROM_D0_SUPPORTED 0x00000010 | |
| #define PDCAP_WAKE_FROM_D1_SUPPORTED 0x00000020 | |
| #define PDCAP_WAKE_FROM_D2_SUPPORTED 0x00000040 | |
| #define PDCAP_WAKE_FROM_D3_SUPPORTED 0x00000080 | |
| #define PDCAP_WAKE_FROM_S0_SUPPORTED 0x00100000 | |
| #define PDCAP_WAKE_FROM_S1_SUPPORTED 0x00200000 | |
| #define PDCAP_WAKE_FROM_S2_SUPPORTED 0x00400000 | |
| #define PDCAP_WAKE_FROM_S3_SUPPORTED 0x00800000 | |
| #define PDCAP_WARM_EJECT_SUPPORTED 0x00000100 | |
| #define DEVICEPOWER_SET_WAKEENABLED 0x00000001 | |
| #define DEVICEPOWER_CLEAR_WAKEENABLED 0x00000002 | |
| typedef enum _POWER_DATA_ACCESSOR { | |
| ACCESS_AC_POWER_SETTING_INDEX = 0, // 0x0 | |
| ACCESS_DC_POWER_SETTING_INDEX = 1, // 0x1 | |
| ACCESS_SCHEME = 16, // 0x10 | |
| ACCESS_SUBGROUP = 17, // 0x11 | |
| ACCESS_INDIVIDUAL_SETTING = 18, // 0x12 | |
| ACCESS_ACTIVE_SCHEME = 19, // 0x13 | |
| ACCESS_CREATE_SCHEME = 20 // 0x14 | |
| } POWER_DATA_ACCESSOR, *PPOWER_DATA_ACCESSOR; | |
| BOOLEAN WINAPI DevicePowerClose(void); | |
| BOOLEAN WINAPI DevicePowerEnumDevices( | |
| ULONG QueryIndex, | |
| ULONG QueryInterpretationFlags, | |
| ULONG QueryFlags, | |
| PBYTE pReturnBuffer, | |
| PULONG pBufferSize | |
| ); | |
| BOOLEAN WINAPI DevicePowerOpen( | |
| ULONG Flags | |
| ); | |
| DWORD WINAPI DevicePowerSetDeviceState( | |
| LPCWSTR DeviceDescription, | |
| ULONG SetFlags, | |
| LPCVOID SetData | |
| ); | |
| DWORD WINAPI PowerCanRestoreIndividualDefaultPowerScheme( | |
| const GUID *SchemeGuid | |
| ); | |
| DWORD WINAPI PowerCreatePossibleSetting( | |
| HKEY RootSystemPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| ULONG PossibleSettingIndex | |
| ); | |
| DWORD WINAPI PowerCreateSetting( | |
| HKEY RootSystemPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid | |
| ); | |
| DWORD WINAPI PowerDeleteScheme( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid | |
| ); | |
| POWER_PLATFORM_ROLE WINAPI PowerDeterminePlatformRole(void); | |
| DWORD WINAPI PowerDuplicateScheme( | |
| HKEY RootPowerKey, | |
| const GUID *SourceSchemeGuid, | |
| GUID **DestinationSchemeGuid | |
| ); | |
| DWORD WINAPI PowerEnumerate( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| POWER_DATA_ACCESSOR AccessFlags, | |
| ULONG Index, | |
| UCHAR *Buffer, | |
| DWORD *BufferSize | |
| ); | |
| DWORD WINAPI PowerGetActiveScheme( | |
| HKEY UserRootPowerKey, | |
| GUID **ActivePolicyGuid | |
| ); | |
| DWORD WINAPI PowerImportPowerScheme( | |
| HKEY RootPowerKey, | |
| LPCWSTR ImportFileNamePath, | |
| GUID **DestinationSchemeGuid | |
| ); | |
| DWORD WINAPI PowerReadACDefaultIndex( | |
| HKEY RootPowerKey, | |
| const GUID *SchemePersonalityGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| LPDWORD AcDefaultIndex | |
| ); | |
| DWORD WINAPI PowerReadACValue( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| PULONG Type, | |
| LPBYTE Buffer, | |
| LPDWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerReadACValueIndex( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| LPDWORD AcValueIndex | |
| ); | |
| DWORD WINAPI PowerReadDCDefaultIndex( | |
| HKEY RootPowerKey, | |
| const GUID *SchemePersonalityGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| LPDWORD DcDefaultIndex | |
| ); | |
| DWORD WINAPI PowerReadDCValue( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| PULONG Type, | |
| PUCHAR Buffer, | |
| LPDWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerReadDCValueIndex( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| LPDWORD DcValueIndex | |
| ); | |
| DWORD WINAPI PowerReadDescription( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| PUCHAR Buffer, | |
| LPDWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerReadFriendlyName( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| PUCHAR Buffer, | |
| LPDWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerReadIconResourceSpecifier( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| PUCHAR Buffer, | |
| LPDWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerReadPossibleDescription( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| ULONG PossibleSettingIndex, | |
| PUCHAR Buffer, | |
| LPDWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerReadPossibleFriendlyName( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| ULONG PossibleSettingIndex, | |
| PUCHAR Buffer, | |
| LPDWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerReadPossibleValue( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| PULONG Type, | |
| ULONG PossibleSettingIndex, | |
| PUCHAR Buffer, | |
| LPDWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerReadSettingAttributes( | |
| const GUID *SubGroupGuid, | |
| const GUID *PowerSettingGuid | |
| ); | |
| DWORD WINAPI PowerReadValueIncrement( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| LPDWORD ValueIncrement | |
| ); | |
| DWORD WINAPI PowerReadValueMax( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| LPDWORD ValueMaximum | |
| ); | |
| DWORD WINAPI PowerReadValueMin( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| LPDWORD ValueMinimum | |
| ); | |
| DWORD WINAPI PowerReadValueUnitsSpecifier( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| UCHAR *Buffer, | |
| LPDWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerRemovePowerSetting( | |
| const GUID *PowerSettingSubKeyGuid, | |
| const GUID *PowerSettingGuid | |
| ); | |
| DWORD WINAPI PowerReplaceDefaultPowerSchemes(void); | |
| DWORD WINAPI PowerRestoreDefaultPowerSchemes(void); | |
| DWORD WINAPI PowerRestoreIndividualDefaultPowerScheme( | |
| const GUID *SchemeGuid | |
| ); | |
| DWORD WINAPI PowerSetActiveScheme( | |
| HKEY UserRootPowerKey, | |
| const GUID *SchemeGuid | |
| ); | |
| DWORD WINAPI PowerSettingAccessCheck( | |
| POWER_DATA_ACCESSOR AccessFlags, | |
| const GUID *PowerGuid | |
| ); | |
| DWORD WINAPI PowerWriteACDefaultIndex( | |
| HKEY RootSystemPowerKey, | |
| const GUID *SchemePersonalityGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| DWORD DefaultAcIndex | |
| ); | |
| DWORD WINAPI PowerWriteACValueIndex( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| DWORD AcValueIndex | |
| ); | |
| DWORD WINAPI PowerWriteDCDefaultIndex( | |
| HKEY RootSystemPowerKey, | |
| const GUID *SchemePersonalityGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| DWORD DefaultDcIndex | |
| ); | |
| DWORD WINAPI PowerWriteDCValueIndex( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| DWORD DcValueIndex | |
| ); | |
| DWORD WINAPI PowerWriteDescription( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| UCHAR *Buffer, | |
| DWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerWriteFriendlyName( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| UCHAR *Buffer, | |
| DWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerWriteIconResourceSpecifier( | |
| HKEY RootPowerKey, | |
| const GUID *SchemeGuid, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| UCHAR *Buffer, | |
| DWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerWritePossibleDescription( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| ULONG PossibleSettingIndex, | |
| UCHAR *Buffer, | |
| DWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerWritePossibleFriendlyName( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| ULONG PossibleSettingIndex, | |
| UCHAR *Buffer, | |
| DWORD BufferSize | |
| ); | |
| DWORD WINAPI PowerWritePossibleValue( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| ULONG Type, | |
| ULONG PossibleSettingIndex, | |
| UCHAR *Buffer, | |
| DWORD BufferSize | |
| ); | |
| #define POWER_ATTRIBUTE_HIDE 1 | |
| DWORD WINAPI PowerWriteSettingAttributes( | |
| const GUID *SubGroupGuid, | |
| const GUID *PowerSettingGuid, | |
| DWORD Attributes | |
| ); | |
| DWORD WINAPI PowerWriteValueIncrement( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| DWORD ValueIncrement | |
| ); | |
| DWORD WINAPI PowerWriteValueMax( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| DWORD ValueMaximum | |
| ); | |
| DWORD WINAPI PowerWriteValueMin( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| DWORD ValueMinimum | |
| ); | |
| DWORD WINAPI PowerWriteValueUnitsSpecifier( | |
| HKEY RootPowerKey, | |
| const GUID *SubGroupOfPowerSettingsGuid, | |
| const GUID *PowerSettingGuid, | |
| UCHAR *Buffer, | |
| DWORD BufferSize | |
| ); | |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ | |
| #ifndef NT_SUCCESS | |
| #define NTSTATUS LONG | |
| #define _OVERRIDE_NTSTATUS_ | |
| #endif | |
| NTSTATUS WINAPI CallNtPowerInformation(POWER_INFORMATION_LEVEL,PVOID,ULONG,PVOID,ULONG); | |
| #ifdef _OVERRIDE_NTSTATUS_ | |
| #undef NTSTATUS | |
| #endif | |
| #ifdef __cplusplus | |
| } | |
| #endif |