ReactOS 0.4.15-dev-7942-gd23573b
cmfuncs.h
Go to the documentation of this file.
1/*++ NDK Version: 0098
2
3Copyright (c) Alex Ionescu. All rights reserved.
4
5Header Name:
6
7 cmfuncs.h
8
9Abstract:
10
11 Function definitions for the Configuration Manager.
12
13Author:
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#include <cmtypes.h>
27
28//
29// Native calls
30//
35 _In_reads_(Count) PHANDLE KeyArray
36);
37
42);
43
56);
57
63);
64
71);
72
80 _Out_bytecap_(Length) PVOID KeyInformation,
83);
84
95 _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation,
98);
99
102NTAPI
105);
106
109NTAPI
115);
116
119NTAPI
122);
123
126NTAPI
128 _In_ POBJECT_ATTRIBUTES KeyObjectAttributes,
130);
131
134NTAPI
136 _In_ POBJECT_ATTRIBUTES KeyObjectAttributes,
139);
140
142NTAPI
144 _In_ POBJECT_ATTRIBUTES TargetKey,
145 _In_ POBJECT_ATTRIBUTES SourceFile,
147 _In_ HANDLE TrustClassKey
148);
149
151NTAPI
153 _In_ PULONG pPrivateVer,
154 _In_ PULONG pSafeMode
155);
156
158NTAPI
161);
162
165NTAPI
173 _In_ BOOLEAN Asynchroneous,
174 _Out_bytecap_(Length) PVOID ChangeBuffer,
177);
178
182NTAPI
184 _In_ HANDLE MasterKeyHandle,
186 _In_reads_opt_(Count) OBJECT_ATTRIBUTES SubordinateObjects[],
196);
197
200NTAPI
205);
206
209NTAPI
211 _In_ PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
214);
215
218NTAPI
222 _Out_bytecap_(Length) PVOID KeyInformation,
225);
226
230NTAPI
233 _Inout_updates_(EntryCount) PKEY_VALUE_ENTRY ValueEntries,
234 _In_ ULONG EntryCount,
237 _Out_opt_ PULONG RequiredBufferLength
238);
239
241NTAPI
243 _In_ POBJECT_ATTRIBUTES TargetKey,
244 _Out_ PULONG HandleCount
245);
246
248NTAPI
250 _In_ POBJECT_ATTRIBUTES TargetKey,
254);
255
261NTAPI
266 _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation,
269);
270
273NTAPI
277);
278
281NTAPI
285 _In_ POBJECT_ATTRIBUTES ReplacedObjectAttributes
286);
287
290NTAPI
294 _In_ ULONG RestoreFlags
295);
296
299NTAPI
303);
304
307NTAPI
312);
313
314
316NTAPI
318 _In_ HANDLE HighPrecedenceKeyHandle,
319 _In_ HANDLE LowPrecedenceKeyHandle,
321);
322
326NTAPI
330 KEY_SET_INFORMATION_CLASS KeySetInformationClass,
333);
334
337NTAPI
345);
346
349NTAPI
351 _In_ POBJECT_ATTRIBUTES KeyObjectAttributes
352);
353
355NTAPI
357 _In_ POBJECT_ATTRIBUTES TargetKey,
359);
360
362NTAPI
364 _In_ POBJECT_ATTRIBUTES TargetKey,
366);
367
368#ifdef NTOS_MODE_USER
372NTAPI
373ZwCreateKey(
381);
382
385NTAPI
386ZwDeleteKey(
388);
389
392NTAPI
396);
397
400NTAPI
401ZwEnumerateKey(
405 _Out_bytecap_(Length) PVOID KeyInformation,
408);
409
411_When_(Length == 0, _Post_satisfies_(return < 0))
415NTAPI
416ZwEnumerateValueKey(
420 _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation,
423);
424
427NTAPI
428ZwFlushKey(
430);
431
434NTAPI
435ZwGetPlugPlayEvent(
440);
441
444NTAPI
446 _In_ POBJECT_ATTRIBUTES KeyObjectAttributes,
448);
449
452NTAPI
453ZwLoadKey2(
454 _In_ POBJECT_ATTRIBUTES KeyObjectAttributes,
457);
458
461NTAPI
462ZwNotifyChangeKey(
469 _In_ BOOLEAN Asynchroneous,
470 _Out_bytecap_(Length) PVOID ChangeBuffer,
473);
474
477NTAPI
478ZwOpenKey(
482);
483
486NTAPI
487ZwPlugPlayControl(
488 _In_ PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
491);
492
495NTAPI
496ZwQueryKey(
499 _Out_bytecap_(Length) PVOID KeyInformation,
502);
503
506NTAPI
509 _Inout_ PKEY_VALUE_ENTRY ValueList,
510 _In_ ULONG NumberOfValues,
514);
515
521NTAPI
522ZwQueryValueKey(
526 _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation,
529);
530
533NTAPI
537 _In_ POBJECT_ATTRIBUTES ReplacedObjectAttributes
538);
539
542NTAPI
543ZwRestoreKey(
546 _In_ ULONG RestoreFlags
547);
548
551NTAPI
555);
556
559NTAPI
560ZwSaveKeyEx(
564);
565
568NTAPI
569ZwSetInformationKey(
572 _In_bytecount_(KeyInformationLength) PVOID KeyInformation,
573 _In_ ULONG KeyInformationLength
574);
575
578NTAPI
579ZwSetValueKey(
586);
587#endif
588
591NTAPI
594);
595
598NTAPI
600 _In_ POBJECT_ATTRIBUTES KeyObjectAttributes
601);
602
603#endif
unsigned char BOOLEAN
Type
Definition: Type.h:7
LONG NTSTATUS
Definition: precomp.h:26
@ Reserved2
Definition: bcd.h:202
@ Reserved1
Definition: bcd.h:201
#define NTSYSAPI
Definition: ntoskrnl.h:12
return
Definition: dirsup.c:529
Definition: bufpool.h:45
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
Definition: dumpinfo.c:43
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
Definition: fltkernel.h:1231
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG CompletionFilter
Definition: fltkernel.h:2243
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN WatchTree
Definition: fltkernel.h:2241
NTSYSAPI NTSTATUS NTAPI ZwDeleteValueKey(__in IN HANDLE Key, __in IN PUNICODE_STRING ValueName)
static OUT PIO_STATUS_BLOCK IoStatusBlock
Definition: pipe.c:75
#define _Out_opt_
Definition: ms_sal.h:346
#define _In_reads_bytes_(size)
Definition: ms_sal.h:321
#define _Inout_
Definition: ms_sal.h:378
#define _Out_writes_bytes_(size)
Definition: ms_sal.h:350
#define _Inout_updates_(size)
Definition: ms_sal.h:387
#define _Inout_bytecap_(size)
Definition: ms_sal.h:967
#define _Out_
Definition: ms_sal.h:345
#define _In_reads_opt_(size)
Definition: ms_sal.h:320
#define _When_(expr, annos)
Definition: ms_sal.h:254
#define _Strict_type_match_
Definition: ms_sal.h:2954
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
#define _Out_bytecap_(size)
Definition: ms_sal.h:854
#define _Reserved_
Definition: ms_sal.h:295
#define _Out_writes_bytes_opt_(size)
Definition: ms_sal.h:351
#define _In_reads_(size)
Definition: ms_sal.h:319
#define _In_bytecount_(size)
Definition: ms_sal.h:812
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
Definition: ndis.h:4755
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4715
NTSYSCALLAPI NTSTATUS NTAPI NtInitializeRegistry(_In_ USHORT Flag)
NTSYSCALLAPI NTSTATUS NTAPI NtRenameKey(_In_ HANDLE KeyHandle, _In_ PUNICODE_STRING NewName)
NTSYSCALLAPI NTSTATUS NTAPI NtRestoreKey(_In_ HANDLE KeyHandle, _In_ HANDLE FileHandle, _In_ ULONG RestoreFlags)
NTSYSCALLAPI NTSTATUS NTAPI NtSetValueKey(_In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName, _In_opt_ ULONG TitleIndex, _In_ ULONG Type, _In_ PVOID Data, _In_ ULONG DataSize)
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtNotifyChangeMultipleKeys(_In_ HANDLE MasterKeyHandle, _In_opt_ ULONG Count, _In_reads_opt_(Count) OBJECT_ATTRIBUTES SubordinateObjects[], _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG CompletionFilter, _In_ BOOLEAN WatchTree, _Out_writes_bytes_opt_(BufferSize) PVOID Buffer, _In_ ULONG BufferSize, _In_ BOOLEAN Asynchronous)
NTSYSCALLAPI NTSTATUS NTAPI NtNotifyChangeKey(_In_ HANDLE KeyHandle, _In_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG CompletionFilter, _In_ BOOLEAN Asynchroneous, _Out_bytecap_(Length) PVOID ChangeBuffer, _In_ ULONG Length, _In_ BOOLEAN WatchSubtree)
NTSYSCALLAPI NTSTATUS NTAPI NtDeleteKey(_In_ HANDLE KeyHandle)
NTSYSCALLAPI NTSTATUS NTAPI NtDeleteValueKey(_In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName)
NTSTATUS NTAPI NtUnloadKeyEx(_In_ POBJECT_ATTRIBUTES TargetKey, _In_ HANDLE Event)
NTSYSCALLAPI NTSTATUS NTAPI NtReplaceKey(_In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ HANDLE Key, _In_ POBJECT_ATTRIBUTES ReplacedObjectAttributes)
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtSetInformationKey(_In_ HANDLE KeyHandle, _In_ _Strict_type_match_ KEY_SET_INFORMATION_CLASS KeySetInformationClass, _In_reads_bytes_(KeySetInformationLength) PVOID KeySetInformation, _In_ ULONG KeySetInformationLength)
_In_ ULONG _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass
Definition: cmfuncs.h:94
NTSTATUS NTAPI NtLockRegistryKey(_In_ HANDLE KeyHandle)
NTSYSCALLAPI NTSTATUS NTAPI NtEnumerateKey(_In_ HANDLE KeyHandle, _In_ ULONG Index, _In_ KEY_INFORMATION_CLASS KeyInformationClass, _Out_bytecap_(Length) PVOID KeyInformation, _In_ ULONG Length, _Out_ PULONG ResultLength)
NTSTATUS NTAPI NtLockProductActivationKeys(_In_ PULONG pPrivateVer, _In_ PULONG pSafeMode)
NTSTATUS NTAPI NtCompressKey(_In_ HANDLE Key)
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
Definition: cmfuncs.h:56
NTSYSCALLAPI NTSTATUS NTAPI NtPlugPlayControl(_In_ PLUGPLAY_CONTROL_CLASS PlugPlayControlClass, _Inout_ PVOID Buffer, _In_ ULONG BufferSize)
NTSYSCALLAPI NTSTATUS NTAPI NtQueryKey(_In_ HANDLE KeyHandle, _In_ KEY_INFORMATION_CLASS KeyInformationClass, _Out_bytecap_(Length) PVOID KeyInformation, _In_ ULONG Length, _Out_ PULONG ResultLength)
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG TitleIndex
Definition: cmfuncs.h:52
NTSYSCALLAPI NTSTATUS NTAPI NtLoadKey2(_In_ POBJECT_ATTRIBUTES KeyObjectAttributes, _In_ POBJECT_ATTRIBUTES FileObjectAttributes, _In_ ULONG Flags)
NTSYSAPI NTSTATUS NTAPI ZwInitializeRegistry(_In_ USHORT Flag)
NTSYSCALLAPI NTSTATUS NTAPI NtSaveKey(_In_ HANDLE KeyHandle, _In_ HANDLE FileHandle)
NTSTATUS NTAPI NtQueryOpenSubKeys(_In_ POBJECT_ATTRIBUTES TargetKey, _Out_ PULONG HandleCount)
NTSYSCALLAPI NTSTATUS NTAPI NtSaveKeyEx(_In_ HANDLE KeyHandle, _In_ HANDLE FileHandle, _In_ ULONG Flags)
NTSYSAPI NTSTATUS NTAPI ZwUnloadKey(_In_ POBJECT_ATTRIBUTES KeyObjectAttributes)
NTSYSCALLAPI NTSTATUS NTAPI NtOpenKey(_Out_ PHANDLE KeyHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes)
_Post_satisfies_(return< 0)) _When_(Length > 0
NTSYSCALLAPI NTSTATUS NTAPI NtGetPlugPlayEvent(_In_ ULONG Reserved1, _In_ ULONG Reserved2, _Out_ PPLUGPLAY_EVENT_BLOCK Buffer, _In_ ULONG BufferSize)
NTSTATUS NTAPI NtLoadKeyEx(_In_ POBJECT_ATTRIBUTES TargetKey, _In_ POBJECT_ATTRIBUTES SourceFile, _In_ ULONG Flags, _In_ HANDLE TrustClassKey)
NTSTATUS NTAPI NtSaveMergedKeys(_In_ HANDLE HighPrecedenceKeyHandle, _In_ HANDLE LowPrecedenceKeyHandle, _In_ HANDLE FileHandle)
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryMultipleValueKey(_In_ HANDLE KeyHandle, _Inout_updates_(EntryCount) PKEY_VALUE_ENTRY ValueEntries, _In_ ULONG EntryCount, _Out_writes_bytes_(*BufferLength) PVOID ValueBuffer, _Inout_ PULONG BufferLength, _Out_opt_ PULONG RequiredBufferLength)
NTSYSCALLAPI NTSTATUS NTAPI NtFlushKey(_In_ HANDLE KeyHandle)
NTSTATUS NTAPI NtCompactKeys(_In_ ULONG Count, _In_reads_(Count) PHANDLE KeyArray)
NTSTATUS NTAPI NtUnloadKey2(_In_ POBJECT_ATTRIBUTES TargetKey, _In_ ULONG Flags)
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES ObjectAttributes
Definition: cmfuncs.h:51
NTSTATUS NTAPI NtQueryOpenSubKeysEx(_In_ POBJECT_ATTRIBUTES TargetKey, _In_ ULONG BufferLength, _In_ PVOID Buffer, _In_ PULONG RequiredSize)
NTSYSCALLAPI NTSTATUS NTAPI NtLoadKey(_In_ POBJECT_ATTRIBUTES KeyObjectAttributes, _In_ POBJECT_ATTRIBUTES FileObjectAttributes)
NTSYSCALLAPI NTSTATUS NTAPI NtUnloadKey(_In_ POBJECT_ATTRIBUTES KeyObjectAttributes)
enum _PLUGPLAY_CONTROL_CLASS PLUGPLAY_CONTROL_CLASS
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID ApcContext
Definition: iofuncs.h:727
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE ApcRoutine
Definition: iofuncs.h:726
int Count
Definition: noreturn.cpp:7
enum _KEY_SET_INFORMATION_CLASS KEY_SET_INFORMATION_CLASS
ULONG ACCESS_MASK
Definition: nt_native.h:40
NTSYSAPI NTSTATUS NTAPI NtQueryValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, IN PVOID KeyValueInformation, IN ULONG Length, IN PULONG ResultLength)
enum _KEY_VALUE_INFORMATION_CLASS KEY_VALUE_INFORMATION_CLASS
Definition: reg.c:135
enum _KEY_INFORMATION_CLASS KEY_INFORMATION_CLASS
VOID(* PIO_APC_ROUTINE)(IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved)
Definition: nt_native.h:877
NTSTATUS NTAPI NtCreateKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG TitleIndex, IN PUNICODE_STRING Class OPTIONAL, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL)
Definition: ntapi.c:240
NTSTATUS NTAPI NtEnumerateValueKey(IN HANDLE KeyHandle, IN ULONG Index, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, OUT PVOID KeyValueInformation, IN ULONG Length, OUT PULONG ResultLength)
Definition: ntapi.c:542
#define NTSYSCALLAPI
Definition: ntbasedef.h:204
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
_In_ SYSTEM_POWER_STATE _In_ ULONG _In_ BOOLEAN Asynchronous
Definition: ntpoapi.h:305
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
unsigned short USHORT
Definition: pedump.c:61
#define __kernel_entry
Definition: specstrings.h:355
Definition: xml2sdb.h:80
Definition: nt_native.h:1172
uint32_t * PULONG
Definition: typedefs.h:59
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PWDFDEVICE_INIT _In_ PWDF_FILEOBJECT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES FileObjectAttributes
Definition: wdfdevice.h:3400
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdfdevice.h:3776
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2658
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
Definition: wdfdevice.h:4439
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3771
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:254
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
Definition: wdfregistry.h:118
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:243
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
NTSYSAPI NTSTATUS NTAPI ZwSaveKey(_In_ HANDLE KeyHandle, _In_ HANDLE FileHandle)
NTSYSAPI NTSTATUS NTAPI ZwQueryMultipleValueKey(_In_ HANDLE KeyHandle, _Inout_ PKEY_VALUE_ENTRY ValueEntries, _In_ ULONG EntryCount, _Out_ PVOID ValueBuffer, _Inout_ PULONG BufferLength, _Out_opt_ PULONG RequiredBufferLength)
NTSYSAPI NTSTATUS NTAPI ZwReplaceKey(_In_ POBJECT_ATTRIBUTES NewFileObjectAttributes, _In_ HANDLE KeyHandle, _In_ POBJECT_ATTRIBUTES OldFileObjectAttributes)
_In_ _In_ ULONG KeySetInformationLength
Definition: zwfuncs.h:1213
_In_ ULONG _In_ KEY_INFORMATION_CLASS KeyInformationClass
Definition: zwfuncs.h:167
_In_ PUNICODE_STRING NewName
Definition: zwfuncs.h:1203
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ BOOLEAN WatchSubtree
Definition: zwfuncs.h:505
NTSYSAPI NTSTATUS NTAPI ZwLoadKey(_In_ POBJECT_ATTRIBUTES KeyObjectAttributes, _In_ POBJECT_ATTRIBUTES FileObjectAttributes)