struct _CM_KEY_CONTROL_BLOCK { unsigned long RefCount;/* 0x0 4 */ unsigned long ExtFlags : 16;/* 0x4:0 4 */ unsigned long Freed : 1;/* 0x4:16 4 */ unsigned long Discarded : 1;/* 0x4:17 4 */ unsigned long HiveUnloaded : 1;/* 0x4:18 4 */ unsigned long Decommissioned : 1;/* 0x4:19 4 */ unsigned long SpareExtFlag : 1;/* 0x4:20 4 */ unsigned long TotalLevels : 10;/* 0x4:21 4 */ union { struct _CM_KEY_HASH KeyHash;/* 0x8 16 */ struct { struct _CM_PATH_HASH ConvKey;/* 0x8 4 */ struct _CM_KEY_HASH* NextHash;/* 0xc 4 */ struct _HHIVE* KeyHive;/* 0x10 4 */ unsigned long KeyCell;/* 0x14 4 */ };/* 0x8 16 */ };/* 0x8 16 */ struct _EX_PUSH_LOCK KcbPushlock;/* 0x18 4 */ union { struct _KTHREAD* Owner;/* 0x1c 4 */ long SharedCount;/* 0x1c 4 */ };/* 0x1c 4 */ unsigned char DelayedDeref : 1;/* 0x20:0 1 */ unsigned char DelayedClose : 1;/* 0x20:1 1 */ unsigned char Parking : 1;/* 0x20:2 1 */ unsigned char LayerSemantics;/* 0x21 1 */ short LayerHeight;/* 0x22 2 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb;/* 0x24 4 */ struct _CM_NAME_CONTROL_BLOCK* NameBlock;/* 0x28 4 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity;/* 0x2c 4 */ struct _CHILD_LIST ValueList;/* 0x30 8 */ struct _CM_KEY_CONTROL_BLOCK* LinkTarget;/* 0x38 4 */ union { struct _CM_INDEX_HINT_BLOCK* IndexHint;/* 0x3c 4 */ unsigned long HashKey;/* 0x3c 4 */ unsigned long SubKeyCount;/* 0x3c 4 */ };/* 0x3c 4 */ /* ── cacheline 1 boundary (64 bytes) ── */ union { struct _LIST_ENTRY KeyBodyListHead;/* 0x40 8 */ struct _LIST_ENTRY ClonedListEntry;/* 0x40 8 */ };/* 0x40 8 */ struct _CM_KEY_BODY* KeyBodyArray[4];/* 0x48 16 */ union _LARGE_INTEGER KcbLastWriteTime;/* 0x58 8 */ unsigned short KcbMaxNameLen;/* 0x60 2 */ unsigned short KcbMaxValueNameLen;/* 0x62 2 */ unsigned long KcbMaxValueDataLen;/* 0x64 4 */ unsigned long KcbUserFlags : 4;/* 0x68:0 4 */ unsigned long KcbVirtControlFlags : 4;/* 0x68:4 4 */ unsigned long KcbDebug : 8;/* 0x68:8 4 */ unsigned long Flags : 16;/* 0x68:16 4 */ struct _CM_KCB_LAYER_INFO* LayerInfo;/* 0x6c 4 */ struct _LIST_ENTRY KCBUoWListHead;/* 0x70 8 */ union { struct _LIST_ENTRY DelayQueueEntry;/* 0x78 8 */ volatile unsigned char* Stolen;/* 0x78 4 */ };/* 0x78 8 */ /* ── cacheline 2 boundary (128 bytes) ── */ struct _CM_TRANS* TransKCBOwner;/* 0x80 4 */ struct _CM_INTENT_LOCK KCBLock;/* 0x84 8 */ struct _CM_INTENT_LOCK KeyLock;/* 0x8c 8 */ struct _CHILD_LIST TransValueCache;/* 0x94 8 */ struct _CM_TRANS* TransValueListOwner;/* 0x9c 4 */ union { struct _UNICODE_STRING* FullKCBName;/* 0xa0 4 */ struct { unsigned long FullKCBNameStale : 1;/* 0xa0:0 4 */ unsigned long Reserved : 31;/* 0xa0:1 4 */ };/* 0xa0 4 */ };/* 0xa0 4 */ /* 4 bytes padding */ unsigned __int64 SequenceNumber;/* 0xa8 8 */};size 176 (0xb0)53 members1 hole (4 bytes)padding 03 cachelines
Used in (7)