x64x86arm64ia64 / ntdllntoskrnl

_HHIVE

← 10.0.28000.3231 22 builds latest →
struct _HHIVE {
unsigned long Signature;/* 0x0 4 */
/* 4 bytes padding */
struct _CELL_DATA* (*GetCellRoutine)(struct _HHIVE*, unsigned long, struct _HV_GET_CELL_CONTEXT*);/* 0x8 8 */
void (*ReleaseCellRoutine)(struct _HHIVE*, struct _HV_GET_CELL_CONTEXT*);/* 0x10 8 */
void* (*Allocate)(unsigned long, unsigned char, unsigned long);/* 0x18 8 */
void (*Free)(void*, unsigned long);/* 0x20 8 */
long (*FileWrite)(struct _HHIVE*, unsigned long, struct CMP_OFFSET_ARRAY*, unsigned long, unsigned long);/* 0x28 8 */
long (*FileRead)(struct _HHIVE*, unsigned long, unsigned long, void*, unsigned long);/* 0x30 8 */
void* HiveLoadFailure;/* 0x38 8 */
/* ── cacheline 1 boundary (64 bytes) ── */
unsigned long DirtyCount;/* 0x68 4 */
unsigned long DirtyAlloc;/* 0x6c 4 */
/* ── cacheline 2 boundary (128 bytes) ── */
unsigned long UnreconciledCount;/* 0x80 4 */
unsigned long BaseBlockAlloc;/* 0x84 4 */
unsigned long Cluster;/* 0x88 4 */
unsigned char Flat : 1;/* 0x8c:0 1 */
unsigned char ReadOnly : 1;/* 0x8c:1 1 */
unsigned char Reserved : 6;/* 0x8c:2 1 */
unsigned char DirtyFlag;/* 0x8d 1 */
/* 2 bytes padding */
unsigned long HvBinHeadersUse;/* 0x90 4 */
unsigned long HvFreeCellsUse;/* 0x94 4 */
unsigned long HvUsedCellsUse;/* 0x98 4 */
unsigned long CmUsedCellsUse;/* 0x9c 4 */
unsigned long HiveFlags;/* 0xa0 4 */
unsigned long FlusherFlags;/* 0xa4 4 */
unsigned long CurrentLog;/* 0xa8 4 */
unsigned long CurrentLogSequence;/* 0xac 4 */
unsigned long CurrentLogMinimumSequence;/* 0xb0 4 */
unsigned long CurrentLogOffset;/* 0xb4 4 */
unsigned long MinimumLogSequence;/* 0xb8 4 */
unsigned long LogFileSizeCap;/* 0xbc 4 */
/* ── cacheline 3 boundary (192 bytes) ── */
unsigned char LogDataPresent[2];/* 0xc0 2 */
unsigned char PrimaryFileValid;/* 0xc2 1 */
unsigned char BaseBlockDirty;/* 0xc3 1 */
/* 4 bytes padding */
union {
struct {
unsigned short FirstLogFile : 3;/* 0xd0:0 2 */
unsigned short SecondLogFile : 3;/* 0xd0:3 2 */
unsigned short HeaderRecovered : 1;/* 0xd0:6 2 */
unsigned short LegacyRecoveryIndicated : 1;/* 0xd0:7 2 */
unsigned short RecoveryInformationReserved : 8;/* 0xd0:8 2 */
};/* 0xd0 2 */
unsigned short RecoveryInformation;/* 0xd0 2 */
};/* 0xd0 2 */
unsigned char LogEntriesRecovered[2];/* 0xd2 2 */
union {
unsigned char ReorganizeHiveFlags;/* 0xd4 1 */
struct {
unsigned char ReorganizeHiveInProgress : 1;/* 0xd4:0 1 */
unsigned char ReorganizeHivePerformed : 1;/* 0xd4:1 1 */
unsigned char ReorganizeHiveSkipped : 1;/* 0xd4:2 1 */
unsigned char ReorganizeHiveFailed : 1;/* 0xd4:3 1 */
};/* 0xd4 1 */
};/* 0xd4 1 */
/* 3 bytes padding */
unsigned long RefreshCount;/* 0xd8 4 */
unsigned long StorageTypeCount;/* 0xdc 4 */
unsigned long Version;/* 0xe0 4 */
/* 4 bytes padding */
/* ── cacheline 4 boundary (256 bytes) ── */
};
size 1552 (0x610)55 members5 holes (17 bytes)padding 025 cachelines
Used in (5)