75 lines
2.7 KiB
C
75 lines
2.7 KiB
C
/**
|
|
* 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_ */
|