2017-06-30 19:07:02 +00:00
|
|
|
/*
|
|
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
|
|
* PROJECT: ReactOS Setup Library
|
|
|
|
* FILE: base/setup/lib/regutil.h
|
|
|
|
* PURPOSE: Registry utility functions
|
|
|
|
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This function is similar to the one in dlls/win32/advapi32/reg/reg.c
|
|
|
|
* TODO: I should review both of them very carefully, because they may need
|
|
|
|
* some adjustments in their NtCreateKey calls, especially for CreateOptions
|
|
|
|
* stuff etc...
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
CreateNestedKey(PHANDLE KeyHandle,
|
|
|
|
ACCESS_MASK DesiredAccess,
|
|
|
|
POBJECT_ATTRIBUTES ObjectAttributes,
|
|
|
|
ULONG CreateOptions);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Should be called under SE_BACKUP_PRIVILEGE privilege
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
CreateRegistryFile(
|
2017-09-03 16:17:27 +00:00
|
|
|
IN PUNICODE_STRING NtSystemRoot,
|
2017-06-30 19:07:02 +00:00
|
|
|
IN PCWSTR RegistryKey,
|
|
|
|
IN BOOLEAN IsHiveNew,
|
|
|
|
IN HANDLE ProtoKeyHandle
|
|
|
|
/*
|
|
|
|
IN PUCHAR Descriptor,
|
|
|
|
IN ULONG DescriptorLength
|
|
|
|
*/
|
|
|
|
);
|
|
|
|
|
2018-01-09 01:56:00 +00:00
|
|
|
/* Adapted from ntoskrnl/config/cmsysini.c:CmpLinkKeyToHive() */
|
|
|
|
NTSTATUS
|
|
|
|
CreateSymLinkKey(
|
|
|
|
IN HANDLE RootKey OPTIONAL,
|
2017-06-30 19:07:02 +00:00
|
|
|
IN PCWSTR LinkKeyName,
|
|
|
|
IN PCWSTR TargetKeyName);
|
|
|
|
|
2018-01-09 01:56:00 +00:00
|
|
|
NTSTATUS
|
|
|
|
DeleteSymLinkKey(
|
|
|
|
IN HANDLE RootKey OPTIONAL,
|
|
|
|
IN PCWSTR LinkKeyName);
|
|
|
|
|
2017-06-30 19:07:02 +00:00
|
|
|
/*
|
|
|
|
* Should be called under SE_RESTORE_PRIVILEGE privilege
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
ConnectRegistry(
|
2018-01-09 01:56:00 +00:00
|
|
|
IN HANDLE RootKey OPTIONAL,
|
2017-06-30 19:07:02 +00:00
|
|
|
IN PCWSTR RegMountPoint,
|
|
|
|
// IN HANDLE RootDirectory OPTIONAL,
|
2017-09-03 16:17:27 +00:00
|
|
|
IN PUNICODE_STRING NtSystemRoot,
|
2017-06-30 19:07:02 +00:00
|
|
|
IN PCWSTR RegistryKey
|
|
|
|
/*
|
|
|
|
IN PUCHAR Descriptor,
|
|
|
|
IN ULONG DescriptorLength
|
|
|
|
*/
|
|
|
|
);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Should be called under SE_RESTORE_PRIVILEGE privilege
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
DisconnectRegistry(
|
2018-01-09 01:56:00 +00:00
|
|
|
IN HANDLE RootKey OPTIONAL,
|
2017-06-30 19:07:02 +00:00
|
|
|
IN PCWSTR RegMountPoint,
|
|
|
|
IN ULONG Flags);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Should be called under SE_RESTORE_PRIVILEGE privilege
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
VerifyRegistryHive(
|
2018-01-09 01:56:00 +00:00
|
|
|
// IN HANDLE RootKey OPTIONAL,
|
2017-06-30 19:07:02 +00:00
|
|
|
// // IN HANDLE RootDirectory OPTIONAL,
|
2017-09-03 16:17:27 +00:00
|
|
|
IN PUNICODE_STRING NtSystemRoot,
|
2017-06-30 19:07:02 +00:00
|
|
|
IN PCWSTR RegistryKey /* ,
|
|
|
|
IN PCWSTR RegMountPoint */);
|
|
|
|
|
|
|
|
/* EOF */
|