| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 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 |