x64x86arm64ia64 / ntdllntoskrnl

_CM_KEY_CONTROL_BLOCK

← 10.0.28000.3231 22 builds latest →
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 {
/* 4 bytes padding */
unsigned long KeyCell;/* 0x28 4 */
};/* 0x10 28 */
};/* 0x10 32 */
union {
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 */
union {
unsigned long HashKey;/* 0x70 4 */
unsigned long SubKeyCount;/* 0x70 4 */
};/* 0x70 8 */
union {
};/* 0x78 16 */
/* ── cacheline 2 boundary (128 bytes) ── */
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) ── */
char* RealKeyName;/* 0xc8 8 */
union {
volatile unsigned char* Stolen;/* 0xe0 8 */
};/* 0xe0 16 */
/* ── cacheline 4 boundary (256 bytes) ── */
union {
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)