Data Structures |
| struct | PHBASE_BLOCK |
| struct | PHBIN |
| struct | PHCELL |
| struct | PHMAP_ENTRY |
| struct | PHMAP_TABLE |
| struct | PHMAP_DIRECTORY |
| struct | PDUAL |
| struct | PHHIVE |
Defines |
| #define | HINIT_CREATE 0 |
| #define | HINIT_MEMORY 1 |
| #define | HINIT_FILE 2 |
| #define | HINIT_MEMORY_INPLACE 3 |
| #define | HINIT_FLAT 4 |
| #define | HINIT_MAPFILE 5 |
| #define | HIVE_VOLATILE 1 |
| #define | HIVE_NOLAZYFLUSH 2 |
| #define | HIVE_HAS_BEEN_REPLACED 4 |
| #define | HIVE_HAS_BEEN_FREED 8 |
| #define | HIVE_UNKNOWN 0x10 |
| #define | HIVE_IS_UNLOADING 0x20 |
| #define | HFILE_TYPE_PRIMARY 0 |
| #define | HFILE_TYPE_ALTERNATE 1 |
| #define | HFILE_TYPE_LOG 2 |
| #define | HFILE_TYPE_EXTERNAL 3 |
| #define | HFILE_TYPE_MAX 4 |
| #define | HBLOCK_SIZE 0x1000 |
| #define | HSECTOR_SIZE 0x200 |
| #define | HSECTOR_COUNT 8 |
| #define | HV_BLOCK_SIZE 4096 |
| #define | HV_LOG_HEADER_SIZE FIELD_OFFSET(HBASE_BLOCK, Reserved2) |
| #define | HV_SIGNATURE 0x66676572 |
| #define | HV_BIN_SIGNATURE 0x6e696268 |
| #define | HSYS_MAJOR 1 |
| #define | HSYS_MINOR 3 |
| #define | HSYS_WHISTLER_BETA1 4 |
| #define | HSYS_WHISTLER 5 |
| #define | HSYS_MINOR_SUPPORTED HSYS_WHISTLER |
| #define | HBASE_FORMAT_MEMORY 1 |
| #define | HTYPE_COUNT 2 |
HCELL_INDEX |
A handle to cell index. The highest bit specifies the cell storage and the other bits specify index into the hive file. The value HCELL_NULL (-1) is reserved for marking invalid cells.
|
| #define | HCELL_NIL MAXULONG |
| #define | HCELL_CACHED 1 |
| #define | HCELL_TYPE_MASK 0x80000000 |
| #define | HCELL_BLOCK_MASK 0x7ffff000 |
| #define | HCELL_OFFSET_MASK 0x00000fff |
| #define | HCELL_TYPE_SHIFT 31 |
| #define | HCELL_BLOCK_SHIFT 12 |
| #define | HCELL_OFFSET_SHIFT 0 |
| #define | HvGetCellType(Cell) ((ULONG)((Cell & HCELL_TYPE_MASK) >> HCELL_TYPE_SHIFT)) |
| #define | HvGetCellBlock(Cell) ((ULONG)((Cell & HCELL_BLOCK_MASK) >> HCELL_BLOCK_SHIFT)) |
| enum | HSTORAGE_TYPE { Stable = 0,
Volatile = 1
} |
| typedef ULONG | HCELL_INDEX |
| typedef ULONG * | PHCELL_INDEX |
HBASE_BLOCK |
On-disk header for registry hive file.
|
| #define | IsFreeCell(Cell) (Cell->Size >= 0) |
| #define | IsUsedCell(Cell) (Cell->Size < 0) |
| typedef struct _CELL_DATA *CMAPI * | PGET_CELL_ROUTINE (struct _HHIVE *Hive, HCELL_INDEX Cell) |
| typedef VOID(CMAPI * | PRELEASE_CELL_ROUTINE )(struct _HHIVE *Hive, HCELL_INDEX Cell) |
| typedef PVOID(CMAPI * | PALLOCATE_ROUTINE )(SIZE_T Size, BOOLEAN Paged, ULONG Tag) |
| typedef VOID(CMAPI * | PFREE_ROUTINE )(PVOID Ptr, ULONG Quota) |
| typedef BOOLEAN(CMAPI * | PFILE_READ_ROUTINE )(struct _HHIVE *RegistryHive, ULONG FileType, PULONG FileOffset, PVOID Buffer, SIZE_T BufferLength) |
| typedef BOOLEAN(CMAPI * | PFILE_WRITE_ROUTINE )(struct _HHIVE *RegistryHive, ULONG FileType, PULONG FileOffset, PVOID Buffer, SIZE_T BufferLength) |
| typedef BOOLEAN(CMAPI * | PFILE_SET_SIZE_ROUTINE )(struct _HHIVE *RegistryHive, ULONG FileType, ULONG FileSize, ULONG OldfileSize) |
| typedef BOOLEAN(CMAPI * | PFILE_FLUSH_ROUTINE )(struct _HHIVE *RegistryHive, ULONG FileType, PLARGE_INTEGER FileOffset, ULONG Length) |