typedef struct _HHIVE
{
    unsigned long Signature;
    CELL_DATA *(*GetCellRoutine)(HHIVE *, unsigned long);
    void (*ReleaseCellRoutine)(HHIVE *, unsigned long);
    void *(*Allocate)(unsigned long, unsigned char, unsigned long);
    void (*Free)(void *, unsigned long);
    unsigned char (*FileSetSize)(HHIVE *, unsigned long, unsigned long, unsigned long);
    unsigned char (*FileWrite)(HHIVE *, unsigned long, CMP_OFFSET_ARRAY *, unsigned long, unsigned long *);
    unsigned char (*FileRead)(HHIVE *, unsigned long, unsigned long *, void *, unsigned long);
    unsigned char (*FileFlush)(HHIVE *, unsigned long, LARGE_INTEGER *, unsigned long);
    void *HiveLoadFailure;
    HBASE_BLOCK *BaseBlock;
    RTL_BITMAP DirtyVector;
    unsigned long DirtyCount;
    unsigned long DirtyAlloc;
    unsigned long BaseBlockAlloc;
    unsigned long Cluster;
    unsigned char Flat;
    unsigned char ReadOnly;
    unsigned char DirtyFlag;
    unsigned long HvBinHeadersUse;
    unsigned long HvFreeCellsUse;
    unsigned long HvUsedCellsUse;
    unsigned long CmUsedCellsUse;
    unsigned long HiveFlags;
    unsigned long CurrentLog;
    unsigned long LogSize[2];
    unsigned long RefreshCount;
    unsigned long StorageTypeCount;
    unsigned long Version;
    DUAL Storage[2];
} HHIVE, *PHHIVE;