zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

powersetting.h (2761B) - Raw


      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 
      7 #ifndef _POWERSETTING_H_
      8 #define _POWERSETTING_H_
      9 
     10 #include <apiset.h>
     11 #include <apisetcconv.h>
     12 
     13 #ifdef _CONTRACT_GEN
     14 #include <nt.h>
     15 #include <ntrtl.h>
     16 #include <nturtl.h>
     17 #include <minwindef.h>
     18 #endif
     19 
     20 #ifdef __cplusplus
     21 extern "C" {
     22 #endif
     23 
     24 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
     25 
     26 #ifndef _HPOWERNOTIFY_DEF_
     27 #define _HPOWERNOTIFY_DEF_
     28 
     29 typedef PVOID HPOWERNOTIFY, *PHPOWERNOTIFY;
     30 
     31 #endif /* _HPOWERNOTIFY_DEF_ */
     32 
     33 #if (NTDDI_VERSION >= NTDDI_VISTA)
     34 DWORD WINAPI PowerReadACValue(HKEY RootPowerKey, CONST GUID *SchemeGuid, CONST GUID *SubGroupOfPowerSettingsGuid, CONST GUID *PowerSettingGuid, PULONG Type, LPBYTE Buffer, LPDWORD BufferSize);
     35 DWORD WINAPI PowerReadDCValue(HKEY RootPowerKey, CONST GUID *SchemeGuid, CONST GUID *SubGroupOfPowerSettingsGuid, CONST GUID *PowerSettingGuid, PULONG Type, PUCHAR Buffer, LPDWORD BufferSize);
     36 DWORD WINAPI PowerWriteACValueIndex(HKEY RootPowerKey, CONST GUID *SchemeGuid, CONST GUID *SubGroupOfPowerSettingsGuid, CONST GUID *PowerSettingGuid, DWORD AcValueIndex);
     37 DWORD WINAPI PowerWriteDCValueIndex(HKEY RootPowerKey, CONST GUID *SchemeGuid, CONST GUID *SubGroupOfPowerSettingsGuid, CONST GUID *PowerSettingGuid, DWORD DcValueIndex);
     38 DWORD WINAPI PowerGetActiveScheme(HKEY UserRootPowerKey, GUID **ActivePolicyGuid);
     39 DWORD WINAPI PowerSetActiveScheme(HKEY UserRootPowerKey, CONST GUID *SchemeGuid);
     40 #endif
     41 
     42 #if (NTDDI_VERSION >= NTDDI_WIN7)
     43 DWORD WINAPI PowerSettingRegisterNotification(LPCGUID SettingGuid, DWORD Flags, HANDLE Recipient, PHPOWERNOTIFY RegistrationHandle);
     44 DWORD WINAPI PowerSettingUnregisterNotification(HPOWERNOTIFY RegistrationHandle);
     45 #endif
     46 
     47 #if NTDDI_VERSION >= NTDDI_WIN10_RS5
     48 
     49 typedef enum EFFECTIVE_POWER_MODE {
     50     EffectivePowerModeBatterySaver,
     51     EffectivePowerModeBetterBattery,
     52     EffectivePowerModeBalanced,
     53     EffectivePowerModeHighPerformance,
     54     EffectivePowerModeMaxPerformance,
     55     EffectivePowerModeGameMode,
     56     EffectivePowerModeMixedReality
     57 } EFFECTIVE_POWER_MODE;
     58 
     59 #define EFFECTIVE_POWER_MODE_V1 (0x00000001)
     60 #define EFFECTIVE_POWER_MODE_V2 (0x00000002)
     61 
     62 typedef VOID WINAPI EFFECTIVE_POWER_MODE_CALLBACK(EFFECTIVE_POWER_MODE Mode, VOID *Context);
     63 
     64 HRESULT WINAPI PowerRegisterForEffectivePowerModeNotifications(ULONG Version, EFFECTIVE_POWER_MODE_CALLBACK *Callback, VOID *Context, VOID **RegistrationHandle);
     65 HRESULT WINAPI PowerUnregisterFromEffectivePowerModeNotifications(VOID *RegistrationHandle);
     66 #endif
     67 
     68 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
     69 
     70 #ifdef __cplusplus
     71 }
     72 #endif
     73 
     74 #endif /* _POWERSETTING_H_ */