- Add NtApphelpCacheControl, NtFilterToken (WARNING: PATENTED. TAKE CARE WHEN IMPLEME...
[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 NTSTATUS
31 NTAPI
32 NtCompactKeys(
33 IN ULONG Count,
34 IN PHANDLE KeyArray
35 );
36
37 NTSTATUS
38 NTAPI
39 NtCompressKey(
40 IN HANDLE Key,
41 IN ULONG Mode
42 );
43
44 NTSYSCALLAPI
45 NTSTATUS
46 NTAPI
47 NtCreateKey(
48 OUT PHANDLE KeyHandle,
49 IN ACCESS_MASK DesiredAccess,
50 IN POBJECT_ATTRIBUTES ObjectAttributes,
51 IN ULONG TitleIndex,
52 IN PUNICODE_STRING Class OPTIONAL,
53 IN ULONG CreateOptions,
54 IN PULONG Disposition OPTIONAL
55 );
56
57 NTSYSCALLAPI
58 NTSTATUS
59 NTAPI
60 NtDeleteKey(
61 IN HANDLE KeyHandle
62 );
63
64 NTSYSCALLAPI
65 NTSTATUS
66 NTAPI
67 NtDeleteValueKey(
68 IN HANDLE KeyHandle,
69 IN PUNICODE_STRING ValueName
70 );
71
72 NTSYSCALLAPI
73 NTSTATUS
74 NTAPI
75 NtEnumerateKey(
76 IN HANDLE KeyHandle,
77 IN ULONG Index,
78 IN KEY_INFORMATION_CLASS KeyInformationClass,
79 OUT PVOID KeyInformation,
80 IN ULONG Length,
81 OUT PULONG ResultLength
82 );
83
84 NTSYSCALLAPI
85 NTSTATUS
86 NTAPI
87 NtEnumerateValueKey(
88 IN HANDLE KeyHandle,
89 IN ULONG Index,
90 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
91 OUT PVOID KeyValueInformation,
92 IN ULONG Length,
93 OUT PULONG ResultLength
94 );
95
96 NTSYSCALLAPI
97 NTSTATUS
98 NTAPI
99 NtFlushKey(
100 IN HANDLE KeyHandle
101 );
102
103 NTSYSCALLAPI
104 NTSTATUS
105 NTAPI
106 NtGetPlugPlayEvent(
107 IN ULONG Reserved1,
108 IN ULONG Reserved2,
109 OUT PPLUGPLAY_EVENT_BLOCK Buffer,
110 IN ULONG BufferSize
111 );
112
113 NTSYSCALLAPI
114 NTSTATUS
115 NTAPI
116 NtInitializeRegistry(
117 BOOLEAN SetUpBoot
118 );
119
120 NTSYSCALLAPI
121 NTSTATUS
122 NTAPI
123 NtLoadKey(
124 IN POBJECT_ATTRIBUTES KeyObjectAttributes,
125 IN POBJECT_ATTRIBUTES FileObjectAttributes
126 );
127
128 NTSYSCALLAPI
129 NTSTATUS
130 NTAPI
131 NtLoadKey2(
132 IN POBJECT_ATTRIBUTES KeyObjectAttributes,
133 IN POBJECT_ATTRIBUTES FileObjectAttributes,
134 IN ULONG Flags
135 );
136
137 NTSTATUS
138 NTAPI
139 NtLoadKeyEx(
140 IN POBJECT_ATTRIBUTES TargetKey,
141 IN POBJECT_ATTRIBUTES SourceFile,
142 IN ULONG Flags,
143 IN HANDLE TrustClassKey,
144 IN HANDLE Event,
145 IN ACCESS_MASK DesiredAccess,
146 OUT PHANDLE RootHandle
147 );
148
149 NTSTATUS
150 NTAPI
151 NtLockProductActivationKeys(
152 IN PULONG pPrivateVer,
153 IN PULONG pSafeMode
154 );
155
156 NTSTATUS
157 NTAPI
158 NtLockRegistryKey(
159 IN HANDLE KeyHandle
160 );
161
162 NTSYSCALLAPI
163 NTSTATUS
164 NTAPI
165 NtNotifyChangeKey(
166 IN HANDLE KeyHandle,
167 IN HANDLE Event,
168 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
169 IN PVOID ApcContext OPTIONAL,
170 OUT PIO_STATUS_BLOCK IoStatusBlock,
171 IN ULONG CompletionFilter,
172 IN BOOLEAN Asynchroneous,
173 OUT PVOID ChangeBuffer,
174 IN ULONG Length,
175 IN BOOLEAN WatchSubtree
176 );
177
178 NTSTATUS
179 NTAPI
180 NtNotifyChangeMultipleKeys(
181 IN HANDLE MasterKeyHandle,
182 IN ULONG Count,
183 IN POBJECT_ATTRIBUTES SlaveObjects,
184 IN HANDLE Event,
185 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
186 IN PVOID ApcContext OPTIONAL,
187 OUT PIO_STATUS_BLOCK IoStatusBlock,
188 IN ULONG CompletionFilter,
189 IN BOOLEAN WatchTree,
190 OUT PVOID Buffer,
191 IN ULONG Length,
192 IN BOOLEAN Asynchronous
193 );
194
195 NTSYSCALLAPI
196 NTSTATUS
197 NTAPI
198 NtOpenKey(
199 OUT PHANDLE KeyHandle,
200 IN ACCESS_MASK DesiredAccess,
201 IN POBJECT_ATTRIBUTES ObjectAttributes
202 );
203
204 NTSYSCALLAPI
205 NTSTATUS
206 NTAPI
207 NtPlugPlayControl(
208 IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
209 IN OUT PVOID Buffer,
210 IN ULONG BufferSize
211 );
212
213 NTSYSCALLAPI
214 NTSTATUS
215 NTAPI
216 NtQueryKey(
217 IN HANDLE KeyHandle,
218 IN KEY_INFORMATION_CLASS KeyInformationClass,
219 OUT PVOID KeyInformation,
220 IN ULONG Length,
221 OUT PULONG ResultLength
222 );
223
224 NTSYSCALLAPI
225 NTSTATUS
226 NTAPI
227 NtQueryMultipleValueKey(
228 IN HANDLE KeyHandle,
229 IN OUT PKEY_VALUE_ENTRY ValueList,
230 IN ULONG NumberOfValues,
231 OUT PVOID Buffer,
232 IN OUT PULONG Length,
233 OUT PULONG ReturnLength
234 );
235
236 NTSTATUS
237 NTAPI
238 NtQueryOpenSubKeys(
239 IN POBJECT_ATTRIBUTES TargetKey,
240 IN ULONG HandleCount
241 );
242
243 NTSTATUS
244 NTAPI
245 NtQueryOpenSubKeysEx(
246 IN POBJECT_ATTRIBUTES TargetKey,
247 IN ULONG BufferLength,
248 IN PVOID Buffer,
249 IN PULONG RequiredSize
250 );
251
252 NTSYSCALLAPI
253 NTSTATUS
254 NTAPI
255 NtQueryValueKey(
256 IN HANDLE KeyHandle,
257 IN PUNICODE_STRING ValueName,
258 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
259 OUT PVOID KeyValueInformation,
260 IN ULONG Length,
261 OUT PULONG ResultLength
262 );
263
264 NTSYSCALLAPI
265 NTSTATUS
266 NTAPI
267 NtReplaceKey(
268 IN POBJECT_ATTRIBUTES ObjectAttributes,
269 IN HANDLE Key,
270 IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
271 );
272
273 NTSYSCALLAPI
274 NTSTATUS
275 NTAPI
276 NtRestoreKey(
277 IN HANDLE KeyHandle,
278 IN HANDLE FileHandle,
279 IN ULONG RestoreFlags
280 );
281
282 NTSYSCALLAPI
283 NTSTATUS
284 NTAPI
285 NtSaveKey(
286 IN HANDLE KeyHandle,
287 IN HANDLE FileHandle
288 );
289
290 NTSYSCALLAPI
291 NTSTATUS
292 NTAPI
293 NtSaveKeyEx(
294 IN HANDLE KeyHandle,
295 IN HANDLE FileHandle,
296 IN ULONG Flags
297 );
298
299
300 NTSTATUS
301 NTAPI
302 NtSaveMergedKeys(
303 IN HANDLE HighPrecedenceKeyHandle,
304 IN HANDLE LowPrecedenceKeyHandle,
305 IN HANDLE FileHandle
306 );
307
308 NTSYSCALLAPI
309 NTSTATUS
310 NTAPI
311 NtSetInformationKey(
312 IN HANDLE KeyHandle,
313 IN KEY_SET_INFORMATION_CLASS KeyInformationClass,
314 IN PVOID KeyInformation,
315 IN ULONG KeyInformationLength
316 );
317
318 NTSYSCALLAPI
319 NTSTATUS
320 NTAPI
321 NtSetValueKey(
322 IN HANDLE KeyHandle,
323 IN PUNICODE_STRING ValueName,
324 IN ULONG TitleIndex OPTIONAL,
325 IN ULONG Type,
326 IN PVOID Data,
327 IN ULONG DataSize
328 );
329
330 NTSYSCALLAPI
331 NTSTATUS
332 NTAPI
333 NtUnloadKey(
334 IN POBJECT_ATTRIBUTES KeyObjectAttributes
335 );
336
337 NTSTATUS
338 NTAPI
339 NtUnloadKey2(
340 IN POBJECT_ATTRIBUTES TargetKey,
341 IN ULONG Flags
342 );
343
344 NTSTATUS
345 NTAPI
346 NtUnloadKeyEx(
347 IN POBJECT_ATTRIBUTES TargetKey,
348 IN HANDLE Event
349 );
350
351 #ifdef NTOS_MODE_USER
352 NTSYSAPI
353 NTSTATUS
354 NTAPI
355 ZwCreateKey(
356 OUT PHANDLE KeyHandle,
357 IN ACCESS_MASK DesiredAccess,
358 IN POBJECT_ATTRIBUTES ObjectAttributes,
359 IN ULONG TitleIndex,
360 IN PUNICODE_STRING Class OPTIONAL,
361 IN ULONG CreateOptions,
362 IN PULONG Disposition OPTIONAL
363 );
364
365 NTSYSAPI
366 NTSTATUS
367 NTAPI
368 ZwDeleteKey(
369 IN HANDLE KeyHandle
370 );
371
372 NTSYSAPI
373 NTSTATUS
374 NTAPI
375 ZwDeleteValueKey(
376 IN HANDLE KeyHandle,
377 IN PUNICODE_STRING ValueName
378 );
379
380 NTSYSAPI
381 NTSTATUS
382 NTAPI
383 ZwEnumerateKey(
384 IN HANDLE KeyHandle,
385 IN ULONG Index,
386 IN KEY_INFORMATION_CLASS KeyInformationClass,
387 OUT PVOID KeyInformation,
388 IN ULONG Length,
389 OUT PULONG ResultLength
390 );
391
392 NTSYSAPI
393 NTSTATUS
394 NTAPI
395 ZwEnumerateValueKey(
396 IN HANDLE KeyHandle,
397 IN ULONG Index,
398 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
399 OUT PVOID KeyValueInformation,
400 IN ULONG Length,
401 OUT PULONG ResultLength
402 );
403
404 NTSYSAPI
405 NTSTATUS
406 NTAPI
407 ZwFlushKey(
408 IN HANDLE KeyHandle
409 );
410
411 NTSYSAPI
412 NTSTATUS
413 NTAPI
414 ZwGetPlugPlayEvent(
415 IN ULONG Reserved1,
416 IN ULONG Reserved2,
417 OUT PPLUGPLAY_EVENT_BLOCK Buffer,
418 IN ULONG BufferSize
419 );
420
421 NTSYSAPI
422 NTSTATUS
423 NTAPI
424 ZwInitializeRegistry(
425 BOOLEAN SetUpBoot
426 );
427
428 NTSYSAPI
429 NTSTATUS
430 NTAPI
431 ZwLoadKey(
432 IN POBJECT_ATTRIBUTES KeyObjectAttributes,
433 IN POBJECT_ATTRIBUTES FileObjectAttributes
434 );
435
436 NTSYSAPI
437 NTSTATUS
438 NTAPI
439 ZwLoadKey2(
440 IN POBJECT_ATTRIBUTES KeyObjectAttributes,
441 IN POBJECT_ATTRIBUTES FileObjectAttributes,
442 IN ULONG Flags
443 );
444
445 NTSYSAPI
446 NTSTATUS
447 NTAPI
448 ZwNotifyChangeKey(
449 IN HANDLE KeyHandle,
450 IN HANDLE Event,
451 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
452 IN PVOID ApcContext OPTIONAL,
453 OUT PIO_STATUS_BLOCK IoStatusBlock,
454 IN ULONG CompletionFilter,
455 IN BOOLEAN Asynchroneous,
456 OUT PVOID ChangeBuffer,
457 IN ULONG Length,
458 IN BOOLEAN WatchSubtree
459 );
460
461 NTSYSAPI
462 NTSTATUS
463 NTAPI
464 ZwOpenKey(
465 OUT PHANDLE KeyHandle,
466 IN ACCESS_MASK DesiredAccess,
467 IN POBJECT_ATTRIBUTES ObjectAttributes
468 );
469
470 NTSYSAPI
471 NTSTATUS
472 NTAPI
473 ZwPlugPlayControl(
474 IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
475 IN OUT PVOID Buffer,
476 IN ULONG BufferSize
477 );
478
479 NTSYSAPI
480 NTSTATUS
481 NTAPI
482 ZwQueryKey(
483 IN HANDLE KeyHandle,
484 IN KEY_INFORMATION_CLASS KeyInformationClass,
485 OUT PVOID KeyInformation,
486 IN ULONG Length,
487 OUT PULONG ResultLength
488 );
489
490 NTSYSAPI
491 NTSTATUS
492 NTAPI
493 ZwQueryMultipleValueKey(
494 IN HANDLE KeyHandle,
495 IN OUT PKEY_VALUE_ENTRY ValueList,
496 IN ULONG NumberOfValues,
497 OUT PVOID Buffer,
498 IN OUT PULONG Length,
499 OUT PULONG ReturnLength
500 );
501
502 NTSYSAPI
503 NTSTATUS
504 NTAPI
505 ZwQueryValueKey(
506 IN HANDLE KeyHandle,
507 IN PUNICODE_STRING ValueName,
508 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
509 OUT PVOID KeyValueInformation,
510 IN ULONG Length,
511 OUT PULONG ResultLength
512 );
513
514 NTSYSAPI
515 NTSTATUS
516 NTAPI
517 ZwReplaceKey(
518 IN POBJECT_ATTRIBUTES ObjectAttributes,
519 IN HANDLE Key,
520 IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
521 );
522
523 NTSYSAPI
524 NTSTATUS
525 NTAPI
526 ZwRestoreKey(
527 IN HANDLE KeyHandle,
528 IN HANDLE FileHandle,
529 IN ULONG RestoreFlags
530 );
531
532 NTSYSAPI
533 NTSTATUS
534 NTAPI
535 ZwSaveKey(
536 IN HANDLE KeyHandle,
537 IN HANDLE FileHandle
538 );
539
540 NTSYSAPI
541 NTSTATUS
542 NTAPI
543 ZwSaveKeyEx(
544 IN HANDLE KeyHandle,
545 IN HANDLE FileHandle,
546 IN ULONG Flags
547 );
548
549 NTSYSAPI
550 NTSTATUS
551 NTAPI
552 ZwSetInformationKey(
553 IN HANDLE KeyHandle,
554 IN KEY_SET_INFORMATION_CLASS KeyInformationClass,
555 IN PVOID KeyInformation,
556 IN ULONG KeyInformationLength
557 );
558
559 NTSYSAPI
560 NTSTATUS
561 NTAPI
562 ZwSetValueKey(
563 IN HANDLE KeyHandle,
564 IN PUNICODE_STRING ValueName,
565 IN ULONG TitleIndex OPTIONAL,
566 IN ULONG Type,
567 IN PVOID Data,
568 IN ULONG DataSize
569 );
570 #endif
571
572 NTSYSAPI
573 NTSTATUS
574 NTAPI
575 ZwUnloadKey(
576 IN POBJECT_ATTRIBUTES KeyObjectAttributes
577 );
578
579 #endif