projects
/
reactos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix some registry structures to match the Windows format.
[reactos.git]
/
reactos
/
boot
/
freeldr
/
freeldr
/
reactos
/
binhive.c
diff --git
a/reactos/boot/freeldr/freeldr/reactos/binhive.c
b/reactos/boot/freeldr/freeldr/reactos/binhive.c
index
b355869
..
f9ea51f
100644
(file)
--- a/
reactos/boot/freeldr/freeldr/reactos/binhive.c
+++ b/
reactos/boot/freeldr/freeldr/reactos/binhive.c
@@
-57,19
+57,20
@@
typedef struct _HIVE_HEADER
ULONG UpdateCounter2;
/* When this hive file was last modified */
ULONG UpdateCounter2;
/* When this hive file was last modified */
- ULONGLONG DateModified;
/* FILETIME */
+ ULONGLONG DateModified;
- /* Registry format
version ? (1?
) */
- ULONG
Unused3
;
+ /* Registry format
major version (1
) */
+ ULONG
MajorVersion
;
- /* Registry format version ? (3?) */
- ULONG Unused4;
+ /* Registry format minor version (3)
+ Version 3 added fast indexes, version 5 has large value optimizations */
+ ULONG MinorVersion;
- /* Registry f
ormat version ? (0?
) */
- ULONG
Unused5
;
+ /* Registry f
ile type (0 - Primary, 1 - Log
) */
+ ULONG
Type
;
- /* Registry format
version ? (1?
) */
- ULONG
Unused6
;
+ /* Registry format
(1 is the only defined value so far
) */
+ ULONG
Format
;
/* Offset into file from the byte after the end of the base block.
If the hive is volatile, this is the actual pointer to the KEY_CELL */
/* Offset into file from the byte after the end of the base block.
If the hive is volatile, this is the actual pointer to the KEY_CELL */
@@
-82,10
+83,9
@@
typedef struct _HIVE_HEADER
ULONG Unused7;
/* Name of hive file */
ULONG Unused7;
/* Name of hive file */
- WCHAR FileName[
64
];
+ WCHAR FileName[
48
];
- /* ? */
- ULONG Unused8[83];
+ ULONG Reserved[99];
/* Checksum of first 0x200 bytes */
ULONG Checksum;
/* Checksum of first 0x200 bytes */
ULONG Checksum;
@@
-97,20
+97,19
@@
typedef struct _BIN_HEADER
/* Bin identifier "hbin" (0x6E696268) */
ULONG HeaderId;
/* Bin identifier "hbin" (0x6E696268) */
ULONG HeaderId;
- /* B
in offset
*/
+ /* B
lock offset of this bin
*/
BLOCK_OFFSET BinOffset;
/* Size in bytes, multiple of the block size (4KB) */
ULONG BinSize;
BLOCK_OFFSET BinOffset;
/* Size in bytes, multiple of the block size (4KB) */
ULONG BinSize;
- /* ? */
- ULONG Unused1;
+ ULONG Reserved[2];
/* When this bin was last modified */
/* When this bin was last modified */
- ULONGLONG DateModified;
/* FILETIME */
+ ULONGLONG DateModified;
- /* ? */
- ULONG
Unused2
;
+ /* ?
(In-memory only)
*/
+ ULONG
MemAlloc
;
} __attribute__((packed)) HBIN, *PHBIN;
} __attribute__((packed)) HBIN, *PHBIN;
@@
-298,15
+297,14
@@
CmiCreateDefaultHiveHeader (PHIVE_HEADER Header)
Header->BlockId = REG_HIVE_ID;
Header->UpdateCounter1 = 0;
Header->UpdateCounter2 = 0;
Header->BlockId = REG_HIVE_ID;
Header->UpdateCounter1 = 0;
Header->UpdateCounter2 = 0;
- Header->DateModified = 0
ULL
;
- Header->
Unused3
= 1;
- Header->
Unused4
= 3;
- Header->
Unused5
= 0;
- Header->
Unused6
= 1;
+ Header->DateModified = 0;
+ Header->
MajorVersion
= 1;
+ Header->
MinorVersion
= 3;
+ Header->
Type
= 0;
+ Header->
Format
= 1;
Header->Unused7 = 1;
Header->RootKeyOffset = -1;
Header->BlockSize = REG_BLOCK_SIZE;
Header->Unused7 = 1;
Header->RootKeyOffset = -1;
Header->BlockSize = REG_BLOCK_SIZE;
- Header->Unused6 = 1;
Header->Checksum = 0;
}
Header->Checksum = 0;
}
@@
-717,9
+715,8
@@
CmiAddBin(PREGISTRY_HIVE RegistryHive,
tmpBin->BinOffset = RegistryHive->FileSize - REG_BLOCK_SIZE;
RegistryHive->FileSize += BinSize;
tmpBin->BinSize = BinSize;
tmpBin->BinOffset = RegistryHive->FileSize - REG_BLOCK_SIZE;
RegistryHive->FileSize += BinSize;
tmpBin->BinSize = BinSize;
- tmpBin->Unused1 = 0;
tmpBin->DateModified = 0ULL;
tmpBin->DateModified = 0ULL;
- tmpBin->
Unused2
= 0;
+ tmpBin->
MemAlloc
= 0;
/* Increase size of list of blocks */
BlockList = MmAllocateMemory (sizeof(PHBIN) * (RegistryHive->BlockListSize + BlockCount));
/* Increase size of list of blocks */
BlockList = MmAllocateMemory (sizeof(PHBIN) * (RegistryHive->BlockListSize + BlockCount));