struct _CM_KEY_CONTROL_BLOCK { unsigned __int64 RefCount;/* 0x0 8 */ unsigned long ExtFlags : 16;/* 0x8:0 4 */ unsigned long Freed : 1;/* 0x8:16 4 */ unsigned long Discarded : 1;/* 0x8:17 4 */ unsigned long HiveUnloaded : 1;/* 0x8:18 4 */ unsigned long Decommissioned : 1;/* 0x8:19 4 */ unsigned long SpareExtFlag : 1;/* 0x8:20 4 */ unsigned short TotalLevels;/* 0xc 2 */ /* 2 bytes padding */ union { struct _CM_KEY_HASH KeyHash;/* 0x10 32 */ struct { struct _CM_PATH_HASH ConvKey;/* 0x10 4 */ /* 4 bytes padding */ struct _CM_KEY_HASH* NextHash;/* 0x18 8 */ struct _HHIVE* KeyHive;/* 0x20 8 */ unsigned long KeyCell;/* 0x28 4 */ };/* 0x10 28 */ };/* 0x10 32 */ struct _EX_PUSH_LOCK KcbPushlock;/* 0x30 8 */ union { struct _KTHREAD* Owner;/* 0x38 8 */ long SharedCount;/* 0x38 4 */ };/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ union { struct { unsigned char DelayedDeref : 1;/* 0x40:0 1 */ unsigned char DelayedClose : 1;/* 0x40:1 1 */ unsigned char Parking : 1;/* 0x40:2 1 */ };/* 0x40 1 */ unsigned char DelayFlags;/* 0x40 1 */ };/* 0x40 1 */ unsigned char LayerSemantics;/* 0x41 1 */ short LayerHeight;/* 0x42 2 */ unsigned long Spare1;/* 0x44 4 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb;/* 0x48 8 */ struct _CM_NAME_CONTROL_BLOCK* NameBlock;/* 0x50 8 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity;/* 0x58 8 */ struct _CHILD_LIST ValueList;/* 0x60 8 */ struct _CM_KEY_CONTROL_BLOCK* LinkTarget;/* 0x68 8 */ union { struct _CM_INDEX_HINT_BLOCK* IndexHint;/* 0x70 8 */ unsigned long HashKey;/* 0x70 4 */ unsigned long SubKeyCount;/* 0x70 4 */ };/* 0x70 8 */ union { struct _LIST_ENTRY KeyBodyListHead;/* 0x78 16 */ struct _LIST_ENTRY ClonedListEntry;/* 0x78 16 */ };/* 0x78 16 */ /* ── cacheline 2 boundary (128 bytes) ── */ struct _CM_KEY_BODY* KeyBodyArray[4];/* 0x88 32 */ union _LARGE_INTEGER KcbLastWriteTime;/* 0xa8 8 */ unsigned short KcbMaxNameLen;/* 0xb0 2 */ unsigned short KcbMaxValueNameLen;/* 0xb2 2 */ unsigned long KcbMaxValueDataLen;/* 0xb4 4 */ unsigned long KcbUserFlags : 4;/* 0xb8:0 4 */ unsigned long KcbVirtControlFlags : 4;/* 0xb8:4 4 */ unsigned long KcbDebug : 8;/* 0xb8:8 4 */ unsigned long Flags : 16;/* 0xb8:16 4 */ unsigned long Spare3;/* 0xbc 4 */ /* ── cacheline 3 boundary (192 bytes) ── */ struct _CM_KCB_LAYER_INFO* LayerInfo;/* 0xc0 8 */ char* RealKeyName;/* 0xc8 8 */ struct _LIST_ENTRY KCBUoWListHead;/* 0xd0 16 */ union { struct _LIST_ENTRY DelayQueueEntry;/* 0xe0 16 */ volatile unsigned char* Stolen;/* 0xe0 8 */ };/* 0xe0 16 */ struct _CM_TRANS* TransKCBOwner;/* 0xf0 8 */ struct _CM_INTENT_LOCK KCBLock;/* 0xf8 16 */ /* ── cacheline 4 boundary (256 bytes) ── */ struct _CM_INTENT_LOCK KeyLock;/* 0x108 16 */ struct _CHILD_LIST TransValueCache;/* 0x118 8 */ struct _CM_TRANS* TransValueListOwner;/* 0x120 8 */ union { struct _UNICODE_STRING* FullKCBName;/* 0x128 8 */ struct { unsigned __int64 FullKCBNameStale : 1;/* 0x128:0 8 */ unsigned __int64 Reserved : 63;/* 0x128:1 8 */ };/* 0x128 8 */ };/* 0x128 8 */ unsigned __int64 SequenceNumber;/* 0x130 8 */};size 312 (0x138)57 members2 holes (6 bytes)padding 05 cachelines
Used in (6)