Revert the sync.
[reactos.git] / 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 NTKERNELAPI
11 NTSTATUS
12 NTAPI
13 PoCallDriver(
14 IN struct _DEVICE_OBJECT *DeviceObject,
15 IN OUT struct _IRP *Irp);
16
17 NTKERNELAPI
18 PULONG
19 NTAPI
20 PoRegisterDeviceForIdleDetection(
21 IN struct _DEVICE_OBJECT *DeviceObject,
22 IN ULONG ConservationIdleTime,
23 IN ULONG PerformanceIdleTime,
24 IN DEVICE_POWER_STATE State);
25
26 NTKERNELAPI
27 PVOID
28 NTAPI
29 PoRegisterSystemState(
30 IN OUT PVOID StateHandle OPTIONAL,
31 IN EXECUTION_STATE Flags);
32
33 NTKERNELAPI
34 NTSTATUS
35 NTAPI
36 PoRequestPowerIrp(
37 IN struct _DEVICE_OBJECT *DeviceObject,
38 IN UCHAR MinorFunction,
39 IN POWER_STATE PowerState,
40 IN PREQUEST_POWER_COMPLETE CompletionFunction OPTIONAL,
41 IN PVOID Context OPTIONAL,
42 OUT struct _IRP **Irp OPTIONAL);
43
44 NTKERNELAPI
45 POWER_STATE
46 NTAPI
47 PoSetPowerState(
48 IN struct _DEVICE_OBJECT *DeviceObject,
49 IN POWER_STATE_TYPE Type,
50 IN POWER_STATE State);
51
52 NTKERNELAPI
53 VOID
54 NTAPI
55 PoSetSystemState(
56 IN EXECUTION_STATE Flags);
57
58 NTKERNELAPI
59 VOID
60 NTAPI
61 PoStartNextPowerIrp(
62 IN OUT struct _IRP *Irp);
63
64 NTKERNELAPI
65 VOID
66 NTAPI
67 PoUnregisterSystemState(
68 IN OUT PVOID StateHandle);
69
70 NTKERNELAPI
71 NTSTATUS
72 NTAPI
73 PoRequestShutdownEvent(
74 OUT PVOID *Event);
75
76 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
77 $endif (_WDMDDK_)
78
79 $if (_NTIFS_)
80 #if (NTDDI_VERSION >= NTDDI_WINXP)
81 NTKERNELAPI
82 NTSTATUS
83 NTAPI
84 PoQueueShutdownWorkItem(
85 IN OUT PWORK_QUEUE_ITEM WorkItem);
86 #endif
87 $endif (_NTIFS_)
88 $if (_WDMDDK_)
89 #if (NTDDI_VERSION >= NTDDI_VISTA)
90
91 NTKERNELAPI
92 VOID
93 NTAPI
94 PoSetSystemWake(
95 IN OUT struct _IRP *Irp);
96
97 NTKERNELAPI
98 BOOLEAN
99 NTAPI
100 PoGetSystemWake(
101 IN struct _IRP *Irp);
102
103 NTKERNELAPI
104 NTSTATUS
105 NTAPI
106 PoRegisterPowerSettingCallback(
107 IN PDEVICE_OBJECT DeviceObject OPTIONAL,
108 IN LPCGUID SettingGuid,
109 IN PPOWER_SETTING_CALLBACK Callback,
110 IN PVOID Context OPTIONAL,
111 OUT PVOID *Handle OPTIONAL);
112
113 NTKERNELAPI
114 NTSTATUS
115 NTAPI
116 PoUnregisterPowerSettingCallback(
117 IN OUT PVOID Handle);
118
119 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
120
121 #if (NTDDI_VERSION >= NTDDI_VISTASP1)
122 NTKERNELAPI
123 VOID
124 NTAPI
125 PoSetDeviceBusyEx(
126 IN OUT PULONG IdlePointer);
127 #endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
128
129 #if (NTDDI_VERSION >= NTDDI_WIN7)
130
131 NTKERNELAPI
132 VOID
133 NTAPI
134 PoStartDeviceBusy(
135 IN OUT PULONG IdlePointer);
136
137 NTKERNELAPI
138 VOID
139 NTAPI
140 PoEndDeviceBusy(
141 IN OUT PULONG IdlePointer);
142
143 NTKERNELAPI
144 BOOLEAN
145 NTAPI
146 PoQueryWatchdogTime(
147 IN PDEVICE_OBJECT Pdo,
148 OUT PULONG SecondsRemaining);
149
150 NTKERNELAPI
151 VOID
152 NTAPI
153 PoDeletePowerRequest(
154 IN OUT PVOID PowerRequest);
155
156 NTKERNELAPI
157 NTSTATUS
158 NTAPI
159 PoSetPowerRequest(
160 IN OUT PVOID PowerRequest,
161 IN POWER_REQUEST_TYPE Type);
162
163 NTKERNELAPI
164 NTSTATUS
165 NTAPI
166 PoClearPowerRequest(
167 IN OUT PVOID PowerRequest,
168 IN POWER_REQUEST_TYPE Type);
169
170 NTKERNELAPI
171 NTSTATUS
172 NTAPI
173 PoCreatePowerRequest(
174 OUT PVOID *PowerRequest,
175 IN PDEVICE_OBJECT DeviceObject,
176 IN PCOUNTED_REASON_CONTEXT Context);
177
178 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
179