home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1998 October / VPR9810B.BIN / BIOS / free / sis49x / sis49x.exe / NT35 / OEMSETUP.INF next >
INI File  |  1994-09-12  |  21KB  |  643 lines

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