[XDK]
[reactos.git] / include / xdk / pofuncs.h
1 /******************************************************************************
2 * Power Management Support Functions *
3 ******************************************************************************/
4
5 #define PoSetDeviceBusy(IdlePointer) ((void)(*(IdlePointer) = 0))
6
7 #if (NTDDI_VERSION >= NTDDI_WIN2K)
8
9 NTKERNELAPI
10 NTSTATUS
11 NTAPI
12 PoCallDriver(
13 IN struct _DEVICE_OBJECT *DeviceObject,
14 IN OUT struct _IRP *Irp);
15
16 NTKERNELAPI
17 PULONG
18 NTAPI
19 PoRegisterDeviceForIdleDetection(
20 IN struct _DEVICE_OBJECT *DeviceObject,
21 IN ULONG ConservationIdleTime,
22 IN ULONG PerformanceIdleTime,
23 IN DEVICE_POWER_STATE State);
24
25 NTKERNELAPI
26 PVOID
27 NTAPI
28 PoRegisterSystemState(
29 IN OUT PVOID StateHandle OPTIONAL,
30 IN EXECUTION_STATE Flags);
31
32 NTKERNELAPI
33 NTSTATUS
34 NTAPI
35 PoRequestPowerIrp(
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);
42
43 NTKERNELAPI
44 POWER_STATE
45 NTAPI
46 PoSetPowerState(
47 IN struct _DEVICE_OBJECT *DeviceObject,
48 IN POWER_STATE_TYPE Type,
49 IN POWER_STATE State);
50
51 NTKERNELAPI
52 VOID
53 NTAPI
54 PoSetSystemState(
55 IN EXECUTION_STATE Flags);
56
57 NTKERNELAPI
58 VOID
59 NTAPI
60 PoStartNextPowerIrp(
61 IN OUT struct _IRP *Irp);
62
63 NTKERNELAPI
64 VOID
65 NTAPI
66 PoUnregisterSystemState(
67 IN OUT PVOID StateHandle);
68
69 NTKERNELAPI
70 NTSTATUS
71 NTAPI
72 PoRequestShutdownEvent(
73 OUT PVOID *Event);
74
75 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
76
77 #if (NTDDI_VERSION >= NTDDI_VISTA)
78
79 NTKERNELAPI
80 VOID
81 NTAPI
82 PoSetSystemWake(
83 IN OUT struct _IRP *Irp);
84
85 NTKERNELAPI
86 BOOLEAN
87 NTAPI
88 PoGetSystemWake(
89 IN struct _IRP *Irp);
90
91 NTKERNELAPI
92 NTSTATUS
93 NTAPI
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);
100
101 NTKERNELAPI
102 NTSTATUS
103 NTAPI
104 PoUnregisterPowerSettingCallback(
105 IN OUT PVOID Handle);
106
107 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
108
109 #if (NTDDI_VERSION >= NTDDI_VISTASP1)
110 NTKERNELAPI
111 VOID
112 NTAPI
113 PoSetDeviceBusyEx(
114 IN OUT PULONG IdlePointer);
115 #endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
116
117 #if (NTDDI_VERSION >= NTDDI_WIN7)
118
119 NTKERNELAPI
120 VOID
121 NTAPI
122 PoStartDeviceBusy(
123 IN OUT PULONG IdlePointer);
124
125 NTKERNELAPI
126 VOID
127 NTAPI
128 PoEndDeviceBusy(
129 IN OUT PULONG IdlePointer);
130
131 NTKERNELAPI
132 BOOLEAN
133 NTAPI
134 PoQueryWatchdogTime(
135 IN PDEVICE_OBJECT Pdo,
136 OUT PULONG SecondsRemaining);
137
138 NTKERNELAPI
139 VOID
140 NTAPI
141 PoDeletePowerRequest(
142 IN OUT PVOID PowerRequest);
143
144 NTKERNELAPI
145 NTSTATUS
146 NTAPI
147 PoSetPowerRequest(
148 IN OUT PVOID PowerRequest,
149 IN POWER_REQUEST_TYPE Type);
150
151 NTKERNELAPI
152 NTSTATUS
153 NTAPI
154 PoClearPowerRequest(
155 IN OUT PVOID PowerRequest,
156 IN POWER_REQUEST_TYPE Type);
157
158 NTKERNELAPI
159 NTSTATUS
160 NTAPI
161 PoCreatePowerRequest(
162 OUT PVOID *PowerRequest,
163 IN PDEVICE_OBJECT DeviceObject,
164 IN PCOUNTED_REASON_CONTEXT Context);
165
166 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
167