| /** | |
| * 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. | |
| */ | |
| #ifndef _POWERSETTING_H_ | |
| #define _POWERSETTING_H_ | |
| #include <apiset.h> | |
| #include <apisetcconv.h> | |
| #ifdef _CONTRACT_GEN | |
| #include <nt.h> | |
| #include <ntrtl.h> | |
| #include <nturtl.h> | |
| #include <minwindef.h> | |
| #endif | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) | |
| #ifndef _HPOWERNOTIFY_DEF_ | |
| #define _HPOWERNOTIFY_DEF_ | |
| typedef PVOID HPOWERNOTIFY, *PHPOWERNOTIFY; | |
| #endif /* _HPOWERNOTIFY_DEF_ */ | |
| #if (NTDDI_VERSION >= NTDDI_VISTA) | |
| DWORD WINAPI PowerReadACValue(HKEY RootPowerKey, CONST GUID *SchemeGuid, CONST GUID *SubGroupOfPowerSettingsGuid, CONST GUID *PowerSettingGuid, PULONG Type, LPBYTE Buffer, LPDWORD BufferSize); | |
| DWORD WINAPI PowerReadDCValue(HKEY RootPowerKey, CONST GUID *SchemeGuid, CONST GUID *SubGroupOfPowerSettingsGuid, CONST GUID *PowerSettingGuid, PULONG Type, PUCHAR Buffer, LPDWORD BufferSize); | |
| DWORD WINAPI PowerWriteACValueIndex(HKEY RootPowerKey, CONST GUID *SchemeGuid, CONST GUID *SubGroupOfPowerSettingsGuid, CONST GUID *PowerSettingGuid, DWORD AcValueIndex); | |
| DWORD WINAPI PowerWriteDCValueIndex(HKEY RootPowerKey, CONST GUID *SchemeGuid, CONST GUID *SubGroupOfPowerSettingsGuid, CONST GUID *PowerSettingGuid, DWORD DcValueIndex); | |
| DWORD WINAPI PowerGetActiveScheme(HKEY UserRootPowerKey, GUID **ActivePolicyGuid); | |
| DWORD WINAPI PowerSetActiveScheme(HKEY UserRootPowerKey, CONST GUID *SchemeGuid); | |
| #endif | |
| #if (NTDDI_VERSION >= NTDDI_WIN7) | |
| DWORD WINAPI PowerSettingRegisterNotification(LPCGUID SettingGuid, DWORD Flags, HANDLE Recipient, PHPOWERNOTIFY RegistrationHandle); | |
| DWORD WINAPI PowerSettingUnregisterNotification(HPOWERNOTIFY RegistrationHandle); | |
| #endif | |
| #if NTDDI_VERSION >= NTDDI_WIN10_RS5 | |
| typedef enum EFFECTIVE_POWER_MODE { | |
| EffectivePowerModeBatterySaver, | |
| EffectivePowerModeBetterBattery, | |
| EffectivePowerModeBalanced, | |
| EffectivePowerModeHighPerformance, | |
| EffectivePowerModeMaxPerformance, | |
| EffectivePowerModeGameMode, | |
| EffectivePowerModeMixedReality | |
| } EFFECTIVE_POWER_MODE; | |
| #define EFFECTIVE_POWER_MODE_V1 (0x00000001) | |
| #define EFFECTIVE_POWER_MODE_V2 (0x00000002) | |
| typedef VOID WINAPI EFFECTIVE_POWER_MODE_CALLBACK(EFFECTIVE_POWER_MODE Mode, VOID *Context); | |
| HRESULT WINAPI PowerRegisterForEffectivePowerModeNotifications(ULONG Version, EFFECTIVE_POWER_MODE_CALLBACK *Callback, VOID *Context, VOID **RegistrationHandle); | |
| HRESULT WINAPI PowerUnregisterFromEffectivePowerModeNotifications(VOID *RegistrationHandle); | |
| #endif | |
| #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* _POWERSETTING_H_ */ |