home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1999 January / VPR9901A.BIN / DRIVER / IODATA / UID98104 / UID98104.EXE / DISK.EXE / WINNT / OEMSETUP.INF < prev    next >
INI File  |  1997-12-29  |  17KB  |  584 lines

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