home *** CD-ROM | disk | FTP | other *** search
/ PC World Plus! (NZ) 2000 September / PCWORLD_PLUS.iso / patch / iomega221.exe / custom.lib / OEMSETUP.INF < prev    next >
INI File  |  1999-10-12  |  17KB  |  567 lines

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