//0xc00 bytes (sizeof)
struct _CMHIVE
{
    struct _HHIVE Hive;                                                     //0x0
    VOID* FileHandles[6];                                                   //0x400
    struct _LIST_ENTRY NotifyList;                                          //0x418
    struct _LIST_ENTRY HiveList;                                            //0x420
    struct _LIST_ENTRY PreloadedHiveList;                                   //0x428
    struct _EX_RUNDOWN_REF HiveRundown;                                     //0x430
    struct _CM_KEY_HASH_TABLE_ENTRY* KcbCacheTable;                         //0x434
    ULONG KcbCacheTableSize;                                                //0x438
    struct _CM_KEY_HASH_TABLE_ENTRY* DeletedKcbTable;                       //0x43c
    ULONG DeletedKcbTableSize;                                              //0x440
    ULONG Identity;                                                         //0x444
    struct _CMSI_RW_LOCK HiveLock;                                          //0x448
    struct _RTL_BITMAP FlushDirtyVector;                                    //0x44c
    ULONG FlushDirtyVectorSize;                                             //0x454
    struct CMP_OFFSET_ARRAY* FlushLogEntryOffsetArray;                      //0x458
    ULONG FlushLogEntryOffsetArrayCount;                                    //0x45c
    ULONG FlushLogEntrySize;                                                //0x460
    ULONG FlushHiveTruncated;                                               //0x464
    UCHAR FlushBaseBlockDirty;                                              //0x468
    struct _RTL_BITMAP CapturedUnreconciledVector;                          //0x46c
    ULONG CapturedUnreconciledVectorSize;                                   //0x474
    struct CMP_OFFSET_ARRAY* UnreconciledOffsetArray;                       //0x478
    ULONG UnreconciledOffsetArrayCount;                                     //0x47c
    struct _HBASE_BLOCK* UnreconciledBaseBlock;                             //0x480
    struct _EX_PUSH_LOCK SecurityLock;                                      //0x484
    ULONG LastShrinkHiveSize;                                               //0x488
    union _LARGE_INTEGER ActualFileSize;                                    //0x490
    union _LARGE_INTEGER LogFileSizes[2];                                   //0x498
    struct _UNICODE_STRING FileFullPath;                                    //0x4a8
    struct _UNICODE_STRING FileUserName;                                    //0x4b0
    struct _UNICODE_STRING HiveRootPath;                                    //0x4b8
    ULONG SecurityCount;                                                    //0x4c0
    ULONG SecurityCacheSize;                                                //0x4c4
    LONG SecurityHitHint;                                                   //0x4c8
    struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache;                     //0x4cc
    struct _LIST_ENTRY SecurityHash[64];                                    //0x4d0
    ULONG UnloadEventCount;                                                 //0x6d0
    struct _KEVENT** UnloadEventArray;                                      //0x6d4
    struct _CM_KEY_CONTROL_BLOCK* RootKcb;                                  //0x6d8
    UCHAR Frozen;                                                           //0x6dc
    struct _CM_WORKITEM* UnloadWorkItem;                                    //0x6e0
    struct _CM_WORKITEM UnloadWorkItemHolder;                               //0x6e4
    struct _CM_DIRTY_VECTOR_LOG DirtyVectorLog;                             //0x6f8
    ULONG Flags;                                                            //0x980
    struct _LIST_ENTRY TrustClassEntry;                                     //0x984
    ULONGLONG DirtyTime;                                                    //0x990
    ULONGLONG UnreconciledTime;                                             //0x998
    struct _CM_RM* CmRm;                                                    //0x9a0
    ULONG CmRmInitFailPoint;                                                //0x9a4
    LONG CmRmInitFailStatus;                                                //0x9a8
    struct _KTHREAD* CreatorOwner;                                          //0x9ac
    struct _KTHREAD* RundownThread;                                         //0x9b0
    union _LARGE_INTEGER LastWriteTime;                                     //0x9b8
    struct _HIVE_WRITE_WAIT_QUEUE FlushQueue;                               //0x9c0
    struct _HIVE_WRITE_WAIT_QUEUE ReconcileQueue;                           //0x9c8
    union
    {
        ULONG FlushFlags;                                                   //0x9d0
        struct
        {
            ULONG PrimaryFilePurged:1;                                      //0x9d0
            ULONG DiskFileBad:1;                                            //0x9d0
        };
    };
    ULONG PrimaryFileSizeBeforeLastFlush;                                   //0x9d4
    volatile LONG ReferenceCount;                                           //0x9d8
    LONG UnloadHistoryIndex;                                                //0x9dc
    ULONG UnloadHistory[128];                                               //0x9e0
    ULONG BootStart;                                                        //0xbe0
    ULONG UnaccessedStart;                                                  //0xbe4
    ULONG UnaccessedEnd;                                                    //0xbe8
    ULONG LoadedKeyCount;                                                   //0xbec
    volatile ULONG HandleClosePending;                                      //0xbf0
    struct _EX_PUSH_LOCK HandleClosePendingEvent;                           //0xbf4
    UCHAR FinalFlushSucceeded;                                              //0xbf8
    struct _CMP_VOLUME_CONTEXT* VolumeContext;                              //0xbfc
};