reactos/sdk/lib/cmlib
George Bișoc f33da480af
[SDK][CMLIB] Implement CmCheckRegistry and validation private helpers
CmCheckRegistry is a function that provides the necessary validation checks for a registry hive. This function usually comes into action when logs have been replayed for example, or when a registry hive internals have changed such as when saving a key, loading a key, etc.

This commit implements the whole Check Registry infrastructure (cmcheck.c) in CMLIB library for ease of usage and wide accessibility across parts of the OS. In addition, two more functions for registry checks are also implemented -- HvValidateHive and HvValidateBin.

Instead of having the CmCheckRegistry implementation in the kernel, it's better to have it in the Configuration Manager library instead (aka CMLIB). The benefits of having it in the library are the following:

- CmCheckRegistry can be used in FreeLdr to fix the SYSTEM hive
- It can be used on-demand in the kernel
- It can be used for offline registry repair tools
- It makes the underlying CmCheckRegistry implementation code debug-able in user mode

CORE-9195
CORE-6762
2023-11-19 20:44:27 +01:00
..
CMakeLists.txt [SDK][CMLIB] Implement CmCheckRegistry and validation private helpers 2023-11-19 20:44:27 +01:00
cmcheck.c [SDK][CMLIB] Implement CmCheckRegistry and validation private helpers 2023-11-19 20:44:27 +01:00
cmdata.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
cmheal.c [SDK][CMLIB] Implement self-heal registry helpers 2023-11-19 20:44:27 +01:00
cmindex.c [SDK:CMLIB] Use Hive->Allocate / Hive->Free where possible. 2022-04-16 18:33:24 +02:00
cminit.c [SDK:CMLIB][MKHIVE][BOOT:ENVIRON][NTOS:CONFIG] Add missing HvGetCell casts. Replace some ASSERT(FALSE). 2022-03-27 18:37:16 +02:00
cmkeydel.c [SDK:CMLIB][MKHIVE][BOOT:ENVIRON][NTOS:CONFIG] Add missing HvGetCell casts. Replace some ASSERT(FALSE). 2022-03-27 18:37:16 +02:00
cmlib.h [SDK][CMLIB] Implement CmCheckRegistry and validation private helpers 2023-11-19 20:44:27 +01:00
cmname.c [SDK:CMLIB] Const-ify the unicode strings that are only used as input and not modified. 2022-03-27 19:38:54 +02:00
cmse.c [SDK:CMLIB][MKHIVE][BOOT:ENVIRON][NTOS:CONFIG] Add missing HvGetCell casts. Replace some ASSERT(FALSE). 2022-03-27 18:37:16 +02:00
cmvalue.c [SDK:CMLIB] Use Hive->Allocate / Hive->Free where possible. 2022-04-16 18:33:24 +02:00
hivebin.c [TOOLS] Fix/suppress all MSVC/x64 warnings (#1525) 2019-04-28 23:21:48 +02:00
hivecell.c [NTOS:CM] Don't lazy flush the registry during unlocking operation 2022-12-23 19:45:13 +01:00
hivedata.h [SDK][CMLIB] Declare some BootType and BootRecover identifiers & Miscellaneous Stuff 2023-11-19 20:44:23 +01:00
hiveinit.c [SDK][CMLIB] Properly check for failure if hive free list creation fails 2022-12-30 19:58:37 +01:00
hivesum.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
hivewrt.c [CMLIB] Revert previous commit to avoid future merges of other devs 2023-11-05 09:55:03 +01:00