[HIVEBCD]:
[reactos.git] / reactos / tools / mkhive / registry.h
1 /* COPYRIGHT: See COPYING in the top level directory
2 * PROJECT: ReactOS hive maker
3 * FILE: tools/mkhive/registry.h
4 * PURPOSE: Registry code
5 */
6
7 #pragma once
8
9 typedef struct _REPARSE_POINT
10 {
11 LIST_ENTRY ListEntry;
12 PCMHIVE SourceHive;
13 HCELL_INDEX SourceKeyCellOffset;
14 PCMHIVE DestinationHive;
15 HCELL_INDEX DestinationKeyCellOffset;
16 } REPARSE_POINT, *PREPARSE_POINT;
17
18 typedef struct _MEMKEY
19 {
20 /* Information on hard disk structure */
21 HCELL_INDEX KeyCellOffset;
22 PCMHIVE RegistryHive;
23 } MEMKEY, *PMEMKEY;
24
25 #define HKEY_TO_MEMKEY(hKey) ((PMEMKEY)(hKey))
26 #define MEMKEY_TO_HKEY(memKey) ((HKEY)(memKey))
27
28 extern CMHIVE DefaultHive; /* \Registry\User\.DEFAULT */
29 extern CMHIVE SamHive; /* \Registry\Machine\SAM */
30 extern CMHIVE SecurityHive; /* \Registry\Machine\SECURITY */
31 extern CMHIVE SoftwareHive; /* \Registry\Machine\SOFTWARE */
32 extern CMHIVE SystemHive; /* \Registry\Machine\SYSTEM */
33 extern CMHIVE BcdHive; /* \Registry\Machine\BCD00000000 */
34
35 #define ERROR_SUCCESS 0L
36 #define ERROR_UNSUCCESSFUL 1L
37 #define ERROR_OUTOFMEMORY 14L
38 #define ERROR_INVALID_PARAMETER 87L
39 #define ERROR_MORE_DATA 234L
40 #define ERROR_NO_MORE_ITEMS 259L
41
42 #define REG_NONE 0
43 #define REG_SZ 1
44 #define REG_EXPAND_SZ 2
45 #define REG_BINARY 3
46 #define REG_DWORD 4
47 #define REG_DWORD_BIG_ENDIAN 5
48 #define REG_DWORD_LITTLE_ENDIAN 4
49 #define REG_LINK 6
50 #define REG_MULTI_SZ 7
51 #define REG_RESOURCE_LIST 8
52 #define REG_FULL_RESOURCE_DESCRIPTOR 9
53 #define REG_RESOURCE_REQUIREMENTS_LIST 10
54
55 VOID
56 RegInitializeRegistry(VOID);
57
58 VOID
59 RegShutdownRegistry(VOID);
60
61 /* EOF */