mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 00:13:04 +00:00
[NTOS:CM] Implement support for alternate registry hives
Sometimes repairing a broken hive with a hive log does not always guarantee the hive in question has fully recovered. In worst cases it could happen the LOG itself is even corrupt too and that would certainly lead to a total unbootable system. This is most likely if the victim hive is the SYSTEM hive. This can be anyhow solved by the help of a mirror hive, or also called an "alternate hive". Alternate hives serve the purpose as backup hives for primary hives of which there is still a risk that is not worth taking. For now only the SYSTEM hive is granted the right to have a backup alternate hive. === NOTE === Currently the SYSTEM hive can only base upon the alternate SYSTEM.ALT hive, which means the corresponding LOG file never gets updated. When time comes the existing code must be adapted to allow the possibility to use .ALT and .LOG hives simultaneously.
This commit is contained in:
parent
279f8f8864
commit
f3141fb29e
8 changed files with 239 additions and 39 deletions
|
@ -33,7 +33,8 @@
|
|||
#define HFILE_TYPE_PRIMARY 0
|
||||
#define HFILE_TYPE_LOG 1
|
||||
#define HFILE_TYPE_EXTERNAL 2
|
||||
#define HFILE_TYPE_MAX 3
|
||||
#define HFILE_TYPE_ALTERNATE 3 // Technically a HFILE_TYPE_PRIMARY but for mirror backup hives. ONLY USED for the SYSTEM hive!
|
||||
#define HFILE_TYPE_MAX 4
|
||||
|
||||
//
|
||||
// Hive sizes
|
||||
|
@ -334,6 +335,7 @@ typedef struct _HHIVE
|
|||
BOOLEAN ReadOnly;
|
||||
#if (NTDDI_VERSION < NTDDI_VISTA) // NTDDI_LONGHORN
|
||||
BOOLEAN Log;
|
||||
BOOLEAN Alternate;
|
||||
#endif
|
||||
BOOLEAN DirtyFlag;
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA) // NTDDI_LONGHORN
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue