1 ////////////////////////////////////////////////////////////////////
2 // Copyright (C) Alexander Telyatnikov, Ivan Keliukh, Yegor Anchishkin, SKIF Software, 1999-2013. Kiev, Ukraine
3 // All rights reserved
4 // This file was released under the GPLv2 on June 2015.
5 ////////////////////////////////////////////////////////////////////
6 
7 #ifndef __DWUDF_REGISTRY__H__
8 #define __DWUDF_REGISTRY__H__
9 
10 #define         DWN_MANAGER_SVC_NAME        "DwUdfMgr"
11 #define         DWN_MANAGER_PIPE_NAME       "\\\\.\\pipe\\DwUdfManager"
12 
13 #define UDF_SERVICE                         TEXT("DwUdf")
14 #define CDRW_SERVICE                        TEXT("DwCdrw")
15 
16 #define         UDF_KEY                     TEXT("Software\\DVD Write Now\\UDF")
17 #define         CDRW_SERVICE_PATH           TEXT("SYSTEM\\CurrentControlSet\\Services\\") CDRW_SERVICE
18 
19 #define         UDF_SERVICE_PATH            TEXT("SYSTEM\\CurrentControlSet\\Services\\") UDF_SERVICE
20 #define         UDF_SERVICE_PATH_W          L"SYSTEM\\CurrentControlSet\\Services\\DwUdf"
21 
22 #define         UDF_SERVICE_PARAM_PATH      TEXT("SYSTEM\\CurrentControlSet\\Services\\DwUdf\\Parameters")
23 #define         UDF_SERVICE_PARAM_PATH_W    L"SYSTEM\\CurrentControlSet\\Services\\DwUdf\\Parameters"
24 
25 #define         UDF_SERVICE_PATH_DEAULT     TEXT("SYSTEM\\CurrentControlSet\\Services\\DwUdf\\Parameters_Default")
26 #define         UDF_SERVICE_PATH_DEAULT_W   L"SYSTEM\\CurrentControlSet\\Services\\DwUdf\\Parameters_Default"
27 
28 #define         CDROM_CLASS_PATH            TEXT("SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E965-E325-11CE-BFC1-08002BE10318}")
29 #define         REG_UPPER_FILTER_NAME       TEXT("UpperFilters")
30 
31 #define         UDF_FS_NAME                 L"\\Udf"
32 #define         UDF_FS_NAME_CD              L"\\UdfCd"
33 #define         UDF_FS_NAME_HDD             L"\\UdfHdd"
34 //#define         UDF_FS_NAME_VIRT            L"\\UdfVirt"
35 #define         UDF_FS_NAME_OTHER           L"\\UdfOther"
36 #define         UDF_FS_NAME_TAPE            L"\\UdfTape"
37 
38 #define         UDF_DOS_FS_NAME             L"\\DosDevices\\DwUdf"
39 #define         UDF_DOS_FS_NAME_USER        "\\\\.\\DwUdf"
40 
41 #define         CDFS_REC_DEVICE_OBJECT_NAME L"\\CdfsRecognizer"
42 #define         CDFS_DEVICE_OBJECT_NAME     L"\\Cdfs"
43 #define         UDFS_REC_DEVICE_OBJECT_NAME L"\\UdfsCdromRecognizer"
44 #define         UDFS_DEVICE_OBJECT_NAME     L"\\UdfsCdrom"
45 #define         UDFSD_REC_DEVICE_OBJECT_NAME L"\\UdfsDiskRecognizer"
46 #define         UDFSD_DEVICE_OBJECT_NAME     L"\\UdfsDisk"
47 
48 #define         UDF_ROOTDIR_NAME            L"\\"
49 #define         UDF_SN_NT_SYM_LINK          L"$UDF NT SymLink"
50 
51 #ifndef PRETEND_NTFS
52 #define         UDF_FS_TITLE_DVDRAM         L"UDF-DVDRAM"
53 #define         UDF_FS_TITLE_DVDpRW         L"UDF-DVD+RW"
54 #define         UDF_FS_TITLE_DVDpR          L"UDF-DVD+R"
55 #define         UDF_FS_TITLE_DVDRW          L"UDF-DVDRW"
56 #define         UDF_FS_TITLE_DVDR           L"UDF-DVDR"
57 #define         UDF_FS_TITLE_DVDROM         L"UDF-DVDROM"
58 #define         UDF_FS_TITLE_CDRW           L"UDF-CDRW"
59 #define         UDF_FS_TITLE_CDR            L"UDF-CDR"
60 #define         UDF_FS_TITLE_CDROM          L"UDF-CDROM"
61 #define         UDF_FS_TITLE_HDD            L"UDF"
62 #else  //PRETEND_NTFS
63 #define         UDF_FS_TITLE_DVDRAM         L"NTFS"
64 #define         UDF_FS_TITLE_DVDpR          L"NTFS"
65 #define         UDF_FS_TITLE_DVDpR          L"NTFS"
66 #define         UDF_FS_TITLE_DVDRW          L"NTFS"
67 #define         UDF_FS_TITLE_DVDR           L"NTFS"
68 #define         UDF_FS_TITLE_DVDROM         L"NTFS"
69 #define         UDF_FS_TITLE_CDRW           L"NTFS"
70 #define         UDF_FS_TITLE_CDR            L"NTFS"
71 #define         UDF_FS_TITLE_CDROM          L"NTFS"
72 #define         UDF_FS_TITLE_HDD            L"NTFS"
73 #endif //PRETEND_NTFS
74 
75 #define         REG_DEFAULT_UNKNOWN         L"_Default\\Unknown"
76 #define         REG_DEFAULT_HDD             L"_Default\\Hdd"
77 #define         REG_DEFAULT_CDR             L"_Default\\Cdr"
78 #define         REG_DEFAULT_CDRW            L"_Default\\Cdrw"
79 #define         REG_DEFAULT_CDROM           L"_Default\\Cdrom"
80 #define         REG_DEFAULT_ZIP             L"_Default\\Zip"
81 #define         REG_DEFAULT_FLOPPY          L"_Default\\Floppy"
82 #define         REG_DEFAULT_DVDR            L"_Default\\Dvdr"
83 #define         REG_DEFAULT_DVDRW           L"_Default\\Dvdrw"
84 
85 #define         REG_NAMELESS_DEV            L"\\_Nameless_"
86 
87 #define         UDF_DEFAULT_LABEL           L"Write Now"
88 #define         UDF_DEFAULT_LABEL_USER      "Write Now"
89 #define         UDF_MAX_LABEL_LENGTH        11  // Windows shell limitation
90 
91 #define         UDF_FS_TITLE_BLANK          L"Blank media"
92 #define         UDF_FS_TITLE_UNKNOWN        L"Unknown"
93 #define         UDF_BLANK_VOLUME_LABEL      L"Blank CD"
94 
95 #define         REG_CD_BURNER_KEY_NAME      L"\\REGISTRY\\USER\\CURRENTUSER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\CD Burning"
96 #define         REG_CD_BURNER_VOLUME_NAME   L"CD Recorder Drive"
97 
98 #define         REG_USEEXTENDEDFE_NAME      L"UseExtendedFE"
99 #define         REG_USEEXTENDEDFE_NAME_USER "UseExtendedFE"
100 
101 #define         REG_DEFALLOCMODE_NAME       L"DefaultAllocMode"
102 #define         REG_DEFALLOCMODE_NAME_USER  "DefaultAllocMode"
103 
104 #define         UDF_DEFAULT_UID_NAME        L"DefaultUID"
105 #define         UDF_DEFAULT_UID_NAME_USER   "DefaultUID"
106 
107 #define         UDF_DEFAULT_GID_NAME        L"DefaultGID"
108 #define         UDF_DEFAULT_GID_NAME_USER   "DefaultGID"
109 
110 #define         UDF_DIR_PACK_THRESHOLD_NAME L"PackDirThreshold"
111 #define         UDF_DIR_PACK_THRESHOLD_NAME_USER "PackDirThreshold"
112 
113 #define         UDF_FE_CHARGE_NAME          L"FECharge"
114 #define         UDF_FE_CHARGE_NAME_USER     "FECharge"
115 
116 #define         UDF_FE_CHARGE_SDIR_NAME     L"FEChargeSDir"
117 #define         UDF_FE_CHARGE_SDIR_NAME_USER "FEChargeSDir"
118 
119 #define         UDF_BM_FLUSH_PERIOD_NAME    L"BitmapFlushPeriod"
120 #define         UDF_BM_FLUSH_PERIOD_NAME_USER "BitmapFlushPeriod"
121 
122 #define         UDF_TREE_FLUSH_PERIOD_NAME  L"DirTreeFlushPeriod"
123 #define         UDF_TREE_FLUSH_PERIOD_NAME_USER "DirTreeFlushPeriod"
124 
125 #define         UDF_NO_UPDATE_PERIOD_NAME   L"MaxNoUpdatePeriod"
126 #define         UDF_NO_UPDATE_PERIOD_NAME_USER "MaxNoUpdatePeriod"
127 
128 #define         UDF_NO_EJECT_PERIOD_NAME   L"MaxNoEjectPeriod"
129 #define         UDF_NO_EJECT_PERIOD_NAME_USER "MaxNoEjectPeriod"
130 
131 #define         UDF_FSP_THREAD_PER_CPU_NAME L"ThreadsPerCpu"
132 #define         UDF_FSP_THREAD_PER_CPU_NAME_USER "ThreadsPerCpu"
133 
134 #define         UDF_READAHEAD_GRAN_NAME     L"ReadAheadGranlarity"
135 #define         UDF_READAHEAD_GRAN_NAME_USER "ReadAheadGranlarity"
136 
137 /*#define         UDF_W_SECURITY_CDRW_NAME    L"WriteSecurityOnCDRW"
138 #define         UDF_W_SECURITY_CDRW_NAME_USER "WriteSecurityOnCDRW"
139 
140 #define         UDF_W_SECURITY_CDR_NAME     L"WriteSecurityOnCDR"
141 #define         UDF_W_SECURITY_CDR_NAME_USER "WriteSecurityOnCDR"*/
142 
143 #define         UDF_SPARSE_THRESHOLD_NAME   L"SparseThreshold"
144 #define         UDF_SPARSE_THRESHOLD_NAME_USER "SparseThreshold"
145 
146 #define         UDF_VERIFY_ON_WRITE_NAME    L"VerifyOnWrite"
147 #define         UDF_VERIFY_ON_WRITE_NAME_USER "VerifyOnWrite"
148 
149 #define         UDF_UPDATE_TIMES_ATTR       L"UpdateFileTimesAttrChg"
150 #define         UDF_UPDATE_TIMES_ATTR_USER  "UpdateFileTimesAttrChg"
151 
152 #define         UDF_UPDATE_TIMES_MOD        L"UpdateFileTimesLastWrite"
153 #define         UDF_UPDATE_TIMES_MOD_USER   "UpdateFileTimesLastWrite"
154 
155 #define         UDF_UPDATE_TIMES_ACCS       L"UpdateFileTimesLastAccess"
156 #define         UDF_UPDATE_TIMES_ACCS_USER  "UpdateFileTimesLastAccess"
157 
158 #define         UDF_UPDATE_ATTR_ARCH        L"UpdateFileAttrArchive"
159 #define         UDF_UPDATE_ATTR_ARCH_USER   "UpdateFileAttrArchive"
160 
161 #define         UDF_UPDATE_DIR_TIMES_ATTR_W L"UpdateDirAttrAndTimesOnModify"
162 #define         UDF_UPDATE_DIR_TIMES_ATTR_W_USER "UpdateDirAttrAndTimesOnModify"
163 
164 #define         UDF_UPDATE_DIR_TIMES_ATTR_R L"UpdateDirAttrAndTimesOnAccess"
165 #define         UDF_UPDATE_DIR_TIMES_ATTR_R_USER "UpdateDirAttrAndTimesOnAccess"
166 
167 #define         UDF_ALLOW_WRITE_IN_RO_DIR   L"AllowCreateInsideReadOnlyDirectory"
168 #define         UDF_ALLOW_WRITE_IN_RO_DIR_USER "AllowCreateInsideReadOnlyDirectory"
169 
170 #define         UDF_ALLOW_UPDATE_TIMES_ACCS_UCHG_DIR L"AllowUpdateAccessTimeInUnchangedDir"
171 #define         UDF_ALLOW_UPDATE_TIMES_ACCS_UCHG_DIR_USER "AllowUpdateAccessTimeInUnchangedDir"
172 
173 #define         UDF_W2K_COMPAT_ALLOC_DESCS  L"AllocDescCompatW2K"
174 #define         UDF_W2K_COMPAT_ALLOC_DESCS_USER "AllocDescCompatW2K"
175 
176 #define         UDF_W2K_COMPAT_VLABEL       L"VolumeLabelCompatW2K"
177 #define         UDF_W2K_COMPAT_VLABEL_USER  "VolumeLabelCompatW2K"
178 
179 #define         UDF_INSTANT_COMPAT_ALLOC_DESCS  L"AllocDescCompatInstantBurner"
180 #define         UDF_INSTANT_COMPAT_ALLOC_DESCS_USER "AllocDescCompatInstantBurner"
181 
182 #define         UDF_HANDLE_HW_RO            L"HandleHWReadOnly"
183 #define         UDF_HANDLE_HW_RO_USER       "HandleHWReadOnly"
184 
185 #define         UDF_HANDLE_SOFT_RO          L"HandleSoftReadOnly"
186 #define         UDF_HANDLE_SOFT_RO_USER     "HandleSoftReadOnly"
187 
188 #define         UDF_FLUSH_MEDIA             L"FlushMedia"
189 #define         UDF_FLUSH_MEDIA_USER        "FlushMedia"
190 
191 #define         UDF_FORCE_MOUNT_ALL         L"ForcedMountAllAsUDF"
192 #define         UDF_FORCE_MOUNT_ALL_USER    "ForcedMountAllAsUDF"
193 
194 #define         UDF_COMPARE_BEFORE_WRITE    L"CompareBeforeWrite"
195 #define         UDF_COMPARE_BEFORE_WRITE_USER "CompareBeforeWrite"
196 
197 #define         UDF_CACHE_SIZE_MULTIPLIER   L"WCacheSizeMultiplier"
198 #define         UDF_CACHE_SIZE_MULTIPLIER_USER "WCacheSizeMultiplier"
199 
200 #define         UDF_CHAINED_IO              L"CacheChainedIo"
201 #define         UDF_CHAINED_IO_USER         "CacheChainedIo"
202 
203 #define         UDF_OS_NATIVE_DOS_NAME      L"UseOsNativeDOSName"
204 #define         UDF_OS_NATIVE_DOS_NAME_USER "UseOsNativeDOSName"
205 
206 #define         UDF_FORCE_WRITE_THROUGH_NAME L"ForceWriteThrough"
207 #define         UDF_FORCE_WRITE_THROUGH_NAME_USER "ForceWriteThrough"
208 
209 #define         UDF_FORCE_HW_RO             L"ForceHWReadOnly"
210 #define         UDF_FORCE_HW_RO_USER        "ForceHWReadOnly"
211 
212 #define         UDF_IGNORE_SEQUENTIAL_IO    L"IgnoreSequantialIo"
213 #define         UDF_IGNORE_SEQUENTIAL_IO_USER "IgnoreSequantialIo"
214 
215 #define         UDF_PART_DAMAGED_BEHAVIOR   L"PartitialDamagedVolumeAction"
216 #define         UDF_PART_DAMAGED_BEHAVIOR_USER "PartitialDamagedVolumeAction"
217 
218 #define         UDF_NO_SPARE_BEHAVIOR       L"NoFreeRelocationSpaceVolumeAction"
219 #define         UDF_NO_SPARE_BEHAVIOR_USER  "NoFreeRelocationSpaceVolumeAction"
220 
221 #define         UDF_DIRTY_VOLUME_BEHAVIOR   L"DirtyVolumeVolumeAction"
222 #define         UDF_DIRTY_VOLUME_BEHAVIOR_USER "DirtyVolumeVolumeAction"
223 
224 #define         UDF_SHOW_BLANK_CD           L"ShowBlankCd"
225 #define         UDF_SHOW_BLANK_CD_USER      "ShowBlankCd"
226 
227 #define         UDF_WAIT_CD_SPINUP          L"WaitCdSpinUpOnMount"
228 #define         UDF_WAIT_CD_SPINUP_USER     "WaitCdSpinUpOnMount"
229 
230 #define         UDF_AUTOFORMAT              L"Autoformat"
231 #define         UDF_AUTOFORMAT_USER         "Autoformat"
232 
233 #define         UDF_CACHE_BAD_VDS           L"CacheBadVDSLocations"
234 #define         UDF_CACHE_BAD_VDS_USER      "CacheBadVDSLocations"
235 
236 #define         UDF_USE_EJECT_BUTTON        L"UseEjectButton"
237 #define         UDF_USE_EJECT_BUTTON_USER   "UseEjectButton"
238 
239 #define         UDF_LICENSE_KEY             L"LicenseKey"
240 #define         UDF_LICENSE_KEY_USER        "LicenseKey"
241 
242 #define         REG_MOUNT_ON_CDONLY_NAME      L"Mount_CdOnly"
243 #define         REG_MOUNT_ON_CDONLY_NAME_USER "Mount_CdOnly"
244 
245 #define         REG_MOUNT_ON_HDD_NAME      L"Mount_Hdd"
246 #define         REG_MOUNT_ON_HDD_NAME_USER "Mount_Hdd"
247 
248 #define         REG_MOUNT_ON_ZIP_NAME      L"Mount_Zip"
249 #define         REG_MOUNT_ON_ZIP_NAME_USER "Mount_Zip"
250 
251 
252 /// Name of the console formatter tool
253 #define UDFFMT        TEXT("DwConFmtUdf.exe")
254 #define UDFFMTGUI     TEXT("DwGuiFmtUdf.exe")
255 #define REGISTER_APP  TEXT("DwRegister.exe")
256 
257 
258 #endif //__DWUDF_REGISTRY__H__