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
|