[project] Development cycle binaries for today
[people/sha0/winvblock.git] / makeinf.bat
1 =============================@( GOto  :@:  CRAZY )=============================\r
2 123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789\r
3 ÉÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍ»\r
4 º _ _ _ Each line of this file is optimally formatted for 79 columns. _ _ _ _ º\r
5 º _ _ _ Best viewed from a command-line interface (a DOS box), with the _ _ _ º\r
6 º _ _ _ _ 'type' command or in Windows Notepad with the Terminal font _ _ _ _ º\r
7 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ\r
8 º Programmed by Shao Miller @ 2010-05-14_19:52. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ º\r
9 ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\r
10 \r
11 \r
12 \r
13 -----MAIN-----\r
14 ===\r
15 \r
16  Extract the .INF file for WinVBlock's bus driver\r
17 \r
18 ===\r
19 :_main\r
20 \r
21 mkdir bin %_%\r
22 \r
23 %@% Extracting WinVBlk.INF...\r
24 %@%\r
25 call :_extract WinVBlk > bin\WinVBlk.INF\r
26 \r
27 %@% Extracting AoE.INF...\r
28 %@%\r
29 call :_extract AoE > bin\AoE.INF\r
30 \r
31 %@% Extracting HTTPDisk.INF...\r
32 %@%\r
33 call :_extract HTTPDisk > bin\HTTPDisk.INF\r
34 \r
35 %Q%\r
36 \r
37 -----EOF-----\r
38 \r
39 \r
40 \r
41 -----WinVBlk-----\r
42 [Version]\r
43 Signature="$Windows NT$"\r
44 Class=SCSIAdapter\r
45 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}\r
46 Provider=WinVBlock\r
47 CatalogFile=winvblk.cat\r
48 DriverVer=05/16/2010,0.0.0.8\r
49  \r
50 [Manufacturer]\r
51 WinVBlock=WinVBlockDriver,,NTamd64\r
52   \r
53 [WinVBlockDriver]\r
54 "WinVBlock Driver"=WinVBlock,Root\WinVBlock, Detected\WinVBlock\r
55  \r
56 [WinVBlockDriver.NTamd64]\r
57 "WinVBlock Driver"=WinVBlock.NTamd64,Root\WinVBlock, Detected\WinVBlock\r
58  \r
59 [SourceDisksNames]\r
60 0="Install Disk"\r
61  \r
62 [SourceDisksFiles]\r
63 winvblk.exe=0\r
64 wvblk32.sys=0\r
65 wvblk64.sys=0\r
66  \r
67 [DestinationDirs]\r
68 Files.Driver=12\r
69 Files.Driver.NTamd64=12\r
70 Files.Tools=11\r
71  \r
72 [Files.Driver]\r
73 wvblk32.sys\r
74  \r
75 [Files.Driver.NTamd64]\r
76 wvblk64.sys\r
77  \r
78 [Files.Tools]\r
79 winvblk.exe\r
80  \r
81 [WinVBlock]\r
82 CopyFiles=Files.Driver,Files.Tools\r
83  \r
84 [WinVBlock.NTamd64]\r
85 CopyFiles=Files.Driver.NTamd64,Files.Tools\r
86  \r
87 [WinVBlock.Services]\r
88 AddService=WinVBlock,0x00000002,Service\r
89  \r
90 [WinVBlock.NTamd64.Services]\r
91 AddService=WinVBlock,0x00000002,Service.NTamd64\r
92  \r
93 [Service]\r
94 ServiceType=0x00000001\r
95 StartType=0x00000000\r
96 ErrorControl=0x00000001\r
97 ServiceBinary=%12%\wvblk32.sys\r
98  \r
99 [Service.NTamd64]\r
100 ServiceType=0x00000001\r
101 StartType=0x00000000\r
102 ErrorControl=0x00000001\r
103 ServiceBinary=%12%\wvblk64.sys\r
104 -----EOF-----\r
105 \r
106 \r
107 \r
108 -----AoE-----\r
109 [Version]\r
110 Signature="$Windows NT$"\r
111 Class=SCSIAdapter\r
112 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}\r
113 Provider=WinVBlock\r
114 CatalogFile=aoe.cat\r
115 DriverVer=05/16/2010,0.0.0.8\r
116  \r
117 [Manufacturer]\r
118 WinVBlock=AoEDriver,,NTamd64\r
119   \r
120 [AoEDriver]\r
121 "AoE Driver"=AoE,WinVBlock\AoE\r
122  \r
123 [AoEDriver.NTamd64]\r
124 "AoE Driver"=AoE.NTamd64,WinVBlock\AoE\r
125  \r
126 [SourceDisksNames]\r
127 0="Install Disk"\r
128  \r
129 [SourceDisksFiles]\r
130 aoe32.sys=0\r
131 aoe64.sys=0\r
132  \r
133 [DestinationDirs]\r
134 Files.Driver=12\r
135 Files.Driver.NTamd64=12\r
136  \r
137 [Files.Driver]\r
138 aoe32.sys\r
139  \r
140 [Files.Driver.NTamd64]\r
141 aoe64.sys\r
142  \r
143 [AoE]\r
144 CopyFiles=Files.Driver\r
145  \r
146 [AoE.NTamd64]\r
147 CopyFiles=Files.Driver.NTamd64\r
148  \r
149 [AoE.Services]\r
150 AddService=AoE,0x00000002,Service\r
151  \r
152 [AoE.NTamd64.Services]\r
153 AddService=AoE,0x00000002,Service.NTamd64\r
154  \r
155 [Service]\r
156 ServiceType=0x00000001\r
157 StartType=0x00000000\r
158 ErrorControl=0x00000001\r
159 ServiceBinary=%12%\aoe32.sys\r
160  \r
161 [Service.NTamd64]\r
162 ServiceType=0x00000001\r
163 StartType=0x00000000\r
164 ErrorControl=0x00000001\r
165 ServiceBinary=%12%\aoe64.sys\r
166 -----EOF-----\r
167 \r
168 \r
169 \r
170 -----HTTPDisk-----\r
171 [Version]\r
172 Signature="$Windows NT$"\r
173 Class=SCSIAdapter\r
174 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}\r
175 Provider=WinVBlock\r
176 CatalogFile=httpdisk.cat\r
177 DriverVer=05/16/2010,0.0.0.8\r
178  \r
179 [Manufacturer]\r
180 WinVBlock=HTTPDiskDriver,,NTamd64\r
181   \r
182 [HTTPDiskDriver]\r
183 "HTTPDisk Driver"=HTTPDisk,WinVBlock\HTTPDisk\r
184  \r
185 [HTTPDiskDriver.NTamd64]\r
186 "HTTPDisk Driver"=HTTPDisk.NTamd64,WinVBlock\HTTPDisk\r
187  \r
188 [SourceDisksNames]\r
189 0="Install Disk"\r
190  \r
191 [SourceDisksFiles]\r
192 wvhttp32.sys=0\r
193 wvhttp64.sys=0\r
194  \r
195 [DestinationDirs]\r
196 Files.Driver=12\r
197 Files.Driver.NTamd64=12\r
198  \r
199 [Files.Driver]\r
200 wvhttp32.sys\r
201  \r
202 [Files.Driver.NTamd64]\r
203 wvhttp64.sys\r
204  \r
205 [HTTPDisk]\r
206 CopyFiles=Files.Driver\r
207  \r
208 [HTTPDisk.NTamd64]\r
209 CopyFiles=Files.Driver.NTamd64\r
210  \r
211 [HTTPDisk.Services]\r
212 AddService=HTTPDisk,0x00000002,Service\r
213  \r
214 [HTTPDisk.NTamd64.Services]\r
215 AddService=HTTPDisk,0x00000002,Service.NTamd64\r
216  \r
217 [Service]\r
218 ServiceType=0x00000001\r
219 StartType=0x00000000\r
220 ErrorControl=0x00000001\r
221 ServiceBinary=%12%\wvhttp32.sys\r
222  \r
223 [Service.NTamd64]\r
224 ServiceType=0x00000001\r
225 StartType=0x00000000\r
226 ErrorControl=0x00000001\r
227 ServiceBinary=%12%\wvhttp64.sys\r
228 -----EOF-----\r
229 \r
230 \r
231 \r
232 -----TESTING-----\r
233 This is a wacky batch file.  There is stuff all over the place.\r
234 More comments.\r
235 \r
236 \r
237 :_test\r
238 \r
239 %@% This is the main part of the batch file\r
240 %@%\r
241 \r
242 %@% Showing FILE1...\r
243 %@%\r
244 call :_extract FILE1\r
245 %@%\r
246 \r
247 %@% Showing INIFILE...\r
248 %@%\r
249 call :_extract INIFILE\r
250 %@%\r
251 \r
252 %@% Showing FILE2...\r
253 %@%\r
254 call :_extract FILE2\r
255 %@%\r
256 \r
257 %@% Showing LIBRARY...\r
258 %@%\r
259 call :_extract LIBRARY\r
260 %@%\r
261 \r
262 %@% Trying hex...\r
263 %@%\r
264 call :_hexchar 01020304\r
265 \r
266 %Q%\r
267 \r
268 \r
269 \r
270 -----EOF-----\r
271 \r
272 \r
273 \r
274 -----LIBRARY-----\r
275 \r
276 \r
277 \r
278 ===\r
279 \r
280  Sets _line to the line number that is found for\r
281  the -----SECTION----- "embedded file" found in this file\r
282 \r
283 ===\r
284 :_find_section\r
285 \r
286 set _line=\r
287 for /f "delims=:" %%a in ('findstr /b /n /c:-----%1----- %~sf0') do (\r
288   set _line=%%a\r
289   )\r
290 %C%\r
291 if "%_line%"=="" (\r
292   %@% Section not found!\r
293   %E%\r
294   )\r
295 %Q%\r
296 \r
297 \r
298 \r
299 ===\r
300 \r
301  Extract a section from this batch file.  Blank lines and\r
302  the special illegal character are excluded from the output\r
303 \r
304 ===\r
305 :_extract\r
306 \r
307 call :_find_section %1\r
308 %QOE%\r
309 for /f "delims=%_ill% skip=%_line%" %%a in (%~sf0) do (\r
310   if "%%a"=="-----EOF-----" (\r
311     %Q%\r
312     )\r
313   %@%%%a\r
314   )\r
315 %Q%\r
316 \r
317 \r
318 \r
319 ===\r
320 \r
321  Set variable to a generated unique string (we sure hope)\r
322 \r
323 ===\r
324 :_unique_str\r
325 \r
326 set _unique_str=%time::=_%\r
327 set _unique_str=%_unique_str:.=_%\r
328 set _unique_str=%_unique_str%_%random%\r
329 set %1=%_unique_str%\r
330 set _unique_str=\r
331 %Q%\r
332 \r
333 \r
334 \r
335 ===\r
336 \r
337  Display arbitrary characters, given hex input...  Except CR, LF, ':'\r
338 \r
339 ===\r
340 :_hexchar\r
341 \r
342 :: Next line is word-wrapped.  Add the hex and some magic to the Registry\r
343 reg add hkcu\goto_crazy /v hex /t reg_binary /d 0D0A%13A4D414749434D414749430D0A /f %_%\r
344 \r
345 :: Save the data out of the Registry\r
346 call :_unique_str _hive\r
347 reg save hkcu\goto_crazy %_hive%.tmp %_%\r
348 \r
349 :: Clean the data out of the Registry\r
350 reg delete hkcu\goto_crazy /f %_%\r
351 \r
352 :: Extract the data by the associated magic\r
353 call :_unique_str _magic\r
354 findstr MAGICMAGIC %_hive%.tmp > %_magic%.tmp 2> NUL\r
355 \r
356 :: Clean-up\r
357 del %_hive%.tmp\r
358 set _hive=\r
359 \r
360 :: Display the requested data; it's before the magic\r
361 for /f "delims=:" %%a in (%_magic%.tmp) do (\r
362   %@%%%a\r
363   )\r
364 \r
365 :: Clean-up\r
366 del %_magic%.tmp\r
367 set _magic=\r
368 %Q%\r
369 \r
370 \r
371 \r
372 ===\r
373 \r
374  Sets up the environment for common features used in the batch file\r
375 \r
376 ===\r
377 :@:\r
378 \r
379 :: Don't show commands\r
380 @echo off\r
381 \r
382 :: Display a message\r
383 set @=echo.\r
384 \r
385 :: Exit a function or the batch file\r
386 set Q=goto :eof\r
387 \r
388 :: Exit a function or the batch file on error condition\r
389 set QOE=if errorlevel 1 %Q%\r
390 \r
391 :: Suppress standard output and error messages\r
392 set _= ^> NUL 2^>^&1\r
393 \r
394 :: Signal an error condition\r
395 set E=cd:%_%\r
396 \r
397 :: Clear an error condition\r
398 set C=cd.%_%\r
399 \r
400 :: The unique character not to be used in "file" sections.  Please\r
401 :: note that if you are displaying this very LIBRARY section, you\r
402 :: will be missing this special character, since it's illegal!\r
403 set _ill=#\r
404 \r
405 :: Goto the _main function\r
406 goto :_main\r
407 \r
408 \r
409 \r
410 -----EOF-----\r
411 \r
412 \r
413 \r
414 -----INIFILE-----\r
415 \r
416 \r
417 \r
418 [IniSection]\r
419 IniEntry = IniValue\r
420 \r
421 \r
422 \r
423 -----EOF-----\r
424 \r
425 \r
426 \r
427 -----FILE1-----\r
428 \r
429 \r
430 \r
431 this is some random text now?\r
432 \r
433 (:inp\r
434 echo input\r
435 echo input2\r
436 goto :eof\r
437 \r
438 :skip\r
439 )\r
440 ) )\r
441 ) ) )\r
442 ) ) ) )\r
443 \r
444 \r
445 echo Line found at: %_line%\r
446 \r
447 \r
448 echo Skipped\r
449 goto :ha\r
450  -----FILE1-----\r
451 blah blah\r
452 \r
453 \r
454 \r
455 -----FILE2-----\r
456 :ha\r
457 echo got to ha\r
458 goto :eof\r
459 \r
460 \r
461 \r
462 -----EOF-----