reactos/base/setup
Hermès Bélusca-Maïto 455e69a011
[USETUP] Implement work-in-progress code that allows verifying whether registry hives validity.
Implement work-in-progress code that, when upgrading an existing
ReactOS installation, verifies whether the (existing) system registry
hives are valid (by loading & unloading them, this allows using the
built-in repair functionality if needed), or not.

If a given hive cannot be repaired successfully, it is backed up
(with a '.brk' extension, "brk" as "broken"), then is marked up for
recreation.

When all hives have been checked, if there are any hive that needs
to be recreated, we recreate its hive file, mount it, but we do *NOT*
mount the other valid existing hives for update. We create instead
dummy registry hives so that we can actually use, as the update code,
the same one as the one used when fully creating the registry hives
for a clean installation (of course, this choice can be improved later on).

The update code (i.e. the same as the registry clean-install one) then
adds the registry keys & values, either putting them in the dummy
registry hives (the ones that we don't want to recreate) or in the
registry hive that is recreated.

At the end, the (re)created registry hives are flushed back to disk,
and a copy of them (under a '.sav' extension) are created, so that they
can be used for restoration purposes if 2nd-stage (and up) goes berserk.

Extra fixes:

- Use the correct structure member field when initializing the
  'InstallDir' variable, when performing an upgrade.

- CreateNestedKey() should be better analysed to see whether it correctly
  creates the full registry path compatible with volatile/non-volatile keys
  (under inspection).

svn path=/branches/setup_improvements/; revision=75010
2018-10-25 00:58:23 +02:00
..
lib [USETUP] Small formatting changes + two functions turned into FORCEINLINE. 2018-10-24 00:35:54 +02:00
reactos [TRANSLATION] Update Romanian translation (#851) 2018-09-14 11:04:36 +02:00
setup
usetup [USETUP] Implement work-in-progress code that allows verifying whether registry hives validity. 2018-10-25 00:58:23 +02:00
welcome [WELCOME] Minor usage improvements. 2018-10-08 21:00:14 +02:00
CMakeLists.txt [SETUPLIB][USETUP] Introduce a 'SetupLib' library. CORE-13544 2018-05-27 20:18:50 +02:00