mirror of
https://github.com/reactos/reactos.git
synced 2024-12-26 00:54:40 +00:00
[NTOS:CM] Implement Win7+ VolatileBoot support.
Its support is controlled with a REG_DWORD value named `VolatileBoot` inside the registry key `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager` . Its implementation is very trivial: when enabled, CmpShareSystemHives is set to TRUE and doesn't change state during runtime. In a sense this is similar to what happens in WinPE-boot, except that ALL hives without exception (system hives and others) will be loaded in shared mode.
This commit is contained in:
parent
f42c81e4ed
commit
cc40a5870a
3 changed files with 15 additions and 1 deletions
|
@ -54,6 +54,8 @@ UNICODE_STRING CmSymbolicLinkValueName =
|
|||
|
||||
UNICODE_STRING CmpLoadOptions;
|
||||
|
||||
/* TRUE if all hives must be loaded in shared mode */
|
||||
ULONG CmpVolatileBoot;
|
||||
/* TRUE if the system hives must be loaded in shared mode */
|
||||
BOOLEAN CmpShareSystemHives;
|
||||
/* TRUE when the registry is in PE mode */
|
||||
|
@ -673,6 +675,13 @@ DATA_SEG("INITDATA") CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
|
|||
NULL,
|
||||
NULL
|
||||
},
|
||||
{
|
||||
L"Session Manager\\Configuration Manager",
|
||||
L"VolatileBoot",
|
||||
&CmpVolatileBoot,
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
{
|
||||
L"Session Manager",
|
||||
L"ForceNpxEmulation",
|
||||
|
|
|
@ -1164,7 +1164,7 @@ CmpCreateRegistryRoot(VOID)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/* Completely sucessful */
|
||||
/* Completely successful */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1635,6 +1635,10 @@ CmInitSystem1(VOID)
|
|||
CmpMiniNTBoot = TRUE;
|
||||
CmpShareSystemHives = TRUE;
|
||||
}
|
||||
/* If we are in volatile boot mode, ALL hives without exception
|
||||
* (system hives and others) will be loaded in shared mode */
|
||||
if (CmpVolatileBoot)
|
||||
CmpShareSystemHives = TRUE;
|
||||
|
||||
/* Initialize the hive list and lock */
|
||||
InitializeListHead(&CmpHiveListHead);
|
||||
|
|
|
@ -1420,6 +1420,7 @@ CmGetSystemDriverList(
|
|||
extern ULONG CmpTraceLevel;
|
||||
extern BOOLEAN CmpSpecialBootCondition;
|
||||
extern BOOLEAN CmpFlushOnLockRelease;
|
||||
extern ULONG CmpVolatileBoot;
|
||||
extern BOOLEAN CmpShareSystemHives;
|
||||
extern BOOLEAN CmpMiniNTBoot;
|
||||
extern BOOLEAN CmpNoVolatileCreates;
|
||||
|
|
Loading…
Reference in a new issue