[CMLIB] Assign a signature to the in-memory HHIVE registry hive structure. CORE-15753
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 17 Feb 2019 00:10:27 +0000 (01:10 +0100)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 17 Feb 2019 00:21:37 +0000 (01:21 +0100)
Makes the `!reg hivelist` WinDbg command working in ReactOS.

Dedicated to Mark Jansen.

See for more details:
https://webcache.googleusercontent.com/search?q=cache:fmHJX9eFGkkJ:https://blogs.technet.microsoft.com/ganand/archive/2008/01/05/internal-structures-of-the-windows-registry.aspx
and
http://moyix.blogspot.com/2008/02/enumerating-registry-hives.html

sdk/lib/cmlib/hivedata.h
sdk/lib/cmlib/hiveinit.c

index 1c180a6..39d617c 100644 (file)
@@ -47,6 +47,7 @@
 //
 // Hive structure identifiers
 //
 //
 // Hive structure identifiers
 //
+#define HV_HHIVE_SIGNATURE              0xbee0bee0
 #define HV_HBLOCK_SIGNATURE             0x66676572  // "regf"
 #define HV_HBIN_SIGNATURE               0x6e696268  // "hbin"
 
 #define HV_HBLOCK_SIGNATURE             0x66676572  // "regf"
 #define HV_HBIN_SIGNATURE               0x6e696268  // "hbin"
 
index 297ae36..fcbbe08 100644 (file)
@@ -542,6 +542,7 @@ HvInitialize(
      */
 
     RtlZeroMemory(Hive, sizeof(HHIVE));
      */
 
     RtlZeroMemory(Hive, sizeof(HHIVE));
+    Hive->Signature = HV_HHIVE_SIGNATURE;
 
     Hive->Allocate = Allocate;
     Hive->Free = Free;
 
     Hive->Allocate = Allocate;
     Hive->Free = Free;