struct _HHIVE { unsigned long Signature;/* 0x0 4 */ struct _CELL_DATA* (*GetCellRoutine)(struct _HHIVE*, unsigned long, struct _HV_GET_CELL_CONTEXT*);/* 0x4 4 */ void (*ReleaseCellRoutine)(struct _HHIVE*, struct _HV_GET_CELL_CONTEXT*);/* 0x8 4 */ void* (*Allocate)(unsigned long, unsigned char, unsigned long);/* 0xc 4 */ void (*Free)(void*, unsigned long);/* 0x10 4 */ long (*FileWrite)(struct _HHIVE*, unsigned long, struct CMP_OFFSET_ARRAY*, unsigned long, unsigned long);/* 0x14 4 */ long (*FileRead)(struct _HHIVE*, unsigned long, unsigned long, void*, unsigned long);/* 0x18 4 */ void* HiveLoadFailure;/* 0x1c 4 */ struct _HBASE_BLOCK* BaseBlock;/* 0x20 4 */ struct _CMSI_RW_LOCK FlusherLock;/* 0x24 4 */ struct _CMSI_RW_LOCK WriterLock;/* 0x28 4 */ struct _RTL_BITMAP DirtyVector;/* 0x2c 8 */ unsigned long DirtyCount;/* 0x34 4 */ unsigned long DirtyAlloc;/* 0x38 4 */ struct _RTL_BITMAP UnreconciledVector;/* 0x3c 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned long UnreconciledCount;/* 0x44 4 */ unsigned long BaseBlockAlloc;/* 0x48 4 */ unsigned long Cluster;/* 0x4c 4 */ unsigned char Flat : 1;/* 0x50:0 1 */ unsigned char ReadOnly : 1;/* 0x50:1 1 */ unsigned char Reserved : 6;/* 0x50:2 1 */ unsigned char DirtyFlag;/* 0x51 1 */ /* 2 bytes padding */ unsigned long HvBinHeadersUse;/* 0x54 4 */ unsigned long HvFreeCellsUse;/* 0x58 4 */ unsigned long HvUsedCellsUse;/* 0x5c 4 */ unsigned long CmUsedCellsUse;/* 0x60 4 */ unsigned long HiveFlags;/* 0x64 4 */ unsigned long CurrentLog;/* 0x68 4 */ unsigned long CurrentLogSequence;/* 0x6c 4 */ unsigned long CurrentLogMinimumSequence;/* 0x70 4 */ unsigned long CurrentLogOffset;/* 0x74 4 */ unsigned long MinimumLogSequence;/* 0x78 4 */ unsigned long LogFileSizeCap;/* 0x7c 4 */ /* ── cacheline 2 boundary (128 bytes) ── */ unsigned char LogDataPresent[2];/* 0x80 2 */ unsigned char PrimaryFileValid;/* 0x82 1 */ unsigned char BaseBlockDirty;/* 0x83 1 */ /* 4 bytes padding */ union _LARGE_INTEGER LastLogSwapTime;/* 0x88 8 */ union { struct { unsigned short FirstLogFile : 3;/* 0x90:0 2 */ unsigned short SecondLogFile : 3;/* 0x90:3 2 */ unsigned short HeaderRecovered : 1;/* 0x90:6 2 */ unsigned short LegacyRecoveryIndicated : 1;/* 0x90:7 2 */ unsigned short RecoveryInformationReserved : 8;/* 0x90:8 2 */ };/* 0x90 2 */ unsigned short RecoveryInformation;/* 0x90 2 */ };/* 0x90 2 */ unsigned char LogEntriesRecovered[2];/* 0x92 2 */ unsigned long RefreshCount;/* 0x94 4 */ unsigned long StorageTypeCount;/* 0x98 4 */ unsigned long Version;/* 0x9c 4 */ struct _HVP_VIEW_MAP ViewMap;/* 0xa0 40 */ /* ── cacheline 3 boundary (192 bytes) ── */ struct _DUAL Storage[2];/* 0xc8 824 */};size 1024 (0x400)49 members2 holes (6 bytes)padding 016 cachelines
Used in (6)