home *** CD-ROM | disk | FTP | other *** search
/ BUG 11 / BUGCD1998_02.ISO / util / _zip / iomgnt15.exe / IDE / OEMSETUP.INF < prev   
INI File  |  1997-02-27  |  17KB  |  539 lines

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