ReactOS  0.4.14-dev-77-gd9e7c48
cmdata.h
Go to the documentation of this file.
1 /*
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
6  */
7 
8 #pragma once
9 
10 //
11 // Key Types
12 //
13 #define CM_KEY_INDEX_ROOT 0x6972 // "ri"
14 #define CM_KEY_INDEX_LEAF 0x696C // "li"
15 #define CM_KEY_FAST_LEAF 0x666C // "lf"
16 #define CM_KEY_HASH_LEAF 0x686C // "lh"
17 
18 //
19 // Key Signatures
20 //
21 #define CM_KEY_NODE_SIGNATURE 0x6B6E // "nk"
22 #define CM_LINK_NODE_SIGNATURE 0x6B6C // "lk"
23 #define CM_KEY_SECURITY_SIGNATURE 0x6B73 // "sk"
24 #define CM_KEY_VALUE_SIGNATURE 0x6B76 // "vk"
25 #define CM_BIG_DATA_SIGNATURE 0x6264 // "db"
26 
27 //
28 // CM_KEY_NODE Flags
29 //
30 #define KEY_IS_VOLATILE 0x0001
31 #define KEY_HIVE_EXIT 0x0002
32 #define KEY_HIVE_ENTRY 0x0004
33 #define KEY_NO_DELETE 0x0008
34 #define KEY_SYM_LINK 0x0010
35 #define KEY_COMP_NAME 0x0020
36 #define KEY_PREDEF_HANDLE 0x0040
37 #define KEY_VIRT_MIRRORED 0x0080
38 #define KEY_VIRT_TARGET 0x0100
39 #define KEY_VIRTUAL_STORE 0x0200
40 
41 //
42 // CM_KEY_VALUE Flags
43 //
44 #define VALUE_COMP_NAME 0x0001
45 
46 //
47 // CM_KEY_VALUE Types
48 //
49 #define CM_KEY_VALUE_SMALL 0x4
50 #define CM_KEY_VALUE_BIG 0x3FD8
51 #define CM_KEY_VALUE_SPECIAL_SIZE 0x80000000
52 
53 #include <pshpack1.h>
54 
55 //
56 // For memory-mapped Hives
57 //
58 typedef struct _CM_VIEW_OF_FILE
59 {
68 
69 //
70 // Children of Key Nodes
71 //
72 typedef struct _CHILD_LIST
73 {
77 
78 //
79 // Node Key Reference to Parents
80 //
81 typedef struct _CM_KEY_REFERENCE
82 {
86 
87 //
88 // Node Key
89 //
90 typedef struct _CM_KEY_NODE
91 {
98  union
99  {
100  struct
101  {
104  };
106  };
118 
119 //
120 // Value Key
121 //
122 typedef struct _CM_KEY_VALUE
123 {
133 
134 //
135 // Security Key
136 //
137 typedef struct _CM_KEY_SECURITY
138 {
147 
148 //
149 // Big Value Key
150 //
151 typedef struct _CM_BIG_DATA
152 {
157 
158 #include <poppack.h>
159 
160 //
161 // Generic Index Entry
162 //
163 typedef struct _CM_INDEX
164 {
166  union
167  {
170  };
171 } CM_INDEX, *PCM_INDEX;
172 
173 //
174 // Key Index
175 //
176 typedef struct _CM_KEY_INDEX
177 {
182 
183 //
184 // Fast/Hash Key Index
185 //
186 typedef struct _CM_KEY_FAST_INDEX
187 {
192 
193 //
194 // Cell Data
195 //
196 typedef struct _CELL_DATA
197 {
198  union
199  {
207  } u;
struct _CM_VIEW_OF_FILE CM_VIEW_OF_FILE
HCELL_INDEX List
Definition: cmdata.h:155
HCELL_INDEX Data
Definition: cmdata.h:127
ULONG HashKey
Definition: cmdata.h:169
CM_KEY_NODE KeyNode
Definition: cmdata.h:200
struct _CM_KEY_INDEX * PCM_KEY_INDEX
CM_KEY_SECURITY KeySecurity
Definition: cmdata.h:202
HCELL_INDEX List
Definition: cmdata.h:75
struct _CM_INDEX CM_INDEX
HCELL_INDEX Cell
Definition: cmdata.h:165
USHORT Flags
Definition: cmdata.h:129
#define ANYSIZE_ARRAY
Definition: typedefs.h:45
ULONG FileOffset
Definition: cmdata.h:62
ULONG MaxValueNameLen
Definition: cmdata.h:111
USHORT ClassLength
Definition: cmdata.h:115
HCELL_INDEX Flink
Definition: cmdata.h:141
CM_KEY_VALUE KeyValue
Definition: cmdata.h:201
#define HTYPE_COUNT
Definition: hivedata.h:71
SECURITY_DESCRIPTOR_RELATIVE Descriptor
Definition: cmdata.h:145
ULONG Size
Definition: cmdata.h:63
struct _CM_KEY_NODE CM_KEY_NODE
CM_KEY_INDEX KeyIndex
Definition: cmdata.h:203
HCELL_INDEX KeyCell
Definition: cmdata.h:83
PULONG_PTR ViewAddress
Definition: cmdata.h:64
CM_KEY_REFERENCE ChildHiveReference
Definition: cmdata.h:105
struct _CM_KEY_SECURITY CM_KEY_SECURITY
USHORT NameLength
Definition: cmdata.h:114
struct _CM_BIG_DATA * PCM_BIG_DATA
USHORT Count
Definition: cmdata.h:154
struct _CM_KEY_SECURITY * PCM_KEY_SECURITY
ULONG DataLength
Definition: cmdata.h:126
ULONG MaxNameLen
Definition: cmdata.h:109
struct _CM_KEY_FAST_INDEX CM_KEY_FAST_INDEX
HCELL_INDEX Class
Definition: cmdata.h:108
CM_BIG_DATA ValueData
Definition: cmdata.h:204
struct _CELL_DATA * PCELL_DATA
USHORT NameLength
Definition: cmdata.h:125
USHORT Signature
Definition: cmdata.h:178
struct _CHILD_LIST * PCHILD_LIST
HCELL_INDEX SubKeyLists[HTYPE_COUNT]
Definition: cmdata.h:102
struct _CM_KEY_NODE * PCM_KEY_NODE
UCHAR NameHint[4]
Definition: cmdata.h:168
struct _CM_VIEW_OF_FILE * PCM_VIEW_OF_FILE
CM_INDEX List[ANYSIZE_ARRAY]
Definition: cmdata.h:190
struct _CM_KEY_FAST_INDEX * PCM_KEY_FAST_INDEX
ULONG ReferenceCount
Definition: cmdata.h:143
struct _CM_INDEX * PCM_INDEX
ULONG UseCount
Definition: cmdata.h:66
CHILD_LIST ValueList
Definition: cmdata.h:103
USHORT Count
Definition: cmdata.h:179
struct _CM_KEY_VALUE CM_KEY_VALUE
__wchar_t WCHAR
Definition: xmlstorage.h:180
struct _CM_KEY_REFERENCE CM_KEY_REFERENCE
HCELL_INDEX Parent
Definition: cmdata.h:96
USHORT Signature
Definition: cmdata.h:188
ULONG HCELL_INDEX
Definition: hivedata.h:80
ULONG SubKeyCounts[HTYPE_COUNT]
Definition: cmdata.h:97
USHORT Signature
Definition: cmdata.h:92
HCELL_INDEX KeyList[ANYSIZE_ARRAY]
Definition: cmdata.h:205
struct _CELL_DATA CELL_DATA
USHORT Signature
Definition: cmdata.h:124
unsigned char UCHAR
Definition: xmlstorage.h:181
struct _CM_KEY_INDEX CM_KEY_INDEX
struct _CHILD_LIST CHILD_LIST
LARGE_INTEGER LastWriteTime
Definition: cmdata.h:94
Definition: typedefs.h:117
ULONG DescriptorLength
Definition: cmdata.h:144
ULONG Count
Definition: cmdata.h:74
USHORT Signature
Definition: cmdata.h:153
HCELL_INDEX Security
Definition: cmdata.h:107
struct _CM_BIG_DATA CM_BIG_DATA
HCELL_INDEX List[ANYSIZE_ARRAY]
Definition: cmdata.h:180
ULONG MaxClassLen
Definition: cmdata.h:110
unsigned short USHORT
Definition: pedump.c:61
struct _CM_KEY_VALUE * PCM_KEY_VALUE
ULONG Type
Definition: cmdata.h:128
ULONG WorkVar
Definition: cmdata.h:113
WCHAR KeyString[ANYSIZE_ARRAY]
Definition: cmdata.h:206
union _CELL_DATA::@3902 u
ULONG MaxValueDataLen
Definition: cmdata.h:112
USHORT Reserved
Definition: cmdata.h:140
USHORT Spare
Definition: cmdata.h:130
USHORT Signature
Definition: cmdata.h:139
unsigned int ULONG
Definition: retypes.h:1
struct _CM_KEY_REFERENCE * PCM_KEY_REFERENCE
uint32_t * PULONG_PTR
Definition: typedefs.h:63
ULONG Spare
Definition: cmdata.h:95
LIST_ENTRY LRUViewList
Definition: cmdata.h:60
PHHIVE KeyHive
Definition: cmdata.h:84
HCELL_INDEX Blink
Definition: cmdata.h:142
USHORT Flags
Definition: cmdata.h:93
LIST_ENTRY PinViewList
Definition: cmdata.h:61