text: /**
   * 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 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);
  #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
  