- NDK 0.98, now with versionned headers. Too many changes to list, see the TinyKRNL...
[reactos.git] / reactos / include / ndk / cmfuncs.h
1 /*++ NDK Version: 0098
2
3 Copyright (c) Alex Ionescu. All rights reserved.
4
5 Header Name:
6
7 cmfuncs.h
8
9 Abstract:
10
11 Function definitions for the Configuration Manager.
12
13 Author:
14
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16
17 --*/
18
19 #ifndef _CMFUNCS_H
20 #define _CMFUNCS_H
21
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26
27 //
28 // Native calls
29 //
30 NTSYSCALLAPI
31 NTSTATUS
32 NTAPI
33 NtCreateKey(
34 OUT PHANDLE KeyHandle,
35 IN ACCESS_MASK DesiredAccess,
36 IN POBJECT_ATTRIBUTES ObjectAttributes,
37 IN ULONG TitleIndex,
38 IN PUNICODE_STRING Class OPTIONAL,
39 IN ULONG CreateOptions,
40 IN PULONG Disposition OPTIONAL
41 );
42
43 NTSYSCALLAPI
44 NTSTATUS
45 NTAPI
46 NtDeleteKey(
47 IN HANDLE KeyHandle
48 );
49
50 NTSYSCALLAPI
51 NTSTATUS
52 NTAPI
53 NtDeleteValueKey(
54 IN HANDLE KeyHandle,
55 IN PUNICODE_STRING ValueName
56 );
57
58 NTSYSCALLAPI
59 NTSTATUS
60 NTAPI
61 NtEnumerateKey(
62 IN HANDLE KeyHandle,
63 IN ULONG Index,
64 IN KEY_INFORMATION_CLASS KeyInformationClass,
65 OUT PVOID KeyInformation,
66 IN ULONG Length,
67 OUT PULONG ResultLength
68 );
69
70 NTSYSCALLAPI
71 NTSTATUS
72 NTAPI
73 NtEnumerateValueKey(
74 IN HANDLE KeyHandle,
75 IN ULONG Index,
76 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
77 OUT PVOID KeyValueInformation,
78 IN ULONG Length,
79 OUT PULONG ResultLength
80 );
81
82 NTSYSCALLAPI
83 NTSTATUS
84 NTAPI
85 NtFlushKey(
86 IN HANDLE KeyHandle
87 );
88
89 NTSYSCALLAPI
90 NTSTATUS
91 NTAPI
92 NtGetPlugPlayEvent(
93 IN ULONG Reserved1,
94 IN ULONG Reserved2,
95 OUT PPLUGPLAY_EVENT_BLOCK Buffer,
96 IN ULONG BufferSize
97 );
98
99 NTSYSCALLAPI
100 NTSTATUS
101 NTAPI
102 NtInitializeRegistry(
103 BOOLEAN SetUpBoot
104 );
105
106 NTSYSCALLAPI
107 NTSTATUS
108 NTAPI
109 NtLoadKey(
110 IN POBJECT_ATTRIBUTES KeyObjectAttributes,
111 IN POBJECT_ATTRIBUTES FileObjectAttributes
112 );
113
114 NTSYSCALLAPI
115 NTSTATUS
116 NTAPI
117 NtLoadKey2(
118 IN POBJECT_ATTRIBUTES KeyObjectAttributes,
119 IN POBJECT_ATTRIBUTES FileObjectAttributes,
120 IN ULONG Flags
121 );
122
123 NTSYSCALLAPI
124 NTSTATUS
125 NTAPI
126 NtNotifyChangeKey(
127 IN HANDLE KeyHandle,
128 IN HANDLE Event,
129 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
130 IN PVOID ApcContext OPTIONAL,
131 OUT PIO_STATUS_BLOCK IoStatusBlock,
132 IN ULONG CompletionFilter,
133 IN BOOLEAN Asynchroneous,
134 OUT PVOID ChangeBuffer,
135 IN ULONG Length,
136 IN BOOLEAN WatchSubtree
137 );
138
139 NTSYSCALLAPI
140 NTSTATUS
141 NTAPI
142 NtOpenKey(
143 OUT PHANDLE KeyHandle,
144 IN ACCESS_MASK DesiredAccess,
145 IN POBJECT_ATTRIBUTES ObjectAttributes
146 );
147
148 NTSYSCALLAPI
149 NTSTATUS
150 NTAPI
151 NtPlugPlayControl(
152 IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
153 IN OUT PVOID Buffer,
154 IN ULONG BufferSize
155 );
156
157 NTSYSCALLAPI
158 NTSTATUS
159 NTAPI
160 NtQueryKey(
161 IN HANDLE KeyHandle,
162 IN KEY_INFORMATION_CLASS KeyInformationClass,
163 OUT PVOID KeyInformation,
164 IN ULONG Length,
165 OUT PULONG ResultLength
166 );
167
168 NTSYSCALLAPI
169 NTSTATUS
170 NTAPI
171 NtQueryMultipleValueKey(
172 IN HANDLE KeyHandle,
173 IN OUT PKEY_VALUE_ENTRY ValueList,
174 IN ULONG NumberOfValues,
175 OUT PVOID Buffer,
176 IN OUT PULONG Length,
177 OUT PULONG ReturnLength
178 );
179
180 NTSYSCALLAPI
181 NTSTATUS
182 NTAPI
183 NtQueryValueKey(
184 IN HANDLE KeyHandle,
185 IN PUNICODE_STRING ValueName,
186 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
187 OUT PVOID KeyValueInformation,
188 IN ULONG Length,
189 OUT PULONG ResultLength
190 );
191
192 NTSYSCALLAPI
193 NTSTATUS
194 NTAPI
195 NtReplaceKey(
196 IN POBJECT_ATTRIBUTES ObjectAttributes,
197 IN HANDLE Key,
198 IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
199 );
200
201 NTSYSCALLAPI
202 NTSTATUS
203 NTAPI
204 NtRestoreKey(
205 IN HANDLE KeyHandle,
206 IN HANDLE FileHandle,
207 IN ULONG RestoreFlags
208 );
209
210 NTSYSCALLAPI
211 NTSTATUS
212 NTAPI
213 NtSaveKey(
214 IN HANDLE KeyHandle,
215 IN HANDLE FileHandle
216 );
217
218 NTSYSCALLAPI
219 NTSTATUS
220 NTAPI
221 NtSaveKeyEx(
222 IN HANDLE KeyHandle,
223 IN HANDLE FileHandle,
224 IN ULONG Flags
225 );
226
227 NTSYSCALLAPI
228 NTSTATUS
229 NTAPI
230 NtSetInformationKey(
231 IN HANDLE KeyHandle,
232 IN KEY_SET_INFORMATION_CLASS KeyInformationClass,
233 IN PVOID KeyInformation,
234 IN ULONG KeyInformationLength
235 );
236
237 NTSYSCALLAPI
238 NTSTATUS
239 NTAPI
240 NtSetValueKey(
241 IN HANDLE KeyHandle,
242 IN PUNICODE_STRING ValueName,
243 IN ULONG TitleIndex OPTIONAL,
244 IN ULONG Type,
245 IN PVOID Data,
246 IN ULONG DataSize
247 );
248
249 NTSYSCALLAPI
250 NTSTATUS
251 NTAPI
252 NtUnloadKey(
253 IN POBJECT_ATTRIBUTES KeyObjectAttributes
254 );
255
256 #ifdef NTOS_MODE_USER
257 NTSYSAPI
258 NTSTATUS
259 NTAPI
260 ZwCreateKey(
261 OUT PHANDLE KeyHandle,
262 IN ACCESS_MASK DesiredAccess,
263 IN POBJECT_ATTRIBUTES ObjectAttributes,
264 IN ULONG TitleIndex,
265 IN PUNICODE_STRING Class OPTIONAL,
266 IN ULONG CreateOptions,
267 IN PULONG Disposition OPTIONAL
268 );
269
270 NTSYSAPI
271 NTSTATUS
272 NTAPI
273 ZwDeleteKey(
274 IN HANDLE KeyHandle
275 );
276
277 NTSYSAPI
278 NTSTATUS
279 NTAPI
280 ZwDeleteValueKey(
281 IN HANDLE KeyHandle,
282 IN PUNICODE_STRING ValueName
283 );
284
285 NTSYSAPI
286 NTSTATUS
287 NTAPI
288 ZwEnumerateKey(
289 IN HANDLE KeyHandle,
290 IN ULONG Index,
291 IN KEY_INFORMATION_CLASS KeyInformationClass,
292 OUT PVOID KeyInformation,
293 IN ULONG Length,
294 OUT PULONG ResultLength
295 );
296
297 NTSYSAPI
298 NTSTATUS
299 NTAPI
300 ZwEnumerateValueKey(
301 IN HANDLE KeyHandle,
302 IN ULONG Index,
303 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
304 OUT PVOID KeyValueInformation,
305 IN ULONG Length,
306 OUT PULONG ResultLength
307 );
308
309 NTSYSAPI
310 NTSTATUS
311 NTAPI
312 ZwFlushKey(
313 IN HANDLE KeyHandle
314 );
315
316 NTSYSAPI
317 NTSTATUS
318 NTAPI
319 ZwGetPlugPlayEvent(
320 IN ULONG Reserved1,
321 IN ULONG Reserved2,
322 OUT PPLUGPLAY_EVENT_BLOCK Buffer,
323 IN ULONG BufferSize
324 );
325
326 NTSYSAPI
327 NTSTATUS
328 NTAPI
329 ZwInitializeRegistry(
330 BOOLEAN SetUpBoot
331 );
332
333 NTSYSAPI
334 NTSTATUS
335 NTAPI
336 ZwLoadKey(
337 IN POBJECT_ATTRIBUTES KeyObjectAttributes,
338 IN POBJECT_ATTRIBUTES FileObjectAttributes
339 );
340
341 NTSYSAPI
342 NTSTATUS
343 NTAPI
344 ZwLoadKey2(
345 IN POBJECT_ATTRIBUTES KeyObjectAttributes,
346 IN POBJECT_ATTRIBUTES FileObjectAttributes,
347 IN ULONG Flags
348 );
349
350 NTSYSAPI
351 NTSTATUS
352 NTAPI
353 ZwNotifyChangeKey(
354 IN HANDLE KeyHandle,
355 IN HANDLE Event,
356 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
357 IN PVOID ApcContext OPTIONAL,
358 OUT PIO_STATUS_BLOCK IoStatusBlock,
359 IN ULONG CompletionFilter,
360 IN BOOLEAN Asynchroneous,
361 OUT PVOID ChangeBuffer,
362 IN ULONG Length,
363 IN BOOLEAN WatchSubtree
364 );
365
366 NTSYSAPI
367 NTSTATUS
368 NTAPI
369 ZwOpenKey(
370 OUT PHANDLE KeyHandle,
371 IN ACCESS_MASK DesiredAccess,
372 IN POBJECT_ATTRIBUTES ObjectAttributes
373 );
374
375 NTSYSAPI
376 NTSTATUS
377 NTAPI
378 ZwPlugPlayControl(
379 IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
380 IN OUT PVOID Buffer,
381 IN ULONG BufferSize
382 );
383
384 NTSYSAPI
385 NTSTATUS
386 NTAPI
387 ZwQueryKey(
388 IN HANDLE KeyHandle,
389 IN KEY_INFORMATION_CLASS KeyInformationClass,
390 OUT PVOID KeyInformation,
391 IN ULONG Length,
392 OUT PULONG ResultLength
393 );
394
395 NTSYSAPI
396 NTSTATUS
397 NTAPI
398 ZwQueryMultipleValueKey(
399 IN HANDLE KeyHandle,
400 IN OUT PKEY_VALUE_ENTRY ValueList,
401 IN ULONG NumberOfValues,
402 OUT PVOID Buffer,
403 IN OUT PULONG Length,
404 OUT PULONG ReturnLength
405 );
406
407 NTSYSAPI
408 NTSTATUS
409 NTAPI
410 ZwQueryValueKey(
411 IN HANDLE KeyHandle,
412 IN PUNICODE_STRING ValueName,
413 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
414 OUT PVOID KeyValueInformation,
415 IN ULONG Length,
416 OUT PULONG ResultLength
417 );
418
419 NTSYSAPI
420 NTSTATUS
421 NTAPI
422 ZwReplaceKey(
423 IN POBJECT_ATTRIBUTES ObjectAttributes,
424 IN HANDLE Key,
425 IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
426 );
427
428 NTSYSAPI
429 NTSTATUS
430 NTAPI
431 ZwRestoreKey(
432 IN HANDLE KeyHandle,
433 IN HANDLE FileHandle,
434 IN ULONG RestoreFlags
435 );
436
437 NTSYSAPI
438 NTSTATUS
439 NTAPI
440 ZwSaveKey(
441 IN HANDLE KeyHandle,
442 IN HANDLE FileHandle
443 );
444
445 NTSYSAPI
446 NTSTATUS
447 NTAPI
448 ZwSaveKeyEx(
449 IN HANDLE KeyHandle,
450 IN HANDLE FileHandle,
451 IN ULONG Flags
452 );
453
454 NTSYSAPI
455 NTSTATUS
456 NTAPI
457 ZwSetInformationKey(
458 IN HANDLE KeyHandle,
459 IN KEY_SET_INFORMATION_CLASS KeyInformationClass,
460 IN PVOID KeyInformation,
461 IN ULONG KeyInformationLength
462 );
463
464 NTSYSAPI
465 NTSTATUS
466 NTAPI
467 ZwSetValueKey(
468 IN HANDLE KeyHandle,
469 IN PUNICODE_STRING ValueName,
470 IN ULONG TitleIndex OPTIONAL,
471 IN ULONG Type,
472 IN PVOID Data,
473 IN ULONG DataSize
474 );
475 #endif
476
477 NTSYSAPI
478 NTSTATUS
479 NTAPI
480 ZwUnloadKey(
481 IN POBJECT_ATTRIBUTES KeyObjectAttributes
482 );
483
484 #endif