Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygencmdata.h
Go to the documentation of this file.
00001 /* 00002 * PROJECT: registry manipulation library 00003 * LICENSE: GPL - See COPYING in the top level directory 00004 * COPYRIGHT: Copyright 2005 Filip Navara <navaraf@reactos.org> 00005 * Copyright 2001 - 2005 Eric Kohl 00006 */ 00007 00008 #pragma once 00009 00010 #define REG_INIT_BLOCK_LIST_SIZE 32 00011 #define REG_INIT_HASH_TABLE_SIZE 3 00012 #define REG_EXTEND_HASH_TABLE_SIZE 4 00013 #define REG_VALUE_LIST_CELL_MULTIPLE 4 00014 00015 // 00016 // Key Types 00017 // 00018 #define CM_KEY_INDEX_ROOT 0x6972 00019 #define CM_KEY_INDEX_LEAF 0x696c 00020 #define CM_KEY_FAST_LEAF 0x666c 00021 #define CM_KEY_HASH_LEAF 0x686c 00022 00023 // 00024 // Key Signatures 00025 // 00026 #define CM_KEY_NODE_SIGNATURE 0x6B6E 00027 #define CM_LINK_NODE_SIGNATURE 0x6B6C 00028 #define CM_KEY_VALUE_SIGNATURE 0x6B76 00029 00030 // 00031 // CM_KEY_NODE Flags 00032 // 00033 #define KEY_IS_VOLATILE 0x01 00034 #define KEY_HIVE_EXIT 0x02 00035 #define KEY_HIVE_ENTRY 0x04 00036 #define KEY_NO_DELETE 0x08 00037 #define KEY_SYM_LINK 0x10 00038 #define KEY_COMP_NAME 0x20 00039 #define KEY_PREFEF_HANDLE 0x40 00040 #define KEY_VIRT_MIRRORED 0x80 00041 #define KEY_VIRT_TARGET 0x100 00042 #define KEY_VIRTUAL_STORE 0x200 00043 00044 // 00045 // CM_KEY_VALUE Flags 00046 // 00047 #define VALUE_COMP_NAME 0x0001 00048 00049 #include <pshpack1.h> 00050 00051 // 00052 // For memory-mapped Hives 00053 // 00054 typedef struct _CM_VIEW_OF_FILE 00055 { 00056 LIST_ENTRY LRUViewList; 00057 LIST_ENTRY PinViewList; 00058 ULONG FileOffset; 00059 ULONG Size; 00060 PULONG_PTR ViewAddress; 00061 PVOID Bcb; 00062 ULONG UseCount; 00063 } CM_VIEW_OF_FILE, *PCM_VIEW_OF_FILE; 00064 00065 // 00066 // Children of Key Notes 00067 // 00068 typedef struct _CHILD_LIST 00069 { 00070 ULONG Count; 00071 HCELL_INDEX List; 00072 } CHILD_LIST, *PCHILD_LIST; 00073 00074 // 00075 // Node Key Reference to Parents 00076 // 00077 typedef struct _CM_KEY_REFERENCE 00078 { 00079 HCELL_INDEX KeyCell; 00080 PHHIVE KeyHive; 00081 } CM_KEY_REFERENCE, *PCM_KEY_REFERENCE; 00082 00083 // 00084 // Node Key 00085 // 00086 typedef struct _CM_KEY_NODE 00087 { 00088 USHORT Signature; 00089 USHORT Flags; 00090 LARGE_INTEGER LastWriteTime; 00091 ULONG Spare; 00092 HCELL_INDEX Parent; 00093 ULONG SubKeyCounts[HTYPE_COUNT]; 00094 union 00095 { 00096 struct 00097 { 00098 HCELL_INDEX SubKeyLists[HTYPE_COUNT]; 00099 CHILD_LIST ValueList; 00100 }; 00101 CM_KEY_REFERENCE ChildHiveReference; 00102 }; 00103 HCELL_INDEX Security; 00104 HCELL_INDEX Class; 00105 ULONG MaxNameLen; 00106 ULONG MaxClassLen; 00107 ULONG MaxValueNameLen; 00108 ULONG MaxValueDataLen; 00109 ULONG WorkVar; 00110 USHORT NameLength; 00111 USHORT ClassLength; 00112 WCHAR Name[ANYSIZE_ARRAY]; 00113 } CM_KEY_NODE, *PCM_KEY_NODE; 00114 00115 // 00116 // Value List 00117 // 00118 typedef struct _VALUE_LIST_CELL 00119 { 00120 HCELL_INDEX ValueOffset[ANYSIZE_ARRAY]; 00121 } VALUE_LIST_CELL, *PVALUE_LIST_CELL; 00122 00123 // 00124 // Value Key 00125 // 00126 typedef struct _CM_KEY_VALUE 00127 { 00128 USHORT Signature; 00129 USHORT NameLength; 00130 ULONG DataLength; 00131 HCELL_INDEX Data; 00132 ULONG Type; 00133 USHORT Flags; 00134 USHORT Unused1; 00135 WCHAR Name[ANYSIZE_ARRAY]; 00136 } CM_KEY_VALUE, *PCM_KEY_VALUE; 00137 00138 // 00139 // Security Key 00140 // 00141 typedef struct _CM_KEY_SECURITY 00142 { 00143 USHORT Signature; 00144 USHORT Reserved; 00145 HCELL_INDEX Flink; 00146 HCELL_INDEX Blink; 00147 ULONG ReferenceCount; 00148 ULONG DescriptorLength; 00149 //SECURITY_DESCRIPTOR_RELATIVE Descriptor; 00150 UCHAR Data[ANYSIZE_ARRAY]; 00151 } CM_KEY_SECURITY, *PCM_KEY_SECURITY; 00152 00153 #include <poppack.h> 00154 00155 // 00156 // Generic Index Entry 00157 // 00158 typedef struct _CM_INDEX 00159 { 00160 HCELL_INDEX Cell; 00161 union 00162 { 00163 UCHAR NameHint[4]; 00164 ULONG HashKey; 00165 }; 00166 } CM_INDEX, *PCM_INDEX; 00167 00168 // 00169 // Key Index 00170 // 00171 typedef struct _CM_KEY_INDEX 00172 { 00173 USHORT Signature; 00174 USHORT Count; 00175 HCELL_INDEX List[ANYSIZE_ARRAY]; 00176 } CM_KEY_INDEX, *PCM_KEY_INDEX; 00177 00178 // 00179 // Fast/Hash Key Index 00180 // 00181 typedef struct _CM_KEY_FAST_INDEX 00182 { 00183 USHORT Signature; 00184 USHORT Count; 00185 CM_INDEX List[ANYSIZE_ARRAY]; 00186 } CM_KEY_FAST_INDEX, *PCM_KEY_FAST_INDEX; 00187 00188 // 00189 // Cell Data 00190 // 00191 typedef struct _CELL_DATA 00192 { 00193 union 00194 { 00195 CM_KEY_NODE KeyNode; 00196 CM_KEY_VALUE KeyValue; 00197 CM_KEY_SECURITY KeySecurity; 00198 CM_KEY_INDEX KeyIndex; 00199 HCELL_INDEX KeyList[ANYSIZE_ARRAY]; 00200 WCHAR KeyString[ANYSIZE_ARRAY]; 00201 } u; 00202 } CELL_DATA, *PCELL_DATA; Generated on Sun May 27 2012 04:35:56 for ReactOS by
1.7.6.1
|