reactos/base/setup/usetup
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
..
lang [USETUP] Whitespace fixes only. 2018-10-24 00:35:54 +02:00
bootsup.c [USETUP] Introduce SetupDeleteFile() and SetupMoveFile() (in addition to the already-existing SetupCopyFile()) in order to implement moving / renaming existing files. 2018-10-25 00:58:22 +02:00
bootsup.h [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
cabinet.c [USETUP] Whitespace fixes only. 2018-10-24 00:35:54 +02:00
cabinet.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
chkdsk.c [SETUPLIB][USETUP] Introduce a 'SetupLib' library. CORE-13544 2018-05-27 20:18:50 +02:00
chkdsk.h [SETUPLIB][USETUP] Introduce a 'SetupLib' library. CORE-13544 2018-05-27 20:18:50 +02:00
CMakeLists.txt [USETUP][SETUPLIB] Added support for formatting partition in BTRFS and installing ReactOS on it. 2018-08-20 08:26:56 +02:00
cmdcons.c [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
cmdcons.h [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
console.c [USETUP] Implement a basic console 'input queue' and implement PeekConsoleInput() and CONSOLE_ConInKeyPeek() around it. 2018-08-27 00:28:08 +02:00
console.h [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
consup.c [USETUP] Whitespace fixes only. 2018-10-24 00:35:54 +02:00
consup.h [USETUP] Implement a basic console 'input queue' and implement PeekConsoleInput() and CONSOLE_ConInKeyPeek() around it. 2018-08-27 00:28:08 +02:00
devinst.c [USETUP] Explicitly use the REG_OPTION_(NON_)VOLATILE flags in NtCreateKey calls. 2018-10-25 00:58:21 +02:00
drivesup.c [USETUP] Minor fixes & simplifications. 2018-06-03 22:12:43 +02:00
drivesup.h [USETUP] Minor fixes & simplifications. 2018-06-03 22:12:43 +02:00
errorcode.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
filequeue.c [USETUP] Introduce SetupDeleteFile() and SetupMoveFile() (in addition to the already-existing SetupCopyFile()) in order to implement moving / renaming existing files. 2018-10-25 00:58:22 +02:00
filequeue.h [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
filesup.c [USETUP] Introduce SetupDeleteFile() and SetupMoveFile() (in addition to the already-existing SetupCopyFile()) in order to implement moving / renaming existing files. 2018-10-25 00:58:22 +02:00
filesup.h [USETUP] Introduce SetupDeleteFile() and SetupMoveFile() (in addition to the already-existing SetupCopyFile()) in order to implement moving / renaming existing files. 2018-10-25 00:58:22 +02:00
format.c [SETUPLIB][USETUP] Introduce a 'SetupLib' library. CORE-13544 2018-05-27 20:18:50 +02:00
format.h [SETUPLIB][USETUP] Introduce a 'SetupLib' library. CORE-13544 2018-05-27 20:18:50 +02:00
fslist.c [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
fslist.h [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
genlist.c [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
genlist.h [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
inffile.c [USETUP] Remove the WIN32 support because usetup is a native-only application 2018-05-15 23:35:17 +02:00
inffile.h [USETUP] Remove the WIN32 support because usetup is a native-only application 2018-05-15 23:35:17 +02:00
keytrans.c [USETUP] Remove the WIN32 support because usetup is a native-only application 2018-05-15 23:35:17 +02:00
keytrans.h [USETUP] Remove the WIN32 support because usetup is a native-only application 2018-05-15 23:35:17 +02:00
mui.c [USETUP] Explicitly use the REG_OPTION_(NON_)VOLATILE flags in NtCreateKey calls. 2018-10-25 00:58:21 +02:00
mui.h [USETUP] Rename some of the uninformative "STRING_HDDINFOUNKx" string labels into more informative ones. 2018-10-24 00:35:53 +02:00
muifonts.h [USETUP][EXPLORER] ReactOS explorer translation and hindi font substitution. (#954) 2018-10-19 17:03:17 +02:00
muilanguages.h [USETUP][EXPLORER] ReactOS explorer translation and hindi font substitution. (#954) 2018-10-19 17:03:17 +02:00
partlist.c [USETUP] Rename some of the uninformative "STRING_HDDINFOUNKx" string labels into more informative ones. 2018-10-24 00:35:53 +02:00
partlist.h [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
progress.c [USETUP] Progress-bar: minor improvements. 2018-08-27 23:55:58 +02:00
progress.h [USETUP] Progress-bar: minor improvements. 2018-08-27 23:55:58 +02:00
registry.c [USETUP] Implement work-in-progress code that allows verifying whether registry hives validity. 2018-10-25 00:58:23 +02:00
registry.h [USETUP] Implement work-in-progress code that allows verifying whether registry hives validity. 2018-10-25 00:58:23 +02:00
settings.c [USETUP] Implement offline ReactOS registry initialization in USetup (equivalent of mkhive, but using OS functionality). 2018-10-25 00:57:02 +02:00
settings.h [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
usetup.c [USETUP] Implement work-in-progress code that allows verifying whether registry hives validity. 2018-10-25 00:58:23 +02:00
usetup.h [USETUP] Massage the USETUP interface code. 2018-10-24 00:35:52 +02:00
usetup.rc [SETUPLIB][USETUP] Diverse additions. 2018-06-03 22:12:45 +02:00