home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / powrprof.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  4KB  |  121 lines

  1. #ifndef _POWRPROF_H
  2. #define _POWRPROF_H
  3. #if __GNUC__ >= 3
  4. #pragma GCC system_header
  5. #endif
  6.  
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10.  
  11. #define EnableMultiBatteryDisplay 2
  12. #define EnablePasswordLogon 4
  13. #define EnableSysTrayBatteryMeter 1
  14. #define EnableWakeOnRing 8
  15. #define EnableVideoDimDisplay 16
  16. #define NEWSCHEME (UINT)-1
  17.  
  18. #ifndef RC_INVOKED
  19. #include <ntdef.h>  /* for NTSTATUS */
  20. typedef struct _GLOBAL_MACHINE_POWER_POLICY{
  21.    ULONG Revision;
  22.    SYSTEM_POWER_STATE LidOpenWakeAc;
  23.    SYSTEM_POWER_STATE LidOpenWakeDc;
  24.    ULONG BroadcastCapacityResolution;
  25. } GLOBAL_MACHINE_POWER_POLICY, *PGLOBAL_MACHINE_POWER_POLICY;
  26. typedef struct _GLOBAL_USER_POWER_POLICY{
  27.    ULONG Revision;
  28.    POWER_ACTION_POLICY PowerButtonAc;
  29.    POWER_ACTION_POLICY PowerButtonDc;
  30.    POWER_ACTION_POLICY SleepButtonAc;
  31.    POWER_ACTION_POLICY SleepButtonDc;
  32.    POWER_ACTION_POLICY LidCloseAc;
  33.    POWER_ACTION_POLICY LidCloseDc;
  34.    SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];
  35.    ULONG GlobalFlags;
  36. } GLOBAL_USER_POWER_POLICY, *PGLOBAL_USER_POWER_POLICY;
  37. typedef struct _GLOBAL_POWER_POLICY{
  38.    GLOBAL_USER_POWER_POLICY user;
  39.    GLOBAL_MACHINE_POWER_POLICY mach;
  40. } GLOBAL_POWER_POLICY, *PGLOBAL_POWER_POLICY;
  41. typedef struct _MACHINE_POWER_POLICY{
  42.    ULONG Revision;
  43.    SYSTEM_POWER_STATE MinSleepAc;
  44.    SYSTEM_POWER_STATE MinSleepDc;
  45.    SYSTEM_POWER_STATE ReducedLatencySleepAc;
  46.    SYSTEM_POWER_STATE ReducedLatencySleepDc;
  47.    ULONG DozeTimeoutAc;
  48.    ULONG DozeTimeoutDc;
  49.    ULONG DozeS4TimeoutAc;
  50.    ULONG DozeS4TimeoutDc;
  51.    UCHAR MinThrottleAc;
  52.    UCHAR MinThrottleDc;
  53.    UCHAR pad1[2];
  54.    POWER_ACTION_POLICY OverThrottledAc;
  55.    POWER_ACTION_POLICY OverThrottledDc;
  56. } MACHINE_POWER_POLICY, *PMACHINE_POWER_POLICY;
  57. typedef struct _MACHINE_PROCESSOR_POWER_POLICY {
  58.    ULONG Revision;
  59.    PROCESSOR_POWER_POLICY ProcessorPolicyAc;    
  60.    PROCESSOR_POWER_POLICY ProcessorPolicyDc;    
  61. } MACHINE_PROCESSOR_POWER_POLICY, *PMACHINE_PROCESSOR_POWER_POLICY;
  62. typedef struct _USER_POWER_POLICY{
  63.    ULONG Revision;
  64.    POWER_ACTION_POLICY IdleAc;
  65.    POWER_ACTION_POLICY IdleDc;
  66.    ULONG IdleTimeoutAc;
  67.    ULONG IdleTimeoutDc;
  68.    UCHAR IdleSensitivityAc;
  69.    UCHAR IdleSensitivityDc;
  70.    UCHAR ThrottlePolicyAc;
  71.    UCHAR ThrottlePolicyDc;
  72.    SYSTEM_POWER_STATE MaxSleepAc;
  73.    SYSTEM_POWER_STATE MaxSleepDc;
  74.    ULONG Reserved[2];
  75.    ULONG VideoTimeoutAc;
  76.    ULONG VideoTimeoutDc;
  77.    ULONG SpindownTimeoutAc;
  78.    ULONG SpindownTimeoutDc;
  79.    BOOLEAN OptimizeForPowerAc;
  80.    BOOLEAN OptimizeForPowerDc;
  81.    UCHAR FanThrottleToleranceAc;
  82.    UCHAR FanThrottleToleranceDc;
  83.    UCHAR ForcedThrottleAc;
  84.    UCHAR ForcedThrottleDc;
  85. } USER_POWER_POLICY, *PUSER_POWER_POLICY;
  86. typedef struct _POWER_POLICY{
  87.    USER_POWER_POLICY user;
  88.    MACHINE_POWER_POLICY mach;
  89. } POWER_POLICY, *PPOWER_POLICY;
  90. typedef BOOLEAN (CALLBACK* PWRSCHEMESENUMPROC)(UINT, DWORD, LPTSTR, DWORD, LPTSTR, PPOWER_POLICY, LPARAM);
  91. typedef BOOLEAN (CALLBACK* PFNNTINITIATEPWRACTION)(POWER_ACTION, SYSTEM_POWER_STATE, ULONG, BOOLEAN);
  92. NTSTATUS WINAPI CallNtPowerInformation(POWER_INFORMATION_LEVEL, PVOID, ULONG, PVOID, ULONG);
  93. BOOLEAN WINAPI CanUserWritePwrScheme(VOID);
  94. BOOLEAN WINAPI DeletePwrScheme(UINT);
  95. BOOLEAN WINAPI EnumPwrSchemes(PWRSCHEMESENUMPROC, LPARAM);
  96. BOOLEAN WINAPI GetActivePwrScheme(PUINT);
  97. BOOLEAN WINAPI GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
  98. BOOLEAN WINAPI GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES);
  99. BOOLEAN WINAPI GetPwrDiskSpindownRange(PUINT, PUINT);
  100. BOOLEAN WINAPI IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY);
  101. BOOLEAN WINAPI IsPwrHibernateAllowed(VOID);
  102. BOOLEAN WINAPI IsPwrShutdownAllowed(VOID);
  103. BOOLEAN WINAPI IsPwrSuspendAllowed(VOID);
  104. BOOLEAN WINAPI ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
  105. BOOLEAN WINAPI ReadProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
  106. BOOLEAN WINAPI ReadPwrScheme(UINT, PPOWER_POLICY);
  107. BOOLEAN WINAPI SetActivePwrScheme(UINT, PGLOBAL_POWER_POLICY, PPOWER_POLICY);
  108. BOOLEAN WINAPI SetSuspendState(BOOLEAN, BOOLEAN, BOOLEAN);
  109. BOOLEAN WINAPI WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
  110. BOOLEAN WINAPI WriteProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
  111. BOOLEAN WINAPI ValidatePowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
  112. BOOLEAN WINAPI WritePwrScheme(PUINT, LPTSTR, LPTSTR, PPOWER_POLICY);
  113.  
  114. #endif /* RC_INVOKED */
  115.  
  116. #ifdef __cplusplus
  117. }
  118. #endif
  119.  
  120. #endif /* _POWRPROF_H */
  121.