home *** CD-ROM | disk | FTP | other *** search
/ Windows NT Super Tune-Up Kit / PIE-WindowsNTSuperTuneUpKit-1997.iso / DRIVERS / SCSI_CD / PHILIPS / 206NT31 / OEMSETUP.INF < prev    next >
INI File  |  1994-04-06  |  18KB  |  555 lines

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