struct CM_KEY_CONTROL_BLOCK

typedef struct _CM_KEY_CONTROL_BLOCK
{
     ULONG RefCount;
     ULONG ExtFlags: 8;
     ULONG PrivateAlloc: 1;
     ULONG Delete: 1;
     ULONG DelayedCloseIndex: 12;
     ULONG TotalLevels: 10;
     union
     {
          CM_KEY_HASH KeyHash;
          struct
          {
               ULONG ConvKey;
               PCM_KEY_HASH NextHash;
               PHHIVE KeyHive;
               ULONG KeyCell;
          };
     };
     PCM_KEY_CONTROL_BLOCK ParentKcb;
     PCM_NAME_CONTROL_BLOCK NameBlock;
     PCM_KEY_SECURITY_CACHE CachedSecurity;
     CACHED_CHILD_LIST ValueCache;
     union
     {
          PCM_INDEX_HINT_BLOCK IndexHint;
          ULONG HashKey;
          ULONG SubKeyCount;
     };
     union
     {
          LIST_ENTRY KeyBodyListHead;
          LIST_ENTRY FreeListEntry;
     };
     PCM_KEY_BODY KeyBodyArray[4];
     PVOID DelayCloseEntry;
     LARGE_INTEGER KcbLastWriteTime;
     WORD KcbMaxNameLen;
     WORD KcbMaxValueNameLen;
     ULONG KcbMaxValueDataLen;
     ULONG KcbUserFlags: 4;
     ULONG KcbVirtControlFlags: 4;
     ULONG KcbDebug: 8;
     ULONG Flags: 16;
     LIST_ENTRY KCBUoWListHead;
     PCM_TRANS TransKCBOwner;
     CM_INTENT_LOCK KCBLock;
     CM_INTENT_LOCK KeyLock;
     CHILD_LIST TransValueCache;
     PCM_TRANS TransValueListOwner;
     PUNICODE_STRING FullKCBName;
} CM_KEY_CONTROL_BLOCK, *PCM_KEY_CONTROL_BLOCK;

Windows Vista Kernel Structures