1 /******************************************************************************
2 * Power Management Support Functions *
3 ******************************************************************************/
5 #define PoSetDeviceBusy(IdlePointer) ((void)(*(IdlePointer) = 0))
7 #if (NTDDI_VERSION >= NTDDI_WIN2K)
13 IN
struct _DEVICE_OBJECT
*DeviceObject
,
14 IN OUT
struct _IRP
*Irp
);
19 PoRegisterDeviceForIdleDetection(
20 IN
struct _DEVICE_OBJECT
*DeviceObject
,
21 IN ULONG ConservationIdleTime
,
22 IN ULONG PerformanceIdleTime
,
23 IN DEVICE_POWER_STATE State
);
28 PoRegisterSystemState(
29 IN OUT PVOID StateHandle OPTIONAL
,
30 IN EXECUTION_STATE Flags
);
36 IN
struct _DEVICE_OBJECT
*DeviceObject
,
37 IN UCHAR MinorFunction
,
38 IN POWER_STATE PowerState
,
39 IN PREQUEST_POWER_COMPLETE CompletionFunction OPTIONAL
,
40 IN PVOID Context OPTIONAL
,
41 OUT
struct _IRP
**Irp OPTIONAL
);
47 IN
struct _DEVICE_OBJECT
*DeviceObject
,
48 IN POWER_STATE_TYPE Type
,
49 IN POWER_STATE State
);
55 IN EXECUTION_STATE Flags
);
61 IN OUT
struct _IRP
*Irp
);
66 PoUnregisterSystemState(
67 IN OUT PVOID StateHandle
);
72 PoRequestShutdownEvent(
75 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
77 #if (NTDDI_VERSION >= NTDDI_VISTA)
83 IN OUT
struct _IRP
*Irp
);
94 PoRegisterPowerSettingCallback(
95 IN PDEVICE_OBJECT DeviceObject OPTIONAL
,
96 IN LPCGUID SettingGuid
,
97 IN PPOWER_SETTING_CALLBACK Callback
,
98 IN PVOID Context OPTIONAL
,
99 OUT PVOID
*Handle OPTIONAL
);
104 PoUnregisterPowerSettingCallback(
105 IN OUT PVOID Handle
);
107 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
109 #if (NTDDI_VERSION >= NTDDI_VISTASP1)
114 IN OUT PULONG IdlePointer
);
115 #endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
117 #if (NTDDI_VERSION >= NTDDI_WIN7)
123 IN OUT PULONG IdlePointer
);
129 IN OUT PULONG IdlePointer
);
135 IN PDEVICE_OBJECT Pdo
,
136 OUT PULONG SecondsRemaining
);
141 PoDeletePowerRequest(
142 IN OUT PVOID PowerRequest
);
148 IN OUT PVOID PowerRequest
,
149 IN POWER_REQUEST_TYPE Type
);
155 IN OUT PVOID PowerRequest
,
156 IN POWER_REQUEST_TYPE Type
);
161 PoCreatePowerRequest(
162 OUT PVOID
*PowerRequest
,
163 IN PDEVICE_OBJECT DeviceObject
,
164 IN PCOUNTED_REASON_CONTEXT Context
);
166 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */