home *** CD-ROM | disk | FTP | other *** search
/ ftp.tcs3.com / ftp.tcs3.com.tar / ftp.tcs3.com / DRIVERS / Network / LinkSYS / lne2000.exe / NT31 / OEMSETUP.INF < prev   
INI File  |  1995-11-02  |  40KB  |  1,382 lines

  1. ;***********************************************************************
  2. ;
  3. ;
  4. ;       LINKSYS network card and driver SETUP INF file.
  5. ;
  6. ; History:
  7. ;***********************************************************************
  8.  
  9. ;-----------------------------------------------------------------------
  10. ; OPTION TYPE
  11. ; -----------
  12. ; This identifies the Option type we are dealing with.  The different
  13. ; possible types are:
  14. ;
  15. ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  16. ;
  17. ;  Types specific to networking:
  18. ;
  19. ; NetAdapter,        a netcard / adapter combination or just a netcard
  20. ; NetDriver,         just a netcard driver
  21. ; NetTransport,      a complete NDIS-compliant TDI transport stack
  22. ; NetService,        an NT networking service
  23. ; NetWork,           a complete network ensemble.
  24. ; NetProvider        a complete network which supports NT MPR protocol
  25. ;-----------------------------------------------------------------------
  26.  
  27. [Identification]
  28.     OptionType = NetAdapter
  29.  
  30. ;-----------------------------------------------------------------------
  31. ; PlatformsSupported
  32. ; ------------------
  33. ; This identifies the platforms supported by the adapter card.
  34. ; Possible types are:
  35. ;
  36. ; ISA and EISA
  37. ;-----------------------------------------------------------------------
  38.  
  39. [PlatformsSupported]
  40.     ISA
  41.     EISA
  42.     "Jazz-Internal Bus"
  43.  
  44. ;-----------------------------------------------------------------------
  45. ; OPTION LIST
  46. ; -----------
  47. ; This section lists the OEM Option key names.  These keys are locale
  48. ; independent and used to represent the option in a locale independent
  49. ; manner.
  50. ;
  51. ;-----------------------------------------------------------------------
  52.  
  53. [Options]
  54.     ETHER
  55.  
  56. ;***********************************************************************
  57. ; CONSTANTS FOR USING DIALOGS
  58. ;***********************************************************************
  59.  
  60. [FileConstants]
  61.  
  62.  
  63. GenericInfVersion  = "v1.0"
  64. GenericAdapterName = "LINKSYS ETHER16 Adapter"
  65. GenericDriverName  = "LINKSYS ETHER16 Driver"
  66. GenericSysName     = "ETHER.SYS"
  67. GenericName        = "ETHER"
  68.  
  69.  
  70.  
  71. ;
  72. ;  File names, etc.
  73. ;
  74. UtilityInf      = "UTILITY.INF"
  75. ParamInf        = "NCPARAM.INF"
  76. subroutineinf   = "SUBROUTN.INF"
  77. SoftwareType    = "driver"
  78. Exit_Code       = 0
  79.  
  80. ;
  81. ; EventLog Message File
  82. ;
  83. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  84. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  85.  
  86. ; Product Info
  87. ;
  88. Manufacturer    = "Microsoft"
  89. ProductMajorVersion     = "3"
  90. ProductMinorVersion     = "1"
  91. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  92.  
  93. ;
  94. ; Software
  95. ;
  96. ProductSoftwareName     = "ETHER"
  97. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
  98. NetRuleSoftwareType     = "ETHERSys ndisDriver ETHERDriver"
  99.  
  100. NetRuleSoftwareUse      = $(SoftwareType)
  101. NetRuleSoftwareBindForm = """ETHERSys"" yes no container"
  102.  
  103. NetRuleSoftwareClass    = {"ETHERDriver basic"}
  104. NetRuleSoftwareBindable = {"ETHERDriver ETHERAdapter non exclusive 100"}
  105. ;
  106. ; Hardware
  107. ;
  108. ProductHardwareName        = "ETHER"
  109. NetRuleHardwareType        = "ETHER ETHERAdapter"
  110. NetRuleHardwareBindForm    = " yes yes container"
  111. NetRuleHardwareClass       = {"ETHERAdapter basic"}
  112.  
  113.  
  114.  
  115. ;
  116. ; Registry Key
  117. ;
  118. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  119. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  120.  
  121.  
  122. [GeneralConstants]
  123. ;
  124. ;  Program flow control variables.
  125. ;
  126. from      = ""
  127. to        = ""
  128. ;
  129. ;  Return codes; Exit_Code is set to one of these
  130. ;
  131. ExitCodeOk     = 0
  132. ExitCodeCancel = 1
  133. ExitCodeFatal  = 2
  134.  
  135. KeyNull         = ""
  136. MAXIMUM_ALLOWED   = 33554432
  137. RegistryErrorIndex = NO_ERROR
  138. KeyProduct      = ""
  139. KeyParameters   = ""
  140.  
  141. TRUE            = 1
  142. FALSE           = 0
  143. NoTitle            = 0
  144.  
  145. ExitState   = "Active"
  146. OldVersionExisted = $(FALSE)
  147.  
  148. DriverPath      = $(!STF_NTPATH)\drivers
  149.  
  150. [date]
  151.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  152.     ; Minute, Second }
  153.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  154.  
  155.  
  156. ;---------------------------------------------------------------------------
  157. ; 1. Identify
  158. ;
  159. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  160. ;                as we are choosing currently.
  161. ;
  162. ; INPUT:         None
  163. ;
  164. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  165. ;                $($R1): Option Type (COMPUTER ...)
  166. ;                $($R2): Diskette description
  167. ;---------------------------------------------------------------------------
  168.  
  169. [Identify]
  170.     ;
  171.     ;
  172.     read-syms Identification
  173.  
  174.     set Status     = STATUS_SUCCESSFUL
  175.     set Identifier = $(OptionType)
  176.     set Media      = #("Source Media Descriptions", 1, 1)
  177.  
  178.     Return $(Status) $(Identifier) $(Media)
  179.  
  180. ;------------------------------------------------------------------------
  181. ; 2. ReturnOptions:
  182. ;
  183. ; DESCRIPTION:   To return the option list supported by this INF and the
  184. ;                localised text list representing the options.
  185. ;
  186. ;
  187. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  188. ;
  189. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  190. ;                                STATUS_NOLANGUAGE
  191. ;                                STATUS_FAILED
  192. ;                                STATUS_NOTSUPPORTED
  193. ;
  194. ;                $($R1): Option List
  195. ;                $($R2): Option Text List
  196. ;------------------------------------------------------------------------
  197.  
  198. [ReturnOptions]
  199.     ;
  200.     ;
  201.     set Status        = STATUS_FAILED
  202.     set OptionList     = {}
  203.     set OptionTextList = {}
  204.  
  205.     ;
  206.     ; Check if the language requested is supported
  207.     ;
  208.     set LanguageList = ^(LanguagesSupported, 1)
  209.     Ifcontains(i) $($0) in $(LanguageList)
  210.         ;
  211.         ; Check if the platforms requested is supported
  212.         ;
  213.         ifstr(i) $($1) == ""
  214.                         goto returnoptions
  215.         endif
  216.  
  217.         set PlatformList = ^(PlatformsSupported, 1)
  218.         Ifcontains(i) $($1) in $(PlatformList)
  219.                         goto returnoptions
  220.         else
  221.                         set Status = STATUS_NOTSUPPORTED
  222.                         goto finish_ReturnOptions
  223.         endif
  224.     else
  225.                 set Status = STATUS_NOLANGUAGE
  226.                 goto finish_ReturnOptions
  227.     endif
  228.  
  229.     ;
  230.     ; form a list of all the options and another of the text representing
  231.     ;
  232.  
  233. returnoptions = +
  234.     set OptionList     = ^(Options, 1)
  235.     set OptionTextList = ^(OptionsText$($0), 1)
  236.     set Status         = STATUS_SUCCESSFUL
  237.  
  238. finish_ReturnOptions = +
  239.     Return $(Status) $(OptionList) $(OptionTextList)
  240.  
  241. ;------------------------------------------------------------------------
  242. ;
  243. ; InstallOption:
  244. ;
  245. ;      This section is shelled to by main installation processing
  246. ;      or by NCPASHEL.INF during reconfig, removal, update, etc.
  247. ;
  248. ;
  249. ; FUNCTION:  To copy files representing Options
  250. ;            To configure the installed option
  251. ;            To update the registry for the installed option
  252. ;
  253. ; INPUT:     $($0):  Language to use
  254. ;            $($1):  OptionID to install
  255. ;            $($2):  SourceDirectory
  256. ;            $($3):  AddCopy  (YES | NO)
  257. ;            $($4):  DoCopy   (YES | NO)
  258. ;            $($5):  DoConfig (YES | NO)
  259. ;
  260. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  261. ;                            STATUS_NOLANGUAGE |
  262. ;                            STATUS_USERCANCEL |
  263. ;                            STATUS_FAILED
  264. ;
  265. ;------------------------------------------------------------------------
  266. [InstallOption]
  267.     ;
  268.     ; Set default values for
  269.     ;
  270.     set Status   = STATUS_FAILED
  271.     ;
  272.     ; extract parameters
  273.     ;
  274.     set Option   = $($1)
  275.     set SrcDir   = $($2)
  276.     set AddCopy  = $($3)
  277.     set DoCopy   = $($4)
  278.     set DoConfig = $($5)
  279.  
  280.     ;
  281.     ; Check if the language requested is supported
  282.     ;
  283.     set LanguageList = ^(LanguagesSupported, 1)
  284.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  285.         Return STATUS_NOLANGUAGE
  286.     endif
  287.  
  288.     set-subst LF = "\n"
  289.  
  290.     read-syms GeneralConstants
  291.     read-syms FileConstants
  292.  
  293.     read-syms DialogConstants$(!STF_LANGUAGE)
  294.     ifstr(i) $(!NTN_Origination) == "NCPA"
  295.         set Continue = $(OK)
  296.     endif
  297.     read-syms FileConstants$(!STF_LANGUAGE)
  298.  
  299.     detect date
  300.  
  301.     set-title  $(FunctionTitle)
  302.  
  303.     set to   = Begin
  304.     set from = Begin
  305. ;
  306. ;  Assume all is well.
  307. ;
  308.     set CommonStatus = STATUS_SUCCESSFUL
  309.  
  310.     EndWait
  311.  
  312. ;
  313. ;   Set up the operation-mode-based variables and gaily welcome
  314. ;   the user.  If the "install mode" variable is improperly set,
  315. ;   assume this is a new installation.
  316. ;
  317.  
  318. Begin = +
  319.     Set ActivateDetection = FALSE
  320.  
  321.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  322.         set StartLabel = removeadapter
  323.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  324.         set StartLabel = UpgradeSoftware
  325.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  326.         set StartLabel = bindingadapter
  327.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  328. ;        set ActivateDetection = TRUE
  329.         set StartLabel = configureadapter
  330.         ;
  331.         ;   You cannot config the software component
  332.         ;
  333.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  334.             Debug-Output "Cannot configure the driver software."
  335.             Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  336.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  337.                 Debug-Output "ShellCode error: cannot get an error string."
  338.                 goto ShellCodeError
  339.             endif
  340.             set Error = $($R0)
  341.             set from = end
  342.             set to = end
  343.             goto nonfatalinfo
  344.         endif
  345.     else
  346. ;        set ActivateDetection = TRUE
  347.         set StartLabel = installadapter
  348.         set OEM_ABANDON_OPTIONS = {}
  349.         set OEM_ABANDON_SOFTWARE = FALSE
  350.         set OEM_ABANDON_ON = TRUE
  351.     endif
  352.  
  353.  
  354.  
  355.     ;  set the default values
  356.  
  357.     ; IRQ Level = 3
  358.     set IRQValue = *($(IRQList), 1)
  359.  
  360.     ; IOBase Address = 0x300
  361.     set IOBaseAddrValue = *($(IOBaseAddrList), 1)
  362.  
  363.     Set from = $(fatal)
  364.     Set to = $(fatal)
  365.     Goto $(StartLabel)
  366.  
  367. ;-----------------------------------------------
  368. ; Installation Section
  369. ;-----------------------------------------------
  370.  
  371. installadapter = +
  372. ;
  373. ;   First, check whether the same version of the software exists
  374. ;
  375.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  376.  
  377.     Ifstr $(KeyProduct) != $(KeyNull)
  378.         ;
  379.         ; Same version already existed in the local machine
  380.         ; Popup the dialog and ask the user whether he wants to continue
  381.         ;
  382.         CloseRegKey $(KeyProduct)
  383.  
  384.         ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  385.            ;
  386.            ; Cannot Install the same software again
  387.            ;
  388.            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  389.                $(ProductVersion)
  390.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  391.                Debug-Output "ShellCode error: cannot get an error string."
  392.                goto ShellCodeError
  393.            endif
  394.  
  395.            goto end
  396.         else
  397.            ;
  398.            ; Add a new adapter card?
  399.            ;
  400.            Shell $(UtilityInf), CardExistedDlg
  401.  
  402.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  403.                Debug-Output "ShellCode error: cannot get an error string."
  404.                goto ShellCodeError
  405.            endif
  406.  
  407.            ifstr(i) $($R1) != "OK"
  408.                goto end
  409.            endif
  410.            set OldVersionExisted = $(TRUE)
  411.         endif
  412.     endif
  413.  
  414. ;
  415. ;  dll load addition
  416. ;
  417.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  418.  
  419.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  420.         Goto ShellCodeError
  421.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  422.         Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  423.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  424.             goto ShellCodeError
  425.         endif
  426.         set Error = $($R0)
  427.         Goto fatal
  428.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  429.         Goto successful
  430.     Endif
  431.  
  432.     Set SrcDir = $($R1)
  433.  
  434.     install "Install-Dll"
  435.  
  436.     goto adaptersetup
  437.  
  438. ;-----------------------------------------------
  439. ; Configuration Section
  440. ;-----------------------------------------------
  441. ;
  442. ;   Get the current values of all the parameters
  443. ;
  444. configureadapter = +
  445.     Ifstr $(KeyProduct) == $(KeyNull)
  446.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  447.         Ifstr $(KeyProduct) == $(KeyNull)
  448.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  449.             Debug-Output "Cannot find component product key"
  450.             goto fatalregistry
  451.         Endif
  452.     Endif
  453.  
  454.     ;
  455.     ; Get the other parameters;  they're attached to the service parameters key
  456.     ;
  457.     Debug-Output "INF: Shelling to FindService"
  458.     Shell $(UtilityInf) FindService, $(KeyProduct)
  459.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  460.         Debug-Output "INF: FindService shell failure"
  461.         Goto ShellCodeError
  462.     Endif
  463.     Ifstr(i) $($R0) != NO_ERROR
  464.         Debug-Output "INF: FindService Shell error: "$($R0)
  465.         Goto fatalregistry
  466.     endif
  467.  
  468.     Set KeyParameters = $($R2)
  469.  
  470.     ;
  471.     ;  We don't need the services key, so close it.
  472.     ;
  473.     CloseRegKey $($R1)
  474.  
  475.     Ifstr $(KeyParameters) == $(KeyNull)
  476.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  477.         Debug-Output "Cannot find component service"
  478.         goto fatalregistry
  479.     endif
  480.  
  481.     set OldVersionExisted = $(TRUE)
  482.  
  483.     set ValueName = ""
  484.     set ValueData = ""
  485.     set ValueStr  = ""
  486.     set ValueList = {}
  487.  
  488.  
  489.     ;
  490.     ; Get the old values
  491.     ;
  492.     EnumRegValue $(KeyParameters) ValueList
  493.  
  494.     ForListDo $(ValueList)
  495.         set ValueItem = $($)
  496.         set ValueName = *($(ValueItem),1)
  497.         set ValueData = *($(ValueItem),4)
  498.         ifstr(i) $(ValueName) == "IOBaseAddress"
  499.             set IOBaseAddrIndex = $(ValueData)
  500.         else-ifstr(i) $(ValueName) == "InterruptNumber"
  501.             set IRQValueIndex = $(ValueData)
  502.         endif
  503.  
  504.     EndForListDo
  505.  
  506.  
  507.  
  508.     set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
  509.     ifstr(i) $(IRQValue) == ""
  510.         set IRQValue = *($(IRQList), 1)
  511.     endif
  512.  
  513.     Debug-Output $(InfName)" IRQ_Level is "$(IRQValue)
  514.  
  515.     set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
  516.  
  517.     ifstr(i) $(IOBaseAddrValue) == ""
  518.         set IOBaseAddrValue = *($(IOBaseAddrList), 1)
  519.     endif
  520.  
  521.     Debug-Output $(InfName)" I/o base is "$(IOBaseAddrValue)
  522.  
  523.  
  524.  
  525.     ;  Save the settings as they were read from the Registry.
  526.  
  527. ;    Shell $(ParamInf) Param_SaveValues
  528. ;    Set CurrParamSettings = $($R0)
  529. ;
  530. ;   Put up the adapter configuration dialog if necessary.
  531. ;
  532. ;   Note that $(CurrParamSettings) has the old known parameter values.
  533. ;
  534. adaptersetup = +
  535.  
  536.  
  537. ;    Shell "" DebugConfiguration "before displaying dialog"
  538.  
  539.     Set from = adapteroptions
  540.  
  541.  
  542. adapteroptions = +
  543.  
  544.  
  545.     LoadLibrary "Disk 1" $(DialogDllName) hLib
  546.  
  547.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  548.  
  549.     Debug-Output $(InfName)" I/o base is "$(IOBaseAddrValue)
  550.  
  551.  
  552.  
  553.     ui start "InputDlg"  $(hLib)
  554.  
  555.     set ExitButton      = $(ButtonPressed)
  556.  
  557.     Debug-Output " ButtonPressed "$(ButtonPressed)
  558.  
  559.  
  560.     FreeLibrary $(hLib)
  561.  
  562.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  563.                 set IOBaseAddrIndex = $(Combo1Out)
  564.                 set IRQValueIndex = $(Combo2Out)
  565.                 set ExitButton      = $(ButtonPressed)
  566.  
  567.                 ui pop 1
  568.  
  569.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  570.                 set CommonStatus = STATUS_USERCANCEL
  571.                 Debug-Output "Action: exit. Bye."
  572.                 ui pop 1
  573.                 goto end
  574.     else
  575.                 ;
  576.                 ; Unknow command
  577.                 ;
  578.                 ui pop 1
  579.  
  580.  
  581.                 Debug-Output "Action: unknown. Bye."
  582.                 goto end
  583.     endif
  584.  
  585.  
  586.     Debug-Output " Combo list out "$(ComboListItemsOut)
  587.  
  588.  
  589. ;
  590. ;   If installing, go create the necessary keys;
  591. ;   if configuring, they're already open.
  592. ;
  593. skipoptions =+
  594.  
  595.     ifint $(OldVersionExisted) == $(TRUE)
  596.         ifstr(i) $(!NTN_InstallMode) == configure
  597.             goto writeparameters
  598.         endif
  599.     endif
  600.     StartWait
  601.     ;
  602.     ; Add Software Component
  603.     ;
  604.     ifint $(OldVersionExisted) == $(FALSE)
  605.  
  606.         ifstr(i) $(!NTN_InstallMode) == "install"
  607.            Ifstr(i) $(DoCopy) == "YES"
  608.  
  609.               Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  610.  
  611.               Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  612.                   Goto ShellCodeError
  613.               Else-Ifstr(i) $($R0) == STATUS_FAILED
  614.                   Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  615.                   ifint $($ShellCode) != $(!SHELL_CODE_OK)
  616.                       goto ShellCodeError
  617.                   endif
  618.                   set Error = $($R0)
  619.                   Goto fatal
  620.               Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  621.                   Goto successful
  622.               Endif
  623.  
  624.               Set SrcDir = $($R1)
  625.  
  626.            Endif
  627.  
  628.            install "Install-Option"
  629.  
  630.            ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  631.               Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  632.               ifint $($ShellCode) != $(!SHELL_CODE_OK)
  633.                   goto ShellCodeError
  634.               endif
  635.               set Error = $($R0)
  636.               goto fatal
  637.            endif
  638.         endif
  639.  
  640.  
  641.  
  642.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  643.             $(ProductSoftwareName), +
  644.             $(ProductSoftwareName), +
  645.             $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  646.             $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  647.             $(NetEventDLL)
  648.  
  649.         Set OEM_ABANDON_SOFTWARE = TRUE
  650.  
  651.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  652.             Debug-Output "ShellCode error"
  653.             goto ShellCodeError
  654.         endif
  655.         ;
  656.         ;   At this point:
  657.         ;     $R1 contains the product version key handle;
  658.         ;     $R2 contains the NetRules subkey handle;
  659.         ;     $R3 contains the new Services key handle; and
  660.         ;     $R4 contains the Parameters key
  661.         ;     $R5 contains the Linkage Key
  662.         ;
  663.         set RegistryErrorIndex = $($R0)
  664.         set KeyProduct      = $($R1)
  665.         Set SoftNetRulesKey = $($R2)
  666.         CloseRegKey $($R3)
  667.         CloseRegKey $($R4)
  668.         CloseRegKey $($R5)
  669.  
  670.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  671.             EndWait
  672.             Debug-Output "Registry error: add software components"
  673.             CloseRegKey $(KeyProduct)
  674.             CloseRegKey $(SoftNetRulesKey)
  675.             goto fatalregistry
  676.         endif
  677.  
  678.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  679.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  680.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  681.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  682.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  683.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  684.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  685.  
  686.         Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  687.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  688.             Debug-Output "ShellCode error."
  689.             goto ShellCodeError
  690.         endif
  691.  
  692.         set RegistryErrorIndex = $($R0)
  693.  
  694.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  695.             EndWait
  696.             Debug-Output "Registry error: add value list."
  697.             CloseRegKey $(KeyProduct)
  698.             CloseRegKey $(SoftNetRulesKey)
  699.             goto fatalregistry
  700.         endif
  701.  
  702.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  703.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  704.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  705.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  706.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  707.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  708.  
  709.         Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  710.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  711.             Debug-Output "ShellCode error."
  712.             goto ShellCodeError
  713.         endif
  714.  
  715.         set RegistryErrorIndex = $($R0)
  716.  
  717.         CloseRegKey $(KeyProduct)
  718.         CloseRegKey $(SoftNetRulesKey)
  719.  
  720.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  721.             EndWait
  722.             Debug-Output "Resgitry error: add value list."
  723.             goto fatalregistry
  724.         endif
  725.     endif
  726. ;
  727. ;   Create the HARDWARE\Netcard region and its corresponding service
  728. ;
  729.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  730.  
  731.     ifint $($R4) != -1
  732.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  733.     endif
  734.  
  735.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  736.         Debug-Output "Cannot add hardware component"
  737.         goto ShellCodeError
  738.     endif
  739.  
  740.     set RegistryErrorIndex = $($R0)
  741.  
  742.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  743.         EndWait
  744.         Debug-Output "Registry error: add hardware component"
  745.         CloseRegKey $($R1)
  746.         CloseRegKey $($R2)
  747.         CloseRegKey $($R3)
  748.         goto fatalregistry
  749.     endif
  750.  
  751. ;
  752. ;   At this point:
  753. ;     $R1  Registry key variable for HARDWARE\Netcard\(n)
  754. ;     $R2  Registry key variable for HARDWARE\Netcard\(n)\\NetRules
  755. ;     $R3  Registry key handle for <service>\Parameters key
  756. ;     $R4  Adapter number assigned to adapter
  757. ;     $R5  Service name generated by combining svc name with adapter number
  758. ;
  759.     set KeyParameters = $($R3)
  760.     set KeyAdapterRules = $($R2)
  761.     set AdapterNumber = $($R4)
  762.  
  763.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  764.                        {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  765.                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  766.                        {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  767.                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  768.                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  769.  
  770.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  771.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  772.         Debug-Output "ShellCode error"
  773.         goto ShellCodeError
  774.     endif
  775.  
  776.     CloseRegKey $($R1)
  777.  
  778.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  779.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  780.  
  781.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  782.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  783.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  784.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  785.  
  786.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  787.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  788.         Debug-Output "ShellCode error."
  789.         goto ShellCodeError
  790.     endif
  791.  
  792.     set RegistryErrorIndex = $($R0)
  793.  
  794.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  795.         EndWait
  796.         Debug-Output "Resgitry error: add value list."
  797.         CloseRegKey $(KeyParameters)
  798.         CloseRegKey $(KeyAdapterRules)
  799.         goto fatalregistry
  800.     endif
  801.  
  802.     CloseRegKey $(KeyAdapterRules)
  803.  
  804.     goto writeparameters
  805. ;
  806. ;   REQUIRED:   $(KeyParameters) contains service Parameters key handle
  807. ;
  808. writeparameters = +
  809.     Shell $(UtilityInf), GetBusTypeNum
  810.     set BusTypeNum = $($R1)
  811. ; Testing the BusNum. We are coding it to 0
  812.     set BusNumValue = 0 ;
  813. ; End of BusNum
  814.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  815.         Debug-Output "ShellCode error."
  816.         goto ShellCodeError
  817.     endif
  818.  
  819.  
  820.     set IRQValue = *($(IRQValues), ~($(IRQList),$(IRQValueIndex)))
  821.  
  822.     set IOBaseAddrValue = *($(IOBaseAddrValues), ~($(IOBaseAddrList),$(IOBaseAddrIndex)))
  823.  
  824.  
  825.     set NewValueList = {{IOBaseAddress,  $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
  826.                         {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  827.                         {BusNumber,  $(NoTitle),$(!REG_VT_DWORD),$(BusNumValue)},+
  828.                         {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  829.                         {InterruptNumber,  $(NoTitle),$(!REG_VT_DWORD),$(IRQValue)} }
  830.  
  831.  
  832.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  833.  
  834.     CloseRegKey $(KeyParameters)
  835.  
  836.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  837.         Debug-Output "ShellCode error."
  838.         goto ShellCodeError
  839.     endif
  840.  
  841.     set RegistryErrorIndex = $($R0)
  842.  
  843.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  844.         Debug-Output "Registry error: Add value list"
  845.         goto fatalregistry
  846.     endif
  847.  
  848.     EndWait
  849.  
  850.     goto successful
  851.  
  852. ;-----------------------------------------------
  853. ; Binding section
  854. ;-----------------------------------------------
  855. bindingadapter =+
  856.     set Error = "Binding: Sorry, not yet implemented."
  857.     goto fatal
  858.  
  859. ;-----------------------------------------------
  860. ; Removeadapter section
  861. ;-----------------------------------------------
  862.  
  863. removeadapter = +
  864.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  865.         ; Remove Software Component
  866.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  867.             $(ProductSoftwareName)
  868.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  869.             Debug-Output "ShellCode error"
  870.             goto ShellCodeError
  871.         endif
  872.  
  873.         set RegistryErrorIndex = $($R0)
  874.  
  875.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  876.             goto fatalregistry
  877.         endif
  878.     else
  879.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  880.             $(ProductSoftwareName), $(!NTN_RegBase)
  881.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  882.             Debug-Output "ShellCode error"
  883.             goto ShellCodeError
  884.         endif
  885.  
  886.         set RegistryErrorIndex = $($R0)
  887.  
  888.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  889.             goto fatalregistry
  890.         endif
  891.     endif
  892.  
  893.     goto end
  894.  
  895. ;-----------------------------------------------
  896. ; Upgrade Software section
  897. ;-----------------------------------------------
  898.  
  899. UpgradeSoftware = +
  900.     ;
  901.     ; First determine whether we want to do upgrade or update for software
  902.     ; or hardware component. Then we will determine whether the Mode is
  903.     ; update or upgrade.
  904.     ;
  905.     ; If the same version of the product existed in the registry, we do
  906.     ; update. Otherwise, we will do a upgrade
  907.     ;
  908.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  909.         ; Upgrade software component
  910.         ;
  911.         ; see whether the same version exist or not
  912.         ;
  913.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  914.  
  915.         Ifstr $(KeyProduct) != $(KeyNull)
  916.             GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  917.             set Version = *($(VersionInfo), 4)
  918.  
  919.             ;
  920.             ; Update the binaries
  921.             ;
  922.             Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  923.  
  924.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  925.                 Debug-Output "ShellCode error"
  926.                 goto ShellCodeError
  927.             endif
  928.  
  929.             set !UG_Filename = $($R0)
  930.  
  931.             ifstr(i) $(!UG_Filename) != ""
  932.                 install "Install-Update"
  933.                 ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  934.                     goto fatal
  935.                 endif
  936.             endif
  937.  
  938.             ; Upgrade the version number
  939.             ;
  940.             SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  941.             SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  942.  
  943.             ;
  944.             ; do nothing for update
  945.             ;
  946.             ifint $(Version) != $(ProductVersion)
  947.                ;
  948.                ; If the major version number is not the same,
  949.                ; it is major upgrade. So let Upgrade the product
  950.                ;
  951.                ;
  952.                ; make other upgrade change if necessary
  953.                ;
  954.             endif
  955.             CloseRegKey $(KeyProduct)
  956.         else
  957.             ;
  958.             ; Cannot Open software key, goto ERROR
  959.             ;
  960.             goto fatalregistry
  961.         endif
  962.     else
  963.         ;
  964.         ; upgrade/update hardware component
  965.         ; There is no different between upgrade and update for hardware
  966.         ; component
  967.         ;
  968.         ; 1. Get the Service Name
  969.         ; 2. Change the NetRule section if necessary
  970.         ;
  971.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  972.               $(MAXIMUM_ALLOWED) NetworkCardKey
  973.         Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  974.             ;
  975.             ; Get Service name
  976.             ;
  977.             GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  978.             set ServiceName = *($(ServiceNameInfo), 4)
  979.  
  980.             ;
  981.             ; Change the NetRule if necessary
  982.             ;
  983.             OpenRegKey $(NetworkCardKey) "" "NetRules" +
  984.                 $(MAXIMUM_ALLOWED) NetRuleKey
  985.             Ifstr(i) $(NetRuleKey) != $(KeyNull)
  986.                 ;
  987.                 ; Make the change....
  988.                 ;
  989.             else
  990.                 ;
  991.                 ; Error, cannot open net rules key
  992.                 ;
  993.                 goto fatalregistry
  994.             endif
  995.  
  996.             CloseRegKey $(NetRules)
  997.             CloseRegKey $(NetworkCardKey)
  998.         else
  999.             ;
  1000.             ; Error, cannot open network card key
  1001.             ;
  1002.             goto fatalregistry
  1003.         endif
  1004.         ;
  1005.         ; 3. Change the service section of the hardware. i.e.,
  1006.         ;    ParameterName change, value change, etc.
  1007.         ;
  1008.         OpenRegKey $(!REG_H_LOCAL) "" +
  1009.               $(!NTN_ServiceBase)"\"$(ServiceName) +
  1010.               $(MAXIMUM_ALLOWED) ServiceKey
  1011.  
  1012.         Ifstr(i) $(ServiceKey) != $(KeyNull)
  1013.             ;
  1014.             ; Get the ServiceKey to change the Start value
  1015.             ; or Type value. Or open Parameters key to
  1016.             ; change the hardware parameters if necessary.
  1017.             ;
  1018.             CloseRegKey $(ServiceKey)
  1019.         else
  1020.             ;
  1021.             ; Error, cannot open network card key
  1022.             ;
  1023.             goto fatalregistry
  1024.         endif
  1025.     endif
  1026.  
  1027.     goto end
  1028.     ;
  1029.     ; End of Upgrade Software
  1030.     ;
  1031.  
  1032. ;
  1033. ;  Escape hatches
  1034. ;
  1035. successful = +
  1036.     goto end
  1037.  
  1038. abandon = +
  1039.     ForListDo $(OEM_ABANDON_OPTIONS)
  1040.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1041.             $(ProductSoftwareName), $($)
  1042.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1043.             Debug-Output "ShellCode error"
  1044.             goto ShellCodeError
  1045.         endif
  1046.  
  1047.         set RegistryErrorIndex = $($R0)
  1048.  
  1049.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1050.             goto fatalregistry
  1051.         endif
  1052.     EndForListDo
  1053.  
  1054.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  1055.         ; Remove Software Component
  1056.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1057.             $(ProductSoftwareName), FALSE
  1058.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1059.             Debug-Output "ShellCode error"
  1060.             goto ShellCodeError
  1061.         endif
  1062.  
  1063.         set RegistryErrorIndex = $($R0)
  1064.  
  1065.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1066.             goto fatalregistry
  1067.         endif
  1068.     endif
  1069.  
  1070.     goto end
  1071.  
  1072. ;
  1073. ; warning display
  1074. ;
  1075. warning = +
  1076.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1077.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1078.         goto ShellCodeError
  1079.     endif
  1080.     ifstr(i) $($R1) == "OK"
  1081.         goto $(to)
  1082.     else-ifstr(i) $($R1) == "CANCEL"
  1083.         goto $(from)
  1084.     else
  1085.         goto "end"
  1086.     endif
  1087. ;
  1088. ; non fatal error display
  1089. ;
  1090. nonfatalinfo = +
  1091.     Set Severity = STATUS
  1092.     Set CommonStatus = STATUS_USERCANCEL
  1093.     goto nonfatalmsg
  1094. nonfatal = +
  1095.     Set Severity = NONFATAL
  1096.     goto nonfatalmsg
  1097. nonfatalmsg = +
  1098.     ifstr(i) $(Error) == ""
  1099.         Set Severity = NONFATAL
  1100.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1101.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1102.             goto ShellCodeError
  1103.         endif
  1104.         set Error = $($R0)
  1105.     endif
  1106.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1107.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1108.         goto ShellCodeError
  1109.     endif
  1110.     ifstr(i) $($R1) == "OK"
  1111.         goto $(from)
  1112.     else
  1113.         goto "end"
  1114.     endif
  1115.  
  1116. ;
  1117. ;  Registry is broken
  1118. ;
  1119. fatalregistry = +
  1120.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1121.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1122.         goto ShellCodeError
  1123.     endif
  1124.     set Error = $($R0)
  1125.     goto fatal
  1126. ;
  1127. ;  Netcard detection failure
  1128. ;
  1129. fataldetect = +
  1130.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  1131.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1132.         Debug-Output "ShellCode error: cannot get an error string."
  1133.         goto ShellCodeError
  1134.     endif
  1135.     set Error = $($R0)
  1136.     Goto fatal
  1137. ;
  1138. ; fatal error display
  1139. ;
  1140. fatal = +
  1141.     ifstr(i) $(Error) == ""
  1142.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1143.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1144.             goto ShellCodeError
  1145.         endif
  1146.         set Error = $($R0)
  1147.     endif
  1148.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1149.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1150.         goto ShellCodeError
  1151.     endif
  1152.  
  1153.     goto setfailed
  1154.  
  1155. ;
  1156. ;  Shelling error
  1157. ;
  1158. ShellCodeError = +
  1159.     set DlgType      = "MessageBox"
  1160.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  1161.     set STF_MB_TEXT  = $(ShellCodeErrorText)
  1162.     set STF_MB_TYPE  = 1
  1163.     set STF_MB_ICON  = 3
  1164.     set STF_MB_DEF   = 1
  1165.     ui start "Error Message"
  1166.     goto setfailed
  1167.  
  1168. setfailed = +
  1169.     set CommonStatus = STATUS_FAILED
  1170.     ;
  1171.     ; if OEM_ABANDON_ON == TRUE, then remove the registry entries
  1172.     ;
  1173.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1174.         set OEM_ABANDON_ON = FALSE
  1175.         goto abandon
  1176.     endif
  1177.     goto end
  1178.  
  1179. end = +
  1180.     goto term
  1181.  
  1182. term = +
  1183.  
  1184.     Return $(CommonStatus)
  1185.  
  1186. [DebugConfiguration]
  1187.  
  1188.     Set InfName = "%dlk02"
  1189.     Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
  1190.     Debug-Output $(InfName)" IRQ_Level is "$(!p:IRQ_Level)
  1191.     Debug-Output $(InfName)" IOBaseAddrValue is "$(!p:IOBaseAddrValue)
  1192.     Debug-Output $(InfName)" TransceiverValue is "$(!p:TransceiverValue)
  1193.     Debug-Output $(InfName)" MemBaseAddrDec is "$(!p:MemBaseAddrDec)
  1194.     Debug-Output $(InfName)" MappedValue is "$(!p:MappedValue)
  1195.  
  1196.     return
  1197.  
  1198.  
  1199. ;***************************************************************
  1200. ;  INSTALL SECTIONS
  1201. ;***************************************************************
  1202. [Install-Option]
  1203.     set STF_VITAL = ""
  1204.  
  1205.     ifstr(i) $(AddCopy) == "YES"
  1206.  
  1207.         ;
  1208.         ; Add the files to the copy list
  1209.         ;
  1210.         ;  BUGBUG: eliminate the "nt2" in the next line when Sunil fixes
  1211.         ;      the other INF files
  1212.         ;
  1213.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1214.  
  1215.     endif
  1216.  
  1217.     ifstr(i) $(DoCopy) == "YES"
  1218.  
  1219.        ;
  1220.        ; Copy files in the copy list
  1221.        ;
  1222.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1223.        CopyFilesInCopyList
  1224.  
  1225.     endif
  1226.  
  1227.     Exit
  1228.  
  1229. [Install-Update]
  1230.    set STF_VITAL        = ""
  1231.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1232.    ;set STF_VERSION     = "YES"
  1233.  
  1234.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1235.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1236.  
  1237.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1238.    CopyFilesInCopyList
  1239.  
  1240.    exit
  1241.  
  1242.  
  1243. [Install-Dll]
  1244.    set STF_VITAL        = ""
  1245.    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1246.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1247.    CopyFilesInCopyList
  1248.    exit
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254. [Source Media Descriptions]
  1255.     1  = "ETHER16 Driver Disk"  , TAGFILE = disk1
  1256.  
  1257. [ProductType]
  1258. STF_PRODUCT  = Winnt
  1259. STF_PLATFORM = I386
  1260.  
  1261.  
  1262. [Files-Inf]
  1263. 1, oemsetup.inf,    SIZE=1000,     RENAME=$(!UG_Filename)
  1264.  
  1265. [Files-ETHER]
  1266. 1, ETHER.SYS , SIZE=88888
  1267.  
  1268. [Files-Dll]
  1269. 1, dialog1.dll,  SIZE=999
  1270.  
  1271.  
  1272.  
  1273. [LanguagesSupported]
  1274.     ENG
  1275.  
  1276. [OptionsTextENG]
  1277.     ETHER     = "LINKSYS ETHER16 Adapter"
  1278.  
  1279. [FileConstantsENG]
  1280. ProCaption   = "Windows NT Setup"
  1281. ProCancel    = "Cancel"
  1282. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  1283.                "Are you sure you want to cancel copying files?"
  1284. ProCancelCap = "Network Setup Message"
  1285. ProText1     = "Copying:"
  1286. ProText2     = "To:"
  1287.  
  1288. FunctionTitle   = $(GenericAdapterName)" Setup"
  1289.  
  1290. ProductSoftwareDescription = $(GenericDriverName)
  1291. ProductHardwareDescription = $(GenericAdapterName)
  1292. ProductHardwareETHERDescription="LINKSYS ETHER16 Adapter"
  1293.  
  1294. ProductSoftwareTitle =       $(GenericDriverName)
  1295. ProductHardwareETHERTitle =       $(GenericAdapterName)
  1296.  
  1297. DialogDllName   = "dialog1.dll"
  1298.  
  1299.  
  1300. IRQList  = ^(IRQChoices, 1)
  1301. IRQValues = ^(IRQChoices, 2)
  1302.  
  1303. IOBaseAddrList = ^(IOBaseAddrChoices, 1)
  1304. IOBaseAddrValues = ^(IOBaseAddrChoices, 2)
  1305.  
  1306.  
  1307. [DialogConstantsENG]
  1308. Help        = "&Help"
  1309. Exit        = "Cancel"
  1310. OK          = "OK"
  1311. HelpContext = ""
  1312. Continue    = "Continue"
  1313. Cancel      = "Cancel"
  1314.  
  1315. [MemoryMappedChoicesENG]
  1316. Map_1 = 1, "ON"
  1317. Map_2 = 0, "OFF"
  1318.  
  1319. [FileDependentDlgENG]
  1320.  
  1321. DlgText = "Please select values for the follwing fields:"
  1322.  
  1323. DlgType = "RadioCombination"
  1324. DlgTemplate = "DIALOG1"
  1325. Caption = $(FunctionTitle)
  1326.  
  1327.  
  1328. CBOptionsGreyed = {}
  1329. NotifyFields = {NO, NO}
  1330.  
  1331. Combo1Label = "I/O &Port:"
  1332. Combo2Label = "&IRQ Number:"
  1333.  
  1334. Combo1List = $(IOBaseAddrList)
  1335. Combo1Out  = $(IOBaseAddrValue)
  1336.  
  1337. Combo2List = $(IRQList)
  1338. Combo2Out  = $(IRQValue)
  1339.  
  1340.  
  1341. ComboListItemsIn  = {Combo1List,Combo2List}
  1342. ComboListItemsOut = {Combo1Out,Combo2Out}
  1343.  
  1344. EditTextIn = ""
  1345. EditTextLim = ""
  1346.  
  1347.  
  1348. [IRQChoices]
  1349. IRQ_1 = "Auto",3
  1350. IRQ_2 = "3",3
  1351. IRQ_3 = "4",4
  1352. IRQ_4 = "5",5
  1353. IRQ_5 = "9",9
  1354. IRQ_6 = "10",10
  1355. IRQ_7 = "11",11
  1356. IRQ_8 = "12",12
  1357. IRQ_9 = "14",14
  1358. IRQ_10= "15",15
  1359.  
  1360. [IOBaseAddrChoices]
  1361. IOBase_1 = "Auto",768
  1362. IOBase_2 = "0x200",512
  1363. IOBase_3 = "0x220",544
  1364. IOBase_4 = "0x240",576
  1365. IOBase_5 = "0x260",608
  1366. IOBase_6 = "0x280",640
  1367. IOBase_7 = "0x2A0",672
  1368. IOBase_8 = "0x2C0",704
  1369. IOBase_9 = "0x2E0",736
  1370. IOBase_10= "0x300",768
  1371. IOBase_11= "0x320",800
  1372. IOBase_12= "0x340",832
  1373. IOBase_13= "0x360",864
  1374. IOBase_14= "0x380",896
  1375. IOBase_15= "0x3A0",928
  1376. IOBase_16= "0x3C0",960
  1377. IOBase_17= "0x3E0",992
  1378. IOBase_18= "0x800",2048
  1379. IOBase_19= "0x1800",6144
  1380. IOBase_20= "0x2800",10240
  1381. IOBase_21= "0x3800",14336
  1382.