https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f42c81e4edfab2aee4da407664edbe9571585b34

commit f42c81e4edfab2aee4da407664edbe9571585b34
Author:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
AuthorDate: Sat Aug 10 17:20:44 2024 +0200
Commit:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
CommitDate: Sun Dec 15 22:12:51 2024 +0100

    [NTOS:CM] Allow CmSelfHeal to be configured via registry.
    
    This is controlled with a REG_DWORD value named
    `SelfHealingEnabled` inside the registry key
    `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration 
Manager` .
    
    The `CmSelfHeal` variable is used to retrieve the data,
    hence it needs to be a ULONG.
---
 ntoskrnl/config/cmdata.c       | 9 ++++++++-
 ntoskrnl/include/internal/cm.h | 4 ++--
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/ntoskrnl/config/cmdata.c b/ntoskrnl/config/cmdata.c
index 4656fe85cdd..aa9b1f010be 100644
--- a/ntoskrnl/config/cmdata.c
+++ b/ntoskrnl/config/cmdata.c
@@ -60,7 +60,7 @@ BOOLEAN CmpShareSystemHives;
 BOOLEAN CmpMiniNTBoot;
 
 ULONG CmpBootType;
-BOOLEAN CmSelfHeal = TRUE;
+ULONG CmSelfHeal = TRUE;
 BOOLEAN CmpSelfHeal = TRUE;
 
 USHORT CmpUnknownBusCount;
@@ -666,6 +666,13 @@ DATA_SEG("INITDATA") CM_SYSTEM_CONTROL_VECTOR 
CmControlVector[] =
         &DummyData,
         &DummyData
     },
+    {
+        L"Session Manager\\Configuration Manager",
+        L"SelfHealingEnabled",
+        &CmSelfHeal,
+        NULL,
+        NULL
+    },
     {
         L"Session Manager",
         L"ForceNpxEmulation",
diff --git a/ntoskrnl/include/internal/cm.h b/ntoskrnl/include/internal/cm.h
index f40d8420895..8d33736c482 100644
--- a/ntoskrnl/include/internal/cm.h
+++ b/ntoskrnl/include/internal/cm.h
@@ -1452,9 +1452,9 @@ extern HIVE_LIST_ENTRY CmpMachineHiveList[];
 extern UNICODE_STRING CmSymbolicLinkValueName;
 extern UNICODE_STRING CmpSystemStartOptions;
 extern UNICODE_STRING CmpLoadOptions;
-extern BOOLEAN CmSelfHeal;
-extern BOOLEAN CmpSelfHeal;
 extern ULONG CmpBootType;
+extern ULONG CmSelfHeal;
+extern BOOLEAN CmpSelfHeal;
 extern HANDLE CmpRegistryRootHandle;
 extern BOOLEAN ExpInTextModeSetup;
 extern BOOLEAN InitIsWinPEMode;

Reply via email to