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