1 /******************************************************************************
2 * Power Management Support Types *
3 ******************************************************************************/
8 /* Power States/Levels */
9 typedef enum _SYSTEM_POWER_STATE
{
10 PowerSystemUnspecified
,
18 } SYSTEM_POWER_STATE
, *PSYSTEM_POWER_STATE
;
20 #define POWER_SYSTEM_MAXIMUM PowerSystemMaximum
22 typedef enum _POWER_INFORMATION_LEVEL
{
27 SystemPowerCapabilities
,
29 SystemPowerStateHandler
,
30 ProcessorStateHandler
,
31 SystemPowerPolicyCurrent
,
32 AdministratorPowerPolicy
,
33 SystemReserveHiberFile
,
35 SystemPowerInformation
,
36 ProcessorStateHandler2
,
40 SystemPowerStateNotifyHandler
,
41 ProcessorPowerPolicyAc
,
42 ProcessorPowerPolicyDc
,
43 VerifyProcessorPowerPolicyAc
,
44 VerifyProcessorPowerPolicyDc
,
45 ProcessorPowerPolicyCurrent
,
46 SystemPowerStateLogging
,
47 SystemPowerLoggingEntry
,
49 NotifyUserPowerSetting
,
50 PowerInformationLevelUnused0
,
51 PowerInformationLevelUnused1
,
53 TraceApplicationPowerMessage
,
54 TraceApplicationPowerMessageEnd
,
59 SystemHiberFileInformation
,
60 TraceServicePowerMessage
,
62 PowerShutdownNotification
,
69 ProcessorInformationEx
,
70 NotifyUserModeLegacyPowerEvent
,
75 PowerInformationLevelMaximum
76 } POWER_INFORMATION_LEVEL
;
84 PowerActionShutdownReset
,
85 PowerActionShutdownOff
,
87 } POWER_ACTION
, *PPOWER_ACTION
;
89 typedef enum _DEVICE_POWER_STATE
{
90 PowerDeviceUnspecified
,
96 } DEVICE_POWER_STATE
, *PDEVICE_POWER_STATE
;
98 typedef union _POWER_STATE
{
99 SYSTEM_POWER_STATE SystemState
;
100 DEVICE_POWER_STATE DeviceState
;
101 } POWER_STATE
, *PPOWER_STATE
;
103 typedef enum _POWER_STATE_TYPE
{
104 SystemPowerState
= 0,
106 } POWER_STATE_TYPE
, *PPOWER_STATE_TYPE
;
108 #if (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_)
112 } BATTERY_REPORTING_SCALE
, *PBATTERY_REPORTING_SCALE
;
113 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_) */
115 #endif /* !_PO_DDK_ */
118 (DDKAPI
*PREQUEST_POWER_COMPLETE
)(
119 IN
struct _DEVICE_OBJECT
*DeviceObject
,
120 IN UCHAR MinorFunction
,
121 IN POWER_STATE PowerState
,
123 IN
struct _IO_STATUS_BLOCK
*IoStatus
);
127 (DDKAPI POWER_SETTING_CALLBACK
)(
128 IN LPCGUID SettingGuid
,
130 IN ULONG ValueLength
,
131 IN OUT PVOID Context OPTIONAL
);
133 typedef POWER_SETTING_CALLBACK
*PPOWER_SETTING_CALLBACK
;