reactos/sdk/lib
maharmstone e6a9aafe58 [CMLIB] Clean volatile registry entries in the same manner as Windows (#1883)
This fixes the crashes in HvpGetCellMapped on Windows Server 2003 when booting from Freeloader, as mentioned in maharmstone/btrfs#16.

When the bootloader loads the system hive, it cleans the data pertaining to any volatile keys. The Windows bootloader does this by setting SubKeyCounts[Volatile] to 0. After boot, the kernel marks any cell where this is 0 but SubKeyLists[Volatile] isn't HCELL_NIL as dirty, meaning that the sanitized version will then get flushed to the disk.

Because Freeloader sets SubKeyLists[Volatile] to HCELL_NIL straightaway, Windows thinks the cell is clean, and can unload it without flushing. If it then reads it from the disk, it will crash in HvpGetCellMapped due to the stale volatile pointers.

If you break on nt!CmpInitializeSystemHive on Windows and "gu" to the let the function run, you'll see that DirtyVector of the HHIVE has only the first 8 bits set. If you run it using the official bootloader, it'll have a lot more than that.
2019-08-27 02:39:27 +02:00
..
3rdparty [FREETYPE] Improve font rendering with font hinting workaround (#1771) 2019-07-31 21:57:42 +09:00
atl [ATL] Add a minimal CAtlArray implementation 2019-08-11 21:46:07 +02:00
cmlib [CMLIB] Clean volatile registry entries in the same manner as Windows (#1883) 2019-08-27 02:39:27 +02:00
comsupp Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
conutils [CONUTILS] In ConWrite(), emit an \r when a \n is encountered but not already preceded by \r. 2018-08-23 17:04:53 +02:00
cportlib Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
cpprt [CPPRT] Implement __std_terminate wrapper for Clang-CL 2019-02-12 19:31:33 +01:00
crt [CRT] Use sprintf_s instead of sprintf 2019-07-20 13:56:18 +02:00
cryptlib Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
debugsup Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
delayimp [DELAYIMP] Fix/Merge definitions of __pfnDliNotifyHook2 and __pfnDliFailureHook2 2018-06-13 23:28:15 +02:00
dmilib [DRWTSN32] Add SMBIOS data to the system information (#1017) 2018-11-21 21:49:15 +01:00
dnslib Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
drivers [SDK] As sole author of the file, relicense it as LPGL 2019-08-16 19:54:44 +02:00
dxguid Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
epsapi Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
evtlib [EVTLIB] Silence some DPRINTs. 2018-04-22 02:53:40 +02:00
fast486 [REACTOS] Fix misc 64 bit issues (#783) 2019-01-05 10:50:11 +01:00
fslib [VFATLIB] Use RtlStringCbPrintfA instead of sprintf 2019-07-20 13:56:18 +02:00
gcc_ssp Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
inflib [INFLIB] Fix INFCONTEXT structure to be compatible with the official definition (#1603) 2019-06-23 22:35:19 +02:00
ioevent Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
lsalib Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
nt Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
ppcmmu Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
pseh Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
rossym [NTOSKRNL][ROSSYM] ZwReadFile() calls: Use explicit NULL instead of ambiguous 0. CORE-13910 2017-10-27 13:38:02 +02:00
rossym_new [NTOSKRNL][ROSSYM] ZwReadFile() calls: Use explicit NULL instead of ambiguous 0. CORE-13910 2017-10-27 13:38:02 +02:00
rtl [NTDLL] Use the embedded manifest from the process to check compatibility. 2019-08-21 18:57:52 +02:00
runtmchk [RUNTMCHK] Provide fallback memset for arm builds 2019-08-20 22:28:11 +02:00
scrnsave Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
skiplist [SDK] Fix 64 bit issues 2018-07-01 14:45:21 +02:00
smlib Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
strmiids Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
tdilib [TDILIB] Make tdiGetSetOfThings() return useful status 2018-11-18 16:30:45 +01:00
udmihelp [DRWTSN32] Add SMBIOS data to the system information (#1017) 2018-11-21 21:49:15 +01:00
uuid [UUID] Add some missing NetCfg IIDs. 2019-06-17 13:48:34 +02:00
wdmguid Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
CMakeLists.txt [ATL] Retire atlnew 2019-04-18 19:21:37 +02:00