…Show last 552 lines
61[OptionsTextENG]
62 "SYM_HI" = "Symbios PCI SCSI High Performance Driver"
63
64
65;-----------------------------------------------------------------------------------------
66; SCSI MINIPORT DRIVERS:
67;
68; Order of the information:
69;
70; Class driver = Type, Group, ErrorControl, Tag, EventMessageFile, TypesSupported
71;
72;-----------------------------------------------------------------------------------------
73
74[MiniportDrivers]
75 Sym_hi = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 17, %SystemRoot%\System32\IoLogMsg.dll , 7
76
77;---------------------------------------------------------------------------
78; 1. Identify
79;
80; DESCRIPTION: To verify that this INF deals with the same type of options
81; as we are choosing currently.
82;
83; INPUT: None
84;
85; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL
86; $($R1): Option Type (COMPUTER ...)
87; $($R2): Diskette description
88;---------------------------------------------------------------------------
89
90[Identify]
91 ;
92 ;
93 read-syms Identification
94
95 set Status = STATUS_SUCCESSFUL
96 set Identifier = $(OptionType)
97 set Media = #("Source Media Descriptions", 1, 1)
98
99 Return $(Status) $(Identifier) $(Media)
100
101
102
103;------------------------------------------------------------------------
104; 2. ReturnOptions:
105;
106; DESCRIPTION: To return the option list supported by this INF and the
107; localised text list representing the options.
108;
109;
110; INPUT: $($0): Language used. ( ENG | FRN | ... )
111;
112; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
113; STATUS_NOLANGUAGE
114; STATUS_FAILED
115;
116; $($R1): Option List
117; $($R2): Option Text List
118;------------------------------------------------------------------------
119
120[ReturnOptions]
121 ;
122 ;
123 set Status = STATUS_FAILED
124 set OptionList = {}
125 set OptionTextList = {}
126
127 ;
128 ; Check if the language requested is supported
129 ;
130 set LanguageList = ^(LanguagesSupported, 1)
131 Ifcontains(i) $($0) in $(LanguageList)
132 goto returnoptions
133 else
134 set Status = STATUS_NOLANGUAGE
135 goto finish_ReturnOptions
136 endif
137
138 ;
139 ; form a list of all the options and another of the text representing
140 ;
141
142returnoptions = +
143 set OptionList = ^(Options, 0)
144 set OptionTextList = ^(OptionsText$($0), 1)
145 set Status = STATUS_SUCCESSFUL
146
147finish_ReturnOptions = +
148 Return $(Status) $(OptionList) $(OptionTextList)
149
150
151;
152; 3. InstallOption:
153;
154; FUNCTION: To copy files representing Options
155; To configure the installed option
156; To update the registry for the installed option
157;
158; INPUT: $($0): Language to use
159; $($1): OptionID to install
160; $($2): SourceDirectory
161; $($3): AddCopy (YES | NO)
162; $($4): DoCopy (YES | NO)
163; $($5): DoConfig (YES | NO)
164;
165; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
166; STATUS_NOLANGUAGE |
167; STATUS_USERCANCEL |
168; STATUS_FAILED
169;
170
171[InstallOption]
172
173 ;
174 ; Set default values for
175 ;
176 set Status = STATUS_FAILED
177 set DrivesToFree = {}
178
179 ;
180 ; extract parameters
181 ;
182 set Option = $($1)
183 set SrcDir = A:\WINNT\MINIPORT
184 set AddCopy = $($3)
185 set DoCopy = $($4)
186 set DoConfig = $($5)
187
188 ;
189 ; Check if the language requested is supported
190 ;
191 set LanguageList = ^(LanguagesSupported, 1)
192 Ifcontains(i) $($0) in $(LanguageList)
193 else
194 set Status = STATUS_NOLANGUAGE
195 goto finish_InstallOption
196 endif
197 read-syms Strings$($0)
198
199 ;
200 ; check to see if Option is supported.
201 ;
202
203 set OptionList = ^(Options, 0)
204 ifcontains $(Option) in $(OptionList)
205 else
206 Debug-Output "SCSI.INF: SCSI option is not supported."
207 goto finish_InstallOption
208 endif
209 set OptionList = ""
210
211 ;
212 ; Option has been defined already
213 ;
214
215 set MiniportDriver = #(Options, $(Option), 1)
216 set Type = $(#(MiniportDrivers, $(MiniportDriver), 1))
217 set Group = #(MiniportDrivers, $(MiniportDriver), 2)
218 set ErrorControl = $(#(MiniportDrivers, $(MiniportDriver), 3))
219 set Tag = #(MiniportDrivers, $(MiniportDriver), 4)
220 set EventMessageFile = #(MiniportDrivers, $(MiniportDriver), 5)
221 set TypesSupported = #(MiniportDrivers, $(MiniportDriver), 6)
222
223 set Start = $(!SERVICE_BOOT_START)
224
225installtheoption = +
226
227 ;
228 ; Code to add files to copy list
229 ;
230
231 ifstr(i) $(AddCopy) == "YES"
232 set DoActualCopy = NO
233 set FileToCheck = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
234 LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
235 ifstr(i) $(STATUS) == NO
236 set DoActualCopy = YES
237 endif
238
239 ifstr(i) $(DoActualCopy) == NO
240 shell "subroutn.inf" DriversExist $($0) $(String1)
241 ifint $($ShellCode) != $(!SHELL_CODE_OK)
242 Debug-Output "SCSI.INF: shelling DriversExist failed"
243 goto finish_InstallOption
244 endif
245
246 ifstr(i) $($R0) == STATUS_CURRENT
247 else-ifstr(i) $($R0) == STATUS_NEW
248 set DoActualCopy = YES
249 else-ifstr(i) $($R0) == STATUS_USERCANCEL
250 Debug-Output "SCSI.INF: User cancelled SCSI installation"
251 goto finish_InstallOption
252 else
253 Debug-Output "SCSI.INF: Error reported in DriversExist routine in SUBROUTN.INF"
254 goto finish_InstallOption
255 endif
256 endif
257
258 ifstr(i) $(DoActualCopy) == YES
259
260 shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
261 ifint $($ShellCode) != $(!SHELL_CODE_OK)
262 Debug-Output "SCSI.INF: shelling DoAskSourceEx failed"
263 goto finish_InstallOption
264 endif
265
266 ifstr(i) $($R0) == STATUS_SUCCESSFUL
267 set SrcDir = $($R1)
268 ifstr(i) $($R2) != ""
269 set DrivesToFree = >($(DrivesToFree), $($R2))
270 endif
271 else
272 Debug-Output "SCSI.INF: User cancelled asking source."
273 goto finish_InstallOption
274 endif
275
276 install Install-AddCopyOption
277 ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
278 Debug-Output "Adding SCSI files to copy list failed"
279 goto finish_InstallOption
280 endif
281 else
282 set DoCopy = NO
283 endif
284
285 endif
286
287 ifstr(i) $(DoCopy) == "YES"
288 read-syms ProgressCopy$($0)
289 install Install-DoCopyOption
290 ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
291 Debug-Output "Copying files failed"
292 goto finish_InstallOption
293 else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
294 set Status = STATUS_USERCANCEL
295 goto finish_InstallOption
296 endif
297 endif
298
299 ifstr(i) $(DoConfig) == "YES"
300 ;
301 ; first run a privilege check on modifying the setup node
302 ;
303
304 shell "registry.inf" CheckSetupModify
305 ifint $($ShellCode) != $(!SHELL_CODE_OK)
306 goto finish_InstallOption
307 endif
308
309 ifstr(i) $($R0) != STATUS_SUCCESSFUL
310 goto finish_InstallOption
311 endif
312
313 ;
314 ; then make a new SCSI entry, the entry is created automatically
315 ; enabled
316 ;
317
318 set ServiceNode = $(MiniportDriver)
319 set ServiceBinary = System32\drivers\#(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
320
321 set ServicesValues = { +
322 {Type, 0, $(!REG_VT_DWORD), $(Type) }, +
323 {Start, 0, $(!REG_VT_DWORD), $(Start) }, +
324 {Group, 0, $(!REG_VT_SZ), $(Group) }, +
325 {ErrorControl, 0, $(!REG_VT_DWORD), $(ErrorControl) }, +
326 {Tag, 0, $(!REG_VT_DWORD), $(Tag) }, +
327 {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary) } +
328 }
329
330 ;***********************************************************
331 ; Can add other things to ScsiParm value if needed...
332 ;***********************************************************
333
334 set ScsiParm = ""
335
336 set ParametersValues = { +
337 { DriverParameter, 0, $(!REG_VT_SZ), $(ScsiParm) } +
338 }
339
340 set DeviceValues = {}
341
342 set EventLogValues = { +
343 {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
344 {TypesSupported, 0, $(!REG_VT_DWORD), $(TypesSupported) } +
345 }
346
347 shell "registry.inf" MakeServicesEntry $(ServiceNode) +
348 $(ServicesValues) +
349 $(ParametersValues) +
350 $(DeviceValues) +
351 $(EventLogValues) +
352 Device
353
354
355 ifint $($ShellCode) != $(!SHELL_CODE_OK)
356 Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
357 goto finish_InstallOption
358 endif
359
360 ifstr(i) $($R0) != STATUS_SUCCESSFUL
361 Debug-Output "MakeServicesEntry failed for SCSI"
362 goto finish_InstallOption
363 endif
364
365 endif
366
367 set Status = STATUS_SUCCESSFUL
368finish_InstallOption = +
369
370 ;
371 ; Add registry entries
372 ;
373
374 set KeyName = "System\CurrentControlSet\Services\Sym_hi"
375 OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) KeyHandle
376 ifstr(i) $(KeyHandle) != ""
377 OpenRegKey $(!REG_H_LOCAL) "" $(KeyName)"Parameters\Device" $(!REG_KEY_ALL_ACCESS) TestKeyHandle
378 ifstr(i) $(TestKeyHandle) == ""
379 CreateRegKey $(KeyHandle) {"Parameters",0,GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" ParamKeyHandle
380 CreateRegKey $(ParamKeyHandle) {"Device",0,GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" DevKeyHandle
381 SetRegValue $(DevKeyHandle) {MaximumSGList,0,$(!REG_VT_DWORD),"65"}
382 SetRegValue $(DevKeyHandle) {NumberOfRequests,0,$(!REG_VT_DWORD),"128"}
383 CloseRegKey $(DevKeyHandle)
384 CloseRegKey $(ParamKeyHandle)
385 endif
386 CloseRegKey $(TestKeyHandle)
387 endif
388 CloseRegKey $(KeyHandle)
389
390 ForListDo $(DrivesToFree)
391 LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
392 EndForListDo
393
394 Return $(Status)
395
396
397[Install-AddCopyOption]
398
399 ;
400 ; Add the files to the copy list
401 ;
402 AddSectionKeyFileToCopyList Files-ScsiMiniportDrivers +
403 $(MiniportDriver) +
404 $(SrcDir) +
405 $(!STF_WINDOWSSYSPATH)\drivers
406
407 exit
408
409
410[Install-DoCopyOption]
411
412 ;
413 ; Copy files in the copy list
414 ;
415 CopyFilesInCopyList
416 exit
417
418;-------------------------------------------------------------------------
419; 4. DeInstallOption:
420;
421; FUNCTION: To remove files representing Option
422; To remove the registry entry corresponding to the Option
423;
424; INPUT: $($0): Language to use
425; $($1): OptionID to install
426;
427; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
428; STATUS_NOLANGUAGE |
429; STATUS_USERCANCEL |
430; STATUS_FAILED
431;-------------------------------------------------------------------------
432[DeInstallOption]
433 ;
434 ; Set default values for
435 ;
436 set Status = STATUS_FAILED
437 ;
438 ; extract parameters
439 ;
440 set Option = $($1)
441
442 ;
443 ; Check if the language requested is supported
444 ;
445 set LanguageList = ^(LanguagesSupported, 1)
446 Ifcontains(i) $($0) in $(LanguageList)
447 else
448 set Status = STATUS_NOLANGUAGE
449 goto finish_DeInstallOption
450 endif
451 read-syms Strings$($0)
452
453 ;
454 ; check to see if Option is supported.
455 ;
456
457 set OptionList = ^(Options, 0)
458 ifcontains $(Option) in $(OptionList)
459 else
460 goto finish_DeInstallOption
461 endif
462 set OptionList = ""
463
464 ;
465 ; fetch details about option
466 ;
467
468 set MiniportDriver = #(Options, $(Option), 1)
469 set MiniportFile = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
470 set FilePath = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile)
471
472 ;
473 ; check to see if file is installed
474 ; if not give success
475 ;
476
477 LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
478 ifstr(i) $(STATUS) == "NO"
479 set Status = STATUS_SUCCESSFUL
480 goto finish_DeInstallOption
481 endif
482
483 shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
484 ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
485 ; this could happen if there is no start value or there is no
486 ; key, in which case the option is not installed
487 set Status = STATUS_SUCCESSFUL
488 goto finish_DeInstallOption
489 endif
490
491 ifstr(i) $($R1) == $(!SERVICE_BOOT_START)
492 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(String3)
493 ifstr(i) $($R0) != STATUS_SUCCESSFUL
494 goto do_removal
495 endif
496 ifstr(i) $($R1) == "CANCEL"
497 goto finish_DeInstallOption
498 endif
499 endif
500
501do_removal =+
502 ;
503 ; disable the registry entry
504 ;
505
506 shell "registry.inf" RemoveServicesEntry $(MiniportDriver)
507 ifint $($ShellCode) != $(!SHELL_CODE_OK)
508 Debug-Output "SCSI.INF: Failed to shell RemoveServicesEntry"
509 goto finish_DeInstallOption
510 endif
511
512 ifstr(i) $($R0) != STATUS_SUCCESSFUL
513 Debug-Output "SCSI.INF: Failed to disable services entry"
514 goto finish_DeInstallOption
515 endif
516
517 ;
518 ; we won't remove the file because we can only do so during the next boot.
519 ; if the user chooses to reinstall the same driver during this boot
520 ; he will still end up deleting the driver on next boot. if the file
521 ; should be deleted a warning should be put up saying that the user should
522 ; not try to reinstall the driver during this boot
523 ;
524 ; AddFileToDeleteList $(FilePath)
525
526 set Status = STATUS_SUCCESSFUL
527
528finish_DeInstallOption =+
529 return $(Status)
530
531
532;-------------------------------------------------------------------------
533; 5. GetInstalledOptions:
534;
535; FUNCTION: To find out the list of options which are installed
536;
537; INPUT: $($0): Language to Use
538;
539; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
540; STATUS_FAILED
541;
542; $($R1): List of options installed
543; $($R2): Option installed Text List
544;-------------------------------------------------------------------------
545[GetInstalledOptions]
546 set Status = STATUS_FAILED
547 set InstalledOptions = {}
548 set InstalledOptionsText = {}
549
550 ;
551 ; Check if the language requested is supported
552 ;
553 set LanguageList = ^(LanguagesSupported, 1)
554 Ifcontains(i) $($0) in $(LanguageList)
555 else
556 set Status = STATUS_NOLANGUAGE
557 goto finish_GetInstalledOptions
558 endif
559
560 set OptionList = ^(Options, 0)
561 ForListDo $(OptionList)
562 set MiniportDriver = #(Options, $($), 1)
563 set MiniportFile = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
564 set FilePath = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile)
565 LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
566 ifstr(i) $(STATUS) == "YES"
567 shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
568 ifint $($ShellCode) == $(!SHELL_CODE_OK)
569 ifstr(i) $($R0) == STATUS_SUCCESSFUL
570 ifstr(i) $($R1) != $(!SERVICE_DISABLED)
571
572 set OptionText = #(OptionsText$($0), $($), 1)
573 set InstalledOptions = >($(InstalledOptions), $($))
574 set InstalledOptionsText = >($(InstalledOptionsText), $(OptionText))
575
576 endif
577 endif
578 endif
579 endif
580 EndForListDo
581 set Status = STATUS_SUCCESSFUL
582finish_GetInstalledOptions =+
583 Return $(Status) $(InstalledOptions) $(InstalledOptionsText)
584
585
586;**************************************************************************
587; PROGRESS GUAGE VARIABLES
588;**************************************************************************
589
590[ProgressCopyENG]
591 ProCaption = "Windows NT Setup"
592 ProCancel = "Cancel"
593 ProCancelMsg = "Windows NT is not correcly installed. Are you sure you want "+
594 "to cancel copying files?"
595 ProCancelCap = "Setup Message"
596 ProText1 = "Copying:"
597 ProText2 = "To:"
598
599[StringsENG]
600 String1 = "SCSI Adapter"
601 String2 = "Please enter the full path to the OEM SCSI "+
602 "Adapter files. Then choose Continue."
603 String3 = "The SCSI Adapter has been marked as a boot device. Removing "+
604 "it may cause the system not to boot."$(!LF)$(!LF)"Are you sure "+
605 "you want to remove the Adapter."
606
607[Source Media Descriptions]
608 1 = "Symbios PCI SCSI High Performance Driver" , TAGFILE = Sym_hi.tag
609
610[Files-ScsiMiniportDrivers]
611Sym_hi = 1,Sym_hi.sys , SIZE=999