[SDK][NDK] Move SYSTEM_POWER_INFORMATION to ntpoapi.h (#869)
[reactos.git] / sdk / include / xdk / pofuncs.h
1 $if (_WDMDDK_)
2 /******************************************************************************
3 * Power Management Support Functions *
4 ******************************************************************************/
5
6 #define PoSetDeviceBusy(IdlePointer) ((void)(*(IdlePointer) = 0))
7
8 #if (NTDDI_VERSION >= NTDDI_WIN2K)
9
10 _IRQL_requires_max_(DISPATCH_LEVEL)
11 NTKERNELAPI
12 NTSTATUS
13 NTAPI
14 PoCallDriver(
15 _In_ struct _DEVICE_OBJECT *DeviceObject,
16 _Inout_ __drv_aliasesMem struct _IRP *Irp);
17
18 _IRQL_requires_max_(APC_LEVEL)
19 NTKERNELAPI
20 PULONG
21 NTAPI
22 PoRegisterDeviceForIdleDetection(
23 _In_ struct _DEVICE_OBJECT *DeviceObject,
24 _In_ ULONG ConservationIdleTime,
25 _In_ ULONG PerformanceIdleTime,
26 _In_ DEVICE_POWER_STATE State);
27
28 _IRQL_requires_max_(APC_LEVEL)
29 NTKERNELAPI
30 PVOID
31 NTAPI
32 PoRegisterSystemState(
33 _Inout_opt_ PVOID StateHandle,
34 _In_ EXECUTION_STATE Flags);
35
36 _IRQL_requires_max_(DISPATCH_LEVEL)
37 NTKERNELAPI
38 NTSTATUS
39 NTAPI
40 PoRequestPowerIrp(
41 _In_ struct _DEVICE_OBJECT *DeviceObject,
42 _In_ UCHAR MinorFunction,
43 _In_ POWER_STATE PowerState,
44 _In_opt_ PREQUEST_POWER_COMPLETE CompletionFunction,
45 _In_opt_ __drv_aliasesMem PVOID Context,
46 _Outptr_opt_ struct _IRP **Irp);
47
48 _IRQL_requires_max_(DISPATCH_LEVEL)
49 NTKERNELAPI
50 POWER_STATE
51 NTAPI
52 PoSetPowerState(
53 _In_ struct _DEVICE_OBJECT *DeviceObject,
54 _In_ POWER_STATE_TYPE Type,
55 _In_ POWER_STATE State);
56
57 _IRQL_requires_max_(DISPATCH_LEVEL)
58 NTKERNELAPI
59 VOID
60 NTAPI
61 PoSetSystemState(
62 _In_ EXECUTION_STATE Flags);
63
64 _IRQL_requires_max_(DISPATCH_LEVEL)
65 NTKERNELAPI
66 VOID
67 NTAPI
68 PoStartNextPowerIrp(
69 _Inout_ struct _IRP *Irp);
70
71 _IRQL_requires_max_(APC_LEVEL)
72 NTKERNELAPI
73 VOID
74 NTAPI
75 PoUnregisterSystemState(
76 _Inout_ PVOID StateHandle);
77
78 NTKERNELAPI
79 NTSTATUS
80 NTAPI
81 PoRequestShutdownEvent(
82 OUT PVOID *Event);
83
84 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
85 $endif (_WDMDDK_)
86
87 $if (_NTIFS_)
88 #if (NTDDI_VERSION >= NTDDI_WINXP)
89 _IRQL_requires_max_(APC_LEVEL)
90 NTKERNELAPI
91 NTSTATUS
92 NTAPI
93 PoQueueShutdownWorkItem(
94 _Inout_ __drv_aliasesMem PWORK_QUEUE_ITEM WorkItem);
95 #endif
96 $endif (_NTIFS_)
97 $if (_WDMDDK_)
98 #if (NTDDI_VERSION >= NTDDI_VISTA)
99
100 _IRQL_requires_max_(DISPATCH_LEVEL)
101 NTKERNELAPI
102 VOID
103 NTAPI
104 PoSetSystemWake(
105 _Inout_ struct _IRP *Irp);
106
107 _IRQL_requires_max_(DISPATCH_LEVEL)
108 NTKERNELAPI
109 BOOLEAN
110 NTAPI
111 PoGetSystemWake(
112 _In_ struct _IRP *Irp);
113
114 _IRQL_requires_max_(APC_LEVEL)
115 NTKERNELAPI
116 NTSTATUS
117 NTAPI
118 PoRegisterPowerSettingCallback(
119 _In_opt_ PDEVICE_OBJECT DeviceObject,
120 _In_ LPCGUID SettingGuid,
121 _In_ PPOWER_SETTING_CALLBACK Callback,
122 _In_opt_ PVOID Context,
123 _Outptr_opt_ PVOID *Handle);
124
125 _IRQL_requires_max_(APC_LEVEL)
126 NTKERNELAPI
127 NTSTATUS
128 NTAPI
129 PoUnregisterPowerSettingCallback(
130 _Inout_ PVOID Handle);
131
132 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
133
134 #if (NTDDI_VERSION >= NTDDI_VISTASP1)
135 NTKERNELAPI
136 VOID
137 NTAPI
138 PoSetDeviceBusyEx(
139 _Inout_ PULONG IdlePointer);
140 #endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
141
142 #if (NTDDI_VERSION >= NTDDI_WIN7)
143
144 NTKERNELAPI
145 VOID
146 NTAPI
147 PoStartDeviceBusy(
148 _Inout_ PULONG IdlePointer);
149
150 NTKERNELAPI
151 VOID
152 NTAPI
153 PoEndDeviceBusy(
154 _Inout_ PULONG IdlePointer);
155
156 _IRQL_requires_max_(DISPATCH_LEVEL)
157 NTKERNELAPI
158 BOOLEAN
159 NTAPI
160 PoQueryWatchdogTime(
161 _In_ PDEVICE_OBJECT Pdo,
162 _Out_ PULONG SecondsRemaining);
163
164 _IRQL_requires_max_(APC_LEVEL)
165 NTKERNELAPI
166 VOID
167 NTAPI
168 PoDeletePowerRequest(
169 _Inout_ PVOID PowerRequest);
170
171 _IRQL_requires_max_(DISPATCH_LEVEL)
172 NTKERNELAPI
173 NTSTATUS
174 NTAPI
175 PoSetPowerRequest(
176 _Inout_ PVOID PowerRequest,
177 _In_ POWER_REQUEST_TYPE Type);
178
179 _IRQL_requires_max_(DISPATCH_LEVEL)
180 NTKERNELAPI
181 NTSTATUS
182 NTAPI
183 PoClearPowerRequest(
184 _Inout_ PVOID PowerRequest,
185 _In_ POWER_REQUEST_TYPE Type);
186
187 _IRQL_requires_max_(APC_LEVEL)
188 NTKERNELAPI
189 NTSTATUS
190 NTAPI
191 PoCreatePowerRequest(
192 _Outptr_ PVOID *PowerRequest,
193 _In_ PDEVICE_OBJECT DeviceObject,
194 _In_opt_ PCOUNTED_REASON_CONTEXT Context);
195
196 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
197