Reactos
1/*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Setup Library
4 * FILE: base/setup/lib/regutil.h
5 * PURPOSE: Registry utility functions
6 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
7 */
8
9#pragma once
10
11/*
12 * This function is similar to the one in dlls/win32/advapi32/reg/reg.c
13 * TODO: I should review both of them very carefully, because they may need
14 * some adjustments in their NtCreateKey calls, especially for CreateOptions
15 * stuff etc...
16 */
17NTSTATUS
18CreateNestedKey(PHANDLE KeyHandle,
19 ACCESS_MASK DesiredAccess,
20 POBJECT_ATTRIBUTES ObjectAttributes,
21 ULONG CreateOptions);
22
23/*
24 * Should be called under SE_BACKUP_PRIVILEGE privilege
25 */
26NTSTATUS
27CreateRegistryFile(
28 IN PUNICODE_STRING NtSystemRoot,
29 IN PCWSTR RegistryKey,
30 IN BOOLEAN IsHiveNew,
31 IN HANDLE ProtoKeyHandle
32/*
33 IN PUCHAR Descriptor,
34 IN ULONG DescriptorLength
35*/
36 );
37
38/* Adapted from ntoskrnl/config/cmsysini.c:CmpLinkKeyToHive() */
39NTSTATUS
40CreateSymLinkKey(
41 IN HANDLE RootKey OPTIONAL,
42 IN PCWSTR LinkKeyName,
43 IN PCWSTR TargetKeyName);
44
45NTSTATUS
46DeleteSymLinkKey(
47 IN HANDLE RootKey OPTIONAL,
48 IN PCWSTR LinkKeyName);
49
50/*
51 * Should be called under SE_RESTORE_PRIVILEGE privilege
52 */
53NTSTATUS
54ConnectRegistry(
55 IN HANDLE RootKey OPTIONAL,
56 IN PCWSTR RegMountPoint,
57 // IN HANDLE RootDirectory OPTIONAL,
58 IN PUNICODE_STRING NtSystemRoot,
59 IN PCWSTR RegistryKey
60/*
61 IN PUCHAR Descriptor,
62 IN ULONG DescriptorLength
63*/
64 );
65
66/*
67 * Should be called under SE_RESTORE_PRIVILEGE privilege
68 */
69NTSTATUS
70DisconnectRegistry(
71 IN HANDLE RootKey OPTIONAL,
72 IN PCWSTR RegMountPoint,
73 IN ULONG Flags);
74
75/*
76 * Should be called under SE_RESTORE_PRIVILEGE privilege
77 */
78NTSTATUS
79VerifyRegistryHive(
80 // IN HANDLE RootKey OPTIONAL,
81 // // IN HANDLE RootDirectory OPTIONAL,
82 IN PUNICODE_STRING NtSystemRoot,
83 IN PCWSTR RegistryKey /* ,
84 IN PCWSTR RegMountPoint */);
85
86/* EOF */