[USETUP] Implement offline ReactOS registry initialization in USetup (equivalent...
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sat, 3 Jun 2017 16:22:42 +0000 (16:22 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Wed, 24 Oct 2018 22:57:02 +0000 (00:57 +0200)
commitbbb04c470adc222c672df7a3d06d0926fb0003e9
tree8594e40e4e49f0133be369b99342465b586c643f
parentcd89e5b797c9368272d32f397eacacc0d474bbca
[USETUP] Implement offline ReactOS registry initialization in USetup (equivalent of mkhive, but using OS functionality).

The rationale is as follows.

We now have the 1st-stage ReactOS setup running with its own registry SYSTEM hive,
similarly to regular ROS running instances (livecd, regular installation...).

The ReactOS-specific SetInstallPathValue() hack, introduced in a76689e9 (r3794)
and 5f973ce0 (r3795), is removed. This hack told the kernel that, during the setup,
it had to "switch" the used registry hives and instead use the ones of the ROS
installation being prepared.

This was really hackish because this means, mixing between registry settings used only
for the setup running instance, that could use different registry settings
than the ones that should be set for the ROS installation being actually performed.

Also, note that in the case of a 1st-stage GUI setup, consisting in running the
LiveCD + the GUI setup program, this situation would be untenable. Note also that
for people willing to use the Setup*** functions exported by setupapi.dll to parse
the registry INF files to initialize the registry of the ROS installation being
prepared, this would be impossible either.

Hence the need to have offline registry modification functionality.

svn path=/branches/setup_improvements/; revision=74766
base/setup/usetup/mui.c
base/setup/usetup/registry.c
base/setup/usetup/registry.h
base/setup/usetup/settings.c
base/setup/usetup/usetup.c