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