typedef struct _HHIVE                                                           // 50 / 50 elements; 0x0400 / 0x0600 Bytes
{
    ULONG32                     Signature;                                      // 0x0000 / 0x0000; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING0_[4];                                  // ------ / 0x0004; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    PCELL_DATA                  (WINAPI * GetCellRoutine)       (struct _HHIVE *,
                                                                 ULONG32,
                                                                 PHV_GET_CELL_CONTEXT);
                                                                                // 0x0004 / 0x0008; 0x0004 / 0x0008 Bytes
    void                        (WINAPI * ReleaseCellRoutine)   (PHHIVE,
                                                                 PHV_GET_CELL_CONTEXT);
                                                                                // 0x0008 / 0x0010; 0x0004 / 0x0008 Bytes
    PVOID                       (WINAPI * Allocate)             (ULONG32,
                                                                 UINT8,
                                                                 ULONG32);      // 0x000C / 0x0018; 0x0004 / 0x0008 Bytes
    void                        (WINAPI * Free)                 (PVOID,
                                                                 ULONG32);      // 0x0010 / 0x0020; 0x0004 / 0x0008 Bytes
    LONG32                      (WINAPI * FileWrite)            (PHHIVE,
                                                                 ULONG32,
                                                                 struct CMP_OFFSET_ARRAY *,
                                                                 ULONG32,
                                                                 ULONG32);      // 0x0014 / 0x0028; 0x0004 / 0x0008 Bytes
    LONG32                      (WINAPI * FileRead)             (PHHIVE,
                                                                 ULONG32,
                                                                 ULONG32,
                                                                 PVOID,
                                                                 ULONG32);      // 0x0018 / 0x0030; 0x0004 / 0x0008 Bytes
    PVOID                       HiveLoadFailure;                                // 0x001C / 0x0038; 0x0004 / 0x0008 Bytes
    PHBASE_BLOCK                BaseBlock;                                      // 0x0020 / 0x0040; 0x0004 / 0x0008 Bytes
    CMSI_RW_LOCK                FlusherLock;                                    // 0x0024 / 0x0048; 0x0004 / 0x0008 Bytes
    CMSI_RW_LOCK                WriterLock;                                     // 0x0028 / 0x0050; 0x0004 / 0x0008 Bytes
    RTL_BITMAP                  DirtyVector;                                    // 0x002C / 0x0058; 0x0008 / 0x0010 Bytes
    ULONG32                     DirtyCount;                                     // 0x0034 / 0x0068; 0x0004 / 0x0004 Bytes
    ULONG32                     DirtyAlloc;                                     // 0x0038 / 0x006C; 0x0004 / 0x0004 Bytes
    RTL_BITMAP                  UnreconciledVector;                             // 0x003C / 0x0070; 0x0008 / 0x0010 Bytes
    ULONG32                     UnreconciledCount;                              // 0x0044 / 0x0080; 0x0004 / 0x0004 Bytes
    ULONG32                     BaseBlockAlloc;                                 // 0x0048 / 0x0084; 0x0004 / 0x0004 Bytes
    ULONG32                     Cluster;                                        // 0x004C / 0x0088; 0x0004 / 0x0004 Bytes
    struct                                                                      // 3 / 3 elements; 0x0001 / 0x0001 Bytes
    {
        UINT8                   Flat                                       : 1; // 0x0050 / 0x008C; Bit:   0
        UINT8                   ReadOnly                                   : 1; // 0x0050 / 0x008C; Bit:   1
        UINT8                   Reserved                                   : 6; // 0x0050 / 0x008C; Bits:  2 -  7
    };
    UINT8                       DirtyFlag;                                      // 0x0051 / 0x008D; 0x0001 / 0x0001 Bytes
    ULONG32                     HvBinHeadersUse;                                // 0x0054 / 0x0090; 0x0004 / 0x0004 Bytes
    ULONG32                     HvFreeCellsUse;                                 // 0x0058 / 0x0094; 0x0004 / 0x0004 Bytes
    ULONG32                     HvUsedCellsUse;                                 // 0x005C / 0x0098; 0x0004 / 0x0004 Bytes
    ULONG32                     CmUsedCellsUse;                                 // 0x0060 / 0x009C; 0x0004 / 0x0004 Bytes
    ULONG32                     HiveFlags;                                      // 0x0064 / 0x00A0; 0x0004 / 0x0004 Bytes
    ULONG32                     CurrentLog;                                     // 0x0068 / 0x00A4; 0x0004 / 0x0004 Bytes
    ULONG32                     CurrentLogSequence;                             // 0x006C / 0x00A8; 0x0004 / 0x0004 Bytes
    ULONG32                     CurrentLogMinimumSequence;                      // 0x0070 / 0x00AC; 0x0004 / 0x0004 Bytes
    ULONG32                     CurrentLogOffset;                               // 0x0074 / 0x00B0; 0x0004 / 0x0004 Bytes
    ULONG32                     MinimumLogSequence;                             // 0x0078 / 0x00B4; 0x0004 / 0x0004 Bytes
    ULONG32                     LogFileSizeCap;                                 // 0x007C / 0x00B8; 0x0004 / 0x0004 Bytes
    UINT8                       LogDataPresent[2];                              // 0x0080 / 0x00BC; 0x0002 / 0x0002 Bytes
    UINT8                       PrimaryFileValid;                               // 0x0082 / 0x00BE; 0x0001 / 0x0001 Bytes
    UINT8                       BaseBlockDirty;                                 // 0x0083 / 0x00BF; 0x0001 / 0x0001 Bytes
#if !defined(_M_X64)
    UINT8                       _PADDING0_[4];                                  // 0x0084 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    LARGE_INTEGER               LastLogSwapTime;                                // 0x0088 / 0x00C0; 0x0008 / 0x0008 Bytes
    union                                                                       // 2 / 2 elements; 0x0002 / 0x0002 Bytes
    {
        struct                                                                  // 5 / 5 elements; 0x0002 / 0x0002 Bytes
        {
            UINT16              FirstLogFile                               : 3; // 0x0090 / 0x00C8; Bits:  0 -  2
            UINT16              SecondLogFile                              : 3; // 0x0090 / 0x00C8; Bits:  3 -  5
            UINT16              HeaderRecovered                            : 1; // 0x0090 / 0x00C8; Bit:   6
            UINT16              LegacyRecoveryIndicated                    : 1; // 0x0090 / 0x00C8; Bit:   7
            UINT16              RecoveryInformationReserved                : 8; // 0x0090 / 0x00C8; Bits:  8 - 15
        };
        UINT16                  RecoveryInformation;                            // 0x0090 / 0x00C8; 0x0002 / 0x0002 Bytes
    };
    UINT8                       LogEntriesRecovered[2];                         // 0x0092 / 0x00CA; 0x0002 / 0x0002 Bytes
    ULONG32                     RefreshCount;                                   // 0x0094 / 0x00CC; 0x0004 / 0x0004 Bytes
    ULONG32                     StorageTypeCount;                               // 0x0098 / 0x00D0; 0x0004 / 0x0004 Bytes
    ULONG32                     Version;                                        // 0x009C / 0x00D4; 0x0004 / 0x0004 Bytes
    HVP_VIEW_MAP                ViewMap;                                        // 0x00A0 / 0x00D8; 0x0028 / 0x0038 Bytes
    DUAL                        Storage[2];                                     // 0x00C8 / 0x0110; 0x0338 / 0x04F0 Bytes
} HHIVE, * PHHIVE;

Return to OS-specific structures/unions/enums list.
Return to OS version list.