struct _HHIVE { unsigned long Signature;/* 0x0 4 */ /* 4 bytes padding */ struct _CELL_DATA* (*GetCellRoutine)(struct _HHIVE*, unsigned long);/* 0x8 8 */ void (*ReleaseCellRoutine)(struct _HHIVE*, unsigned long);/* 0x10 8 */ void* (*Allocate)(unsigned long, unsigned char, unsigned long);/* 0x18 8 */ void (*Free)(void*, unsigned long);/* 0x20 8 */ unsigned char (*FileSetSize)(struct _HHIVE*, unsigned long, unsigned long, unsigned long);/* 0x28 8 */ unsigned char (*FileWrite)(struct _HHIVE*, unsigned long, struct CMP_OFFSET_ARRAY*, unsigned long, unsigned long*);/* 0x30 8 */ unsigned char (*FileRead)(struct _HHIVE*, unsigned long, unsigned long*, void*, unsigned long);/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned char (*FileFlush)(struct _HHIVE*, unsigned long, union _LARGE_INTEGER*, unsigned long);/* 0x40 8 */ struct _HBASE_BLOCK* BaseBlock;/* 0x48 8 */ struct _RTL_BITMAP DirtyVector;/* 0x50 16 */ unsigned long DirtyCount;/* 0x60 4 */ unsigned long DirtyAlloc;/* 0x64 4 */ unsigned long BaseBlockAlloc;/* 0x68 4 */ unsigned long Cluster;/* 0x6c 4 */ unsigned char Flat;/* 0x70 1 */ unsigned char ReadOnly;/* 0x71 1 */ unsigned char DirtyFlag;/* 0x72 1 */ /* 1 byte padding */ unsigned long HvBinHeadersUse;/* 0x74 4 */ unsigned long HvFreeCellsUse;/* 0x78 4 */ unsigned long HvUsedCellsUse;/* 0x7c 4 */ /* ── cacheline 2 boundary (128 bytes) ── */ unsigned long CmUsedCellsUse;/* 0x80 4 */ unsigned long HiveFlags;/* 0x84 4 */ unsigned long CurrentLog;/* 0x88 4 */ unsigned long LogSize[2];/* 0x8c 8 */ unsigned long RefreshCount;/* 0x94 4 */ unsigned long StorageTypeCount;/* 0x98 4 */ unsigned long Version;/* 0x9c 4 */ struct _DUAL Storage[2];/* 0xa0 1264 */};size 1424 (0x590)29 members2 holes (5 bytes)padding 023 cachelines
Used in (4)