From 168fea0eee0acdf63461b7ac65fa607ab49cadbb Mon Sep 17 00:00:00 2001 From: Stanislav Motylkov Date: Sun, 17 Apr 2022 16:14:36 +0300 Subject: [PATCH] [CMLIB] Fix 64-bit build. Addendum to 93d8a1b7b. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to Hervé Poussineau for help. --- sdk/lib/cmlib/hivedata.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sdk/lib/cmlib/hivedata.h b/sdk/lib/cmlib/hivedata.h index 39d617ccbd5..20e844f8306 100644 --- a/sdk/lib/cmlib/hivedata.h +++ b/sdk/lib/cmlib/hivedata.h @@ -77,7 +77,7 @@ * the other bits specify index into the hive file. The value HCELL_NULL * (-1) is reserved for marking invalid cells. */ -typedef ULONG HCELL_INDEX, *PHCELL_INDEX; +typedef ULONG_PTR HCELL_INDEX, *PHCELL_INDEX; // // Cell Magic Values @@ -152,7 +152,11 @@ typedef struct _HBASE_BLOCK of the full name of the hive file */ WCHAR FileName[HIVE_FILENAME_MAXLEN + 1]; +#ifdef _WIN64 + ULONG Reserved1[98]; +#else ULONG Reserved1[99]; +#endif /* Checksum of first 0x200 bytes */ ULONG CheckSum; @@ -163,6 +167,7 @@ typedef struct _HBASE_BLOCK } HBASE_BLOCK, *PHBASE_BLOCK; C_ASSERT(sizeof(HBASE_BLOCK) == HBLOCK_SIZE); +C_ASSERT(FIELD_OFFSET(HBASE_BLOCK, CheckSum) == 0x200 - sizeof(ULONG)); typedef struct _HBIN {