Merge trunk head (r43756)
[reactos.git] / reactos / ntoskrnl / wmi / wmi.c
1 /*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: ntoskrnl/io/wmi.c
5 * PURPOSE: I/O Windows Management Instrumentation (WMI) Support
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
7 */
8
9 /* INCLUDES *****************************************************************/
10
11 #include <ntoskrnl.h>
12 #define NDEBUG
13 #include <debug.h>
14
15 /* FUNCTIONS *****************************************************************/
16
17 /*
18 * @unimplemented
19 */
20 NTSTATUS
21 NTAPI
22 IoWMIRegistrationControl(IN PDEVICE_OBJECT DeviceObject,
23 IN ULONG Action)
24 {
25 DPRINT1("IoWMIRegistrationControl() called for DO %p, requesting %d action, returning success\n",
26 DeviceObject, Action);
27
28 return STATUS_SUCCESS;
29 }
30
31 /*
32 * @unimplemented
33 */
34 NTSTATUS
35 NTAPI
36 IoWMIAllocateInstanceIds(IN GUID *Guid,
37 IN ULONG InstanceCount,
38 OUT ULONG *FirstInstanceId)
39 {
40 UNIMPLEMENTED;
41 return STATUS_NOT_IMPLEMENTED;
42 }
43
44 /*
45 * @unimplemented
46 */
47 NTSTATUS
48 NTAPI
49 IoWMISuggestInstanceName(IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
50 IN PUNICODE_STRING SymbolicLinkName OPTIONAL,
51 IN BOOLEAN CombineNames,
52 OUT PUNICODE_STRING SuggestedInstanceName)
53 {
54 UNIMPLEMENTED;
55 return STATUS_NOT_IMPLEMENTED;
56 }
57
58 /*
59 * @unimplemented
60 */
61 NTSTATUS
62 NTAPI
63 IoWMIWriteEvent(IN PVOID WnodeEventItem)
64 {
65 DPRINT1("IoWMIWriteEvent() called for WnodeEventItem %p, returning success\n",
66 WnodeEventItem);
67
68 /* Free the buffer if we are returning success */
69 if (WnodeEventItem != NULL)
70 ExFreePool(WnodeEventItem);
71
72 return STATUS_SUCCESS;
73 }
74
75 /*
76 * @unimplemented
77 */
78 NTSTATUS
79 NTAPI
80 IoWMIOpenBlock(IN GUID *DataBlockGuid,
81 IN ULONG DesiredAccess,
82 OUT PVOID *DataBlockObject)
83 {
84 UNIMPLEMENTED;
85 return STATUS_NOT_IMPLEMENTED;
86 }
87
88 /*
89 * @unimplemented
90 */
91 NTSTATUS
92 NTAPI
93 IoWMIQueryAllData(IN PVOID DataBlockObject,
94 IN OUT ULONG *InOutBufferSize,
95 OUT PVOID OutBuffer)
96 {
97 UNIMPLEMENTED;
98 return STATUS_NOT_IMPLEMENTED;
99 }
100
101 /*
102 * @unimplemented
103 */
104 NTSTATUS
105 NTAPI
106 IoWMIQueryAllDataMultiple(IN PVOID *DataBlockObjectList,
107 IN ULONG ObjectCount,
108 IN OUT ULONG *InOutBufferSize,
109 OUT PVOID OutBuffer)
110 {
111 UNIMPLEMENTED;
112 return STATUS_NOT_IMPLEMENTED;
113 }
114
115 /*
116 * @unimplemented
117 */
118 NTSTATUS
119 NTAPI
120 IoWMIQuerySingleInstance(IN PVOID DataBlockObject,
121 IN PUNICODE_STRING InstanceName,
122 IN OUT ULONG *InOutBufferSize,
123 OUT PVOID OutBuffer)
124 {
125 UNIMPLEMENTED;
126 return STATUS_NOT_IMPLEMENTED;
127 }
128
129 /*
130 * @unimplemented
131 */
132 NTSTATUS
133 NTAPI
134 IoWMIQuerySingleInstanceMultiple(IN PVOID *DataBlockObjectList,
135 IN PUNICODE_STRING InstanceNames,
136 IN ULONG ObjectCount,
137 IN OUT ULONG *InOutBufferSize,
138 OUT PVOID OutBuffer)
139 {
140 UNIMPLEMENTED;
141 return STATUS_NOT_IMPLEMENTED;
142 }
143
144 /*
145 * @unimplemented
146 */
147 NTSTATUS
148 NTAPI
149 IoWMISetSingleInstance(IN PVOID DataBlockObject,
150 IN PUNICODE_STRING InstanceName,
151 IN ULONG Version,
152 IN ULONG ValueBufferSize,
153 IN PVOID ValueBuffer)
154 {
155 UNIMPLEMENTED;
156 return STATUS_NOT_IMPLEMENTED;
157 }
158
159 /*
160 * @unimplemented
161 */
162 NTSTATUS
163 NTAPI
164 IoWMISetSingleItem(IN PVOID DataBlockObject,
165 IN PUNICODE_STRING InstanceName,
166 IN ULONG DataItemId,
167 IN ULONG Version,
168 IN ULONG ValueBufferSize,
169 IN PVOID ValueBuffer)
170 {
171 UNIMPLEMENTED;
172 return STATUS_NOT_IMPLEMENTED;
173 }
174
175 /*
176 * @unimplemented
177 */
178 NTSTATUS
179 NTAPI
180 IoWMIExecuteMethod(IN PVOID DataBlockObject,
181 IN PUNICODE_STRING InstanceName,
182 IN ULONG MethodId,
183 IN ULONG InBufferSize,
184 IN OUT PULONG OutBufferSize,
185 IN OUT PUCHAR InOutBuffer)
186 {
187 UNIMPLEMENTED;
188 return STATUS_NOT_IMPLEMENTED;
189 }
190
191 /*
192 * @unimplemented
193 */
194 NTSTATUS
195 NTAPI
196 IoWMISetNotificationCallback(IN PVOID Object,
197 IN WMI_NOTIFICATION_CALLBACK Callback,
198 IN PVOID Context)
199 {
200 UNIMPLEMENTED;
201 return STATUS_NOT_IMPLEMENTED;
202 }
203
204 /*
205 * @unimplemented
206 */
207 NTSTATUS
208 NTAPI
209 IoWMIHandleToInstanceName(IN PVOID DataBlockObject,
210 IN HANDLE FileHandle,
211 OUT PUNICODE_STRING InstanceName)
212 {
213 UNIMPLEMENTED;
214 return STATUS_NOT_IMPLEMENTED;
215 }
216
217 /*
218 * @unimplemented
219 */
220 NTSTATUS
221 NTAPI
222 IoWMIDeviceObjectToInstanceName(IN PVOID DataBlockObject,
223 IN PDEVICE_OBJECT DeviceObject,
224 OUT PUNICODE_STRING InstanceName)
225 {
226 UNIMPLEMENTED;
227 return STATUS_NOT_IMPLEMENTED;
228 }
229
230 /*
231 * @unimplemented
232 */
233 NTSTATUS
234 NTAPI
235 WmiQueryTraceInformation(IN TRACE_INFORMATION_CLASS TraceInformationClass,
236 OUT PVOID TraceInformation,
237 IN ULONG TraceInformationLength,
238 OUT PULONG RequiredLength OPTIONAL,
239 IN PVOID Buffer OPTIONAL)
240 {
241 UNIMPLEMENTED;
242 return STATUS_NOT_IMPLEMENTED;
243 }
244
245 /*
246 * @unimplemented
247 */
248 NTSTATUS
249 __cdecl
250 WmiTraceMessage(IN TRACEHANDLE LoggerHandle,
251 IN ULONG MessageFlags,
252 IN LPGUID MessageGuid,
253 IN USHORT MessageNumber,
254 IN ...)
255 {
256 UNIMPLEMENTED;
257 return STATUS_NOT_IMPLEMENTED;
258 }
259
260 /*
261 * @unimplemented
262 */
263 NTSTATUS
264 NTAPI
265 WmiTraceMessageVa(IN TRACEHANDLE LoggerHandle,
266 IN ULONG MessageFlags,
267 IN LPGUID MessageGuid,
268 IN USHORT MessageNumber,
269 IN va_list MessageArgList)
270 {
271 UNIMPLEMENTED;
272 return STATUS_NOT_IMPLEMENTED;
273 }
274
275 /*
276 * @unimplemented
277 */
278 NTSTATUS
279 NTAPI
280 NtTraceEvent(IN ULONG TraceHandle,
281 IN ULONG Flags,
282 IN ULONG TraceHeaderLength,
283 IN struct _EVENT_TRACE_HEADER* TraceHeader)
284 {
285 UNIMPLEMENTED;
286 return STATUS_NOT_IMPLEMENTED;
287 }
288
289 /*Eof*/