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

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