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 {