2 * PROJECT: registry manipulation library
3 * LICENSE: GPL - See COPYING in the top level directory
4 * COPYRIGHT: Copyright 2005 Filip Navara <navaraf@reactos.org>
5 * Copyright 2001 - 2005 Eric Kohl
12 #include <host/typedefs.h>
16 // Definitions copied from <ntstatus.h>
17 // We only want to include host headers, so we define them manually
18 #define STATUS_SUCCESS ((NTSTATUS)0x00000000)
19 #define STATUS_NOT_IMPLEMENTED ((NTSTATUS)0xC0000002)
20 #define STATUS_NO_MEMORY ((NTSTATUS)0xC0000017)
21 #define STATUS_INSUFFICIENT_RESOURCES ((NTSTATUS)0xC000009A)
22 #define STATUS_REGISTRY_CORRUPT ((NTSTATUS)0xC000014C)
23 #define STATUS_NOT_REGISTRY_FILE ((NTSTATUS)0xC000015C)
24 #define STATUS_REGISTRY_RECOVERED ((NTSTATUS)0x40000009)
28 #ifndef _TYPEDEFS_HOST_H
31 #define REG_OPTION_VOLATILE 1
32 #define OBJ_CASE_INSENSITIVE 0x00000040L
33 #define USHORT_MAX USHRT_MAX
37 OUT PLARGE_INTEGER CurrentTime
);
41 IN PRTL_BITMAP BitMapHeader
,
42 IN PULONG BitMapBuffer
,
43 IN ULONG SizeOfBitMap
);
47 IN PRTL_BITMAP BitMapHeader
,
48 IN ULONG NumberToFind
,
53 IN PRTL_BITMAP BitMapHeader
,
54 IN ULONG StartingIndex
,
55 IN ULONG NumberToSet
);
59 IN PRTL_BITMAP BitMapHeader
);
61 #define RtlCheckBit(BMH,BP) (((((PLONG)(BMH)->Buffer)[(BP) / 32]) >> ((BP) % 32)) & 0x1)
66 #define ROUND_UP(a,b) ((((a)+(b)-1)/(b))*(b))
67 #define ROUND_DOWN(a,b) (((a)/(b))*(b))
70 #define TAG_CM 0x68742020
79 typedef struct _EREGISTRY_HIVE
83 UNICODE_STRING HiveFileName
;
84 UNICODE_STRING LogFileName
;
85 PCM_KEY_SECURITY RootSecurityCell
;
89 } EREGISTRY_HIVE
, *PEREGISTRY_HIVE
;
101 PVOID HiveData OPTIONAL
,
102 PALLOCATE_ROUTINE Allocate
,
104 PFILE_SET_SIZE_ROUTINE FileSetSize
,
105 PFILE_WRITE_ROUTINE FileWrite
,
106 PFILE_READ_ROUTINE FileRead
,
107 PFILE_FLUSH_ROUTINE FileFlush
,
108 ULONG Cluster OPTIONAL
,
109 PUNICODE_STRING FileName
);
113 PHHIVE RegistryHive
);
118 HCELL_INDEX CellOffset
);
120 #define HvReleaseCell(h, c) \
121 if (h->ReleaseCellRoutine) h->ReleaseCellRoutine(h, c)
132 HSTORAGE_TYPE Storage
,
133 IN HCELL_INDEX Vicinity
);
137 IN PHHIVE RegistryHive
,
138 IN HCELL_INDEX CellIndex
144 HCELL_INDEX CellOffset
,
150 HCELL_INDEX CellOffset
);
155 HCELL_INDEX CellOffset
,
156 BOOLEAN HoldingLock
);
166 PHHIVE RegistryHive
);
170 PHHIVE RegistryHive
);
179 PHHIVE RegistryHive
);
189 HSTORAGE_TYPE Storage
);
192 HvpCreateHiveFreeCellList(
196 HvpHiveHeaderChecksum(
197 PHBASE_BLOCK HiveHeader
);