home *** CD-ROM | disk | FTP | other *** search
/ ftp.tcs3.com / ftp.tcs3.com.tar / ftp.tcs3.com / DRIVERS / Network / 3COM / 3C59x / 3c59xx.exe / NDIS / WINNT35 / OEMSETUP.INF < prev   
INI File  |  1995-05-01  |  41KB  |  1,062 lines

  1. ; -----------------------------------------------------------------------
  2. ; OEMSETUP FILE FOR 3Com PCI 10/100Mb Bus-Master adpaters.
  3. ; Copyright⌐ 1994-1995 3Com Corporation.  All rights reserved.
  4. ; -----------------------------------------------------------------------
  5. ;
  6. ; OS: Windows NT Version 3.5
  7. ; Platform type: Intel x86
  8. ;
  9. ; Supported adapters:
  10. ; -------------------
  11. ; 3Com Fast Etherlink Bus-master Adapter PCI/EISA (3C595, 3C597)
  12. ; 3Com Etherlink III Bus-master Adapter PCI/EISA (3C590, 3C592)
  13. ;
  14. ; Usage:
  15. ;
  16. ;   This file is used for the installation/configuration/deinstallation
  17. ;   procedure of Fast Etherlink/Etherlink III drivers for Windows NT. 
  18. ;
  19. ; Current Version: %VER 1.0j
  20. ;
  21. ; History:
  22. ;   v1.0    {JSB}: Initial Version 
  23. ;   v1.0a   {JSB}: Minor tweeks 
  24. ;   v1.0b   {JSB}: Changed to use EL59x.sys instead fo EL59x.sys
  25. ;           Removed some of the keywords not needed for the defaults! (BusMaster=YES)
  26. ;
  27. ;   v1.0c   {JSB}: Added in support for V2 PCI (EL590) to the Inf file
  28. ;   v1.0d   {jsb}: Added el59x.sys as a place to look for messages for the Audit log.
  29. ;   v1.0e   {jsb}: Changed Configure error message too: "Cannot configure the software component"
  30. ;   v1.0f   {02/15/95 - jsb}: Enabled EISA Cards.
  31. ;   v1.0g   {03/09/95 - jsb}: Added smarts to use dectection for PCI on v3.51 and Eisa on v3.50 & v3.51
  32. ;   v1.0h   {04/04/95 - jsb}: Special version to support PCI Only for running change!
  33. ;   v1.0i   {04/11/95 - jsb}: Re-added support of EISA adapters 
  34. ;   v1.0j   {04/21/95 - jsb}: Now supports CPS automated install from NT35 Reskit.
  35. ;
  36. ;------------------------------------------------------------------------
  37. ;
  38.  
  39. [Identification]
  40.     OptionType = NetAdapter
  41.  
  42. [PlatformsSupported]
  43.     ISA
  44.     EISA
  45.     "Jazz-Internal Bus"
  46.     PCI
  47.  
  48. [Options]
  49.     3C595   ; PCI 10/100Mb Fast Etherlink 
  50.     3C597   ; EISA 10/100Mb Fast Etherlink
  51.     3C590   ; PCI 10Mb Etherlink III
  52.     3C592   ; EISA 10Mb Etherlink III 
  53.  
  54. [FileConstants]
  55.     UtilityInf                  = "UTILITY.INF"
  56.     subroutineinf               = "SUBROUTN.INF"
  57.     SoftwareType                = "driver"
  58.     Exit_Code                   = 0
  59.     NetEventDLL                 = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el59x.sys"
  60.     IoLogMsgDLL                 = "%SystemRoot%\System32\IoLogMsg.dll"
  61.  
  62.     Manufacturer                = "3Com"
  63.     ProductMajorVersion         = "1"
  64.     ProductMinorVersion         = "1"
  65.     ProductVersion              = $(ProductMajorVersion)"."$(ProductMinorVersion)
  66.     ProductSoftwareName         = "El59x"
  67.     ProductSoftwareImagePath    = "%SystemRoot%\System32\drivers\el59x.sys"
  68.     NetRuleSoftwareType         = "El59xSys ndisDriver El59xDriver"
  69.     NetRuleSoftwareUse          = $(SoftwareType)
  70.     NetRuleSoftwareBindForm     = """El59xSys"" yes no container"
  71.     NetRuleSoftwareClass        = {"El59xDriver basic"}
  72.     NetRuleSoftwareBindable     = {"El59xDriver El59xAdapter non exclusive 100"}
  73.     ProductHardwareName         = "El59x"
  74.     NetRuleHardwareBindForm     = " yes yes container"
  75.  
  76.     ProductKeyName              = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  77.     ParamKeyName                = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  78.  
  79.     FunctionTitle               = "3Com 3C59x Bus Master Adapter Card Setup"
  80.     ProductSoftwareDescription  = "3Com 3C59x Bus Master Adapter Driver"
  81.     ProductSoftwareTitle        = "3Com 3C59x Bus Master Adapter Driver"
  82.  
  83.     ProductHardware3C595Title   = "3Com Fast Etherlink PCI 10/100BASE-T Adapter (3C595)"
  84.     ProductHardware3C595Description = "3Com Fast EtherLink PCI 10/100BASE-T Adapter (3C595)"
  85.     NetRuleHardware3C595Type    = "El59x El59xAdapter"
  86.     NetRuleHardware3C595Class   = {"El59xAdapter basic"}
  87.  
  88.     ProductHardware3C597Title   = "3Com Fast EtherLink EISA 10/100BASE-T Adapter (3C597)"
  89.     ProductHardware3C597Description = "3Com Fast EtherLink EISA 10/100BASE-T Adapter (3C597)"
  90.     NetRuleHardware3C597Type    = "El59x El59xAdapter"
  91.     NetRuleHardware3C597Class   = {"El59xAdapter basic"}
  92.  
  93.     ProductHardware3C590Title   = "3Com Etherlink III PCI Bus-Master Adapter (3C590)"
  94.     ProductHardware3C590Description = "3Com Etherlink III PCI Bus-Master Adapter (3C590)" 
  95.     NetRuleHardware3C590Type    = "El59x El59xAdapter"
  96.     NetRuleHardware3C590Class   = {"El59xAdapter basic"}
  97.  
  98.     ProductHardware3C592Title   = "3Com Etherlink III EISA Bus-Master Adapter (3C592)" 
  99.     ProductHardware3C592Description = "3Com Etherlink III EISA Bus-Master Adapter (3C592)" 
  100.     NetRuleHardware3C592Type    = "El59x El59xAdapter"
  101.     NetRuleHardware3C592Class   = {"El59xAdapter basic"}
  102.  
  103.     Adapter3C595Type            = 5             ;; PCI board
  104.     Adapter3C590Type            = 5             ;; PCI board
  105.     3C595CFID                   = 22864         ;; 0x5950
  106.     3C590CFID                   = 22784         ;; 0x5900
  107.  
  108.     Adapter3C597Type            = 2             ;; EISA board
  109.     Adapter3C592Type            = 2             ;; EISA board
  110.  
  111.     ;; Fast EtherLink Eisa
  112.     3C597EISA_COMPRESSID        = 5860688       ;; 0x00596D50 
  113.     3C597EISA_1BYTE             = 1884908880    ;; 0x70596d50
  114.     3C597EISA_MASK              = 4043309055    ;; 0xF0FFFFFF       
  115.  
  116.     ;; EtherLink III Eisa
  117.     3C592EISA_COMPRESSID        = 5860688       ;; 0x00596D50 
  118.     3C592EISA_1BYTE             = 542731600     ;; 0x20596d50
  119.     3C592EISA_MASK              = 4043309055    ;; 0xF0FFFFFF       
  120.  
  121. [GeneralConstants]
  122.     from      = ""
  123.     to    = ""
  124.     ExitCodeOk     = 0
  125.     ExitCodeCancel = 1                
  126.     ExitCodeFatal  = 2
  127.     KeyNull     = ""
  128.     MAXIMUM_ALLOWED   = 33554432
  129.     RegistryErrorIndex = NO_ERROR
  130.     KeyProduct  = ""
  131.     KeyParameters   = ""
  132.     TRUE        = 1
  133.     FALSE       = 0
  134.     NoTitle        = 0
  135.     ExitState   = "Active"
  136.     OldVersionExisted = $(FALSE)
  137.     DriverPath  = $(!STF_NTPATH)\drivers
  138.     NT350VersionConstant = "3.50"
  139.     NT310VersionConstant = "3.10"
  140.  
  141. [date]
  142.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  143.  
  144. [Identify]
  145.     read-syms Identification
  146.     set Status     = STATUS_SUCCESSFUL
  147.     set Identifier = $(OptionType)
  148.     set Media      = #("Source Media Descriptions", 1, 1)
  149.     Return $(Status) $(Identifier) $(Media)
  150.  
  151. [ReturnOptions]
  152.     set Status        = STATUS_FAILED
  153.     set OptionList     = {}
  154.     set OptionTextList = {}
  155.     set LanguageList = ^(LanguagesSupported, 1)
  156.     Ifcontains(i) $($0) in $(LanguageList)
  157.     ifstr(i) $($1) == ""
  158.         goto returnoptions
  159.     endif
  160.         set PlatformList = ^(PlatformsSupported, 1)
  161.     Ifcontains(i) $($1) in $(PlatformList)
  162.         goto returnoptions
  163.     else
  164.         set Status = STATUS_NOTSUPPORTED
  165.         goto finish_ReturnOptions
  166.     endif
  167.     else
  168.         set Status = STATUS_NOLANGUAGE
  169.         goto finish_ReturnOptions
  170.     endif
  171.  
  172. returnoptions = +
  173.     set OptionList     = ^(Options, 1)
  174.     set OptionTextList = ^(OptionsText$($0), 1)
  175.     set Status         = STATUS_SUCCESSFUL
  176.  
  177. finish_ReturnOptions = +
  178.     Return $(Status) $(OptionList) $(OptionTextList)
  179.  
  180. [InstallOption]
  181.     ;;;
  182.     ;;; Change "Set !G:DebugOutputControl=0" to 1 in NCAPSHEL.INF for debug support.
  183.     ;;;
  184.     ;;; set !G:DebugOutputControl=1     ;; Debug output {1=turned on, 0= turned off}
  185.     set Option   = $($1)
  186.     set SrcDir   = $($2)
  187.     set AddCopy  = $($3)
  188.     set DoCopy   = $($4)
  189.     set DoConfig = $($5)
  190.     set LanguageList = ^(LanguagesSupported, 1)
  191.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  192.     Return STATUS_NOLANGUAGE
  193.     endif
  194.     set-subst LF = "\n"
  195.     read-syms GeneralConstants
  196.     read-syms FileConstants
  197. ;   set NetRuleSoftwareBindable = $($R1)
  198.     read-syms DialogConstants$(!STF_LANGUAGE)
  199.     ifstr(i) $(!NTN_Origination) == "NCPA"
  200.     set Continue = "OK"
  201.     endif
  202.     read-syms FileConstants$(!STF_LANGUAGE)
  203.     detect date
  204.     set-title  $(Function$(Option)Title)
  205.     set to   = Begin
  206.     set from = Begin
  207.     set CommonStatus = STATUS_SUCCESSFUL
  208.     EndWait
  209.  
  210. Begin = +
  211.     
  212.     ;;
  213.     ;; Get the Version of Windows NT we are installing on.  This will allow us to use the
  214.     ;; PCI Support that will be included in NT v3.51
  215.     ;;
  216.     set CurrentVersionValue = ""
  217.     OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
  218.     Ifstr(i) $(KeyNt) != ""
  219.     GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue
  220.     Debug-Output "$(InfFile) $(Option): WinNT CurrentVersion ="$(CurrentVersionValue)
  221.     CloseRegKey $(KeyNt)
  222.     Endif
  223.     
  224.     ifstr(i) (*($(CurrentVersionValue),4)) == $(NT310VersionConstant)    ;; NT v3.10 not supported!
  225.         Debug-Output "$(InfFile) $(Option): Configureadapter"
  226.     set Error = "Windows NT v3.10 is not support by this product"
  227.     goto fatal
  228.     endif
  229.     
  230.  
  231.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  232.         set StartLabel = removeadapter
  233.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  234.         set StartLabel = UpgradeSoftware
  235.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  236.         set StartLabel = bindingadapter
  237.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  238.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  239.             Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  240.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  241.             goto ShellCodeError
  242.             endif
  243.             set Error = $($R0)
  244.             set from = end
  245.             set to = end
  246.             goto nonfatalinfo
  247.         else
  248.             set StartLabel = configureadapter
  249.         endif
  250.     else
  251.         set StartLabel = installadapter
  252.         set OEM_ABANDON_OPTIONS = {}
  253.         set OEM_ABANDON_SOFTWARE = FALSE
  254.         set OEM_ABANDON_ON = TRUE
  255.     endif
  256.  
  257.     Debug-Output "$(InfFile) $(Option): =================================================="
  258.     Debug-Output "$(InfFile) $(Option): STF_CWDIR is: "$(!STF_CWDIR)
  259.     Debug-Output "$(InfFile) $(Option): STF_SRCDIR is: "$(!STF_SRCDIR)
  260.     Debug-Output "$(InfFile) $(Option): STF_LANGUAGE is: "$(!STF_LANGUAGE)
  261.     Debug-Output "$(InfFile) $(Option): Option is: "$(Option)
  262.     Debug-Output "$(InfFile) $(Option): !STF_NCN_InstallMode is:"$(!NTN_InstallMode)
  263.     Debug-Output "$(InfFile) $(Option): !STF_NCDETECT  is: "$(!STF_NCDETECT)
  264.     Debug-Output "$(InfFile) $(Option): !STF_NCOPTION  is: "$(!STF_NCOPTION)
  265.     Debug-Output "$(InfFile) $(Option): !STF_NCDETCARD is: "$(!STF_NCDETCARD)
  266.     Debug-Output "$(InfFile) $(Option): !STF_NCDETINFO is: "$(!STF_NCDETINFO)
  267.     Debug-Output "$(InfFile) $(Option): !STF_GUI_UNATTENDED is: "$(!STF_GUI_UNATTENDED)
  268.     Debug-Output "$(InfFile) $(Option): !STF_BusType is $(!STF_BUSTYPE)"            ;; Primary Bus
  269.     Debug-Output "$(InfFile) $(Option): !STF_BusTypeList is $(!STF_BUSTYPELIST)"    ;; All Buses
  270.     Debug-Output "$(InfFile) $(Option): =================================================="
  271.  
  272.     set from = $(fatal)
  273.     set to = $(fatal)
  274.     goto $(StartLabel)
  275.  
  276. installadapter = +
  277.     
  278.     Debug-Output "$(InfFile) $(Option): Installadapter"
  279.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  280.     Ifstr $(KeyProduct) != $(KeyNull)
  281.         CloseRegKey $(KeyProduct)
  282.         ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  283. ;           Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  284. ;              $(ProductVersion)
  285.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  286.                 Debug-Output "ShellCode error: cannot get an error string."
  287.                 goto ShellCodeError
  288.             endif
  289.             goto end
  290.         else
  291. ;           Shell $(UtilityInf), CardExistedDlg
  292. ;           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  293. ;               Debug-Output "ShellCode error: cannot get an error string."
  294. ;               goto ShellCodeError
  295. ;           endif
  296. ;           ifstr(i) $($R1) != "OK"
  297. ;               set CommonStatus = STATUS_USERCANCEL
  298. ;               goto end
  299. ;           endif
  300.             set OldVersionExisted = $(TRUE)
  301.         endif
  302.     Endif
  303. ;   Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
  304. ;   Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  305. ;       Goto ShellCodeError
  306. ;   Else-Ifstr(i) $($R0) == STATUS_FAILED
  307. ;       Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  308. ;       ifint $($ShellCode) != $(!SHELL_CODE_OK)
  309. ;           goto ShellCodeError
  310. ;       endif
  311. ;       set Error = $($R0)
  312. ;       Goto fatal
  313. ;   Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  314. ;      Goto successful
  315. ;   Endif
  316. ;   Set SrcDir = $($R1)
  317.  
  318.     Set SrcDir = "A:\NDIS\WINNT35"
  319.  
  320. ;;*** 
  321. ;; HACKHACK - Will copy when we have a help file!
  322. ;;     
  323. ;;  install "Install-Hlp"
  324. ;;
  325.     Goto adapteroptions    
  326.  
  327. configureadapter = +
  328.     Debug-Output "$(InfFile) $(Option): Configureadapter"
  329.  
  330.     set Error = "Cannot configure the software component"
  331.     goto fatal
  332.  
  333. adapteroptions = +
  334.     Debug-Output "$(InfFile) $(Option): Adapteroptions"
  335.     set from = adapteroptions
  336. ;   read-syms FileDependentDlg$(!STF_LANGUAGE)
  337. ;   SetHelpFile $(!STF_WINDOWSSYSPATH)"\"$(OptionHelpFile) $(MinHelpId) $(MaxHelpId) $(Help$(Option)Id)
  338. ;   ui start "InputDlg"
  339. ;   ifstr(i) $(DLGEVENT) == "CONTINUE"
  340. ;      set ConnectionIndex = $(Combo1Out)
  341. ;      ui pop 1
  342. ;   else-ifstr(i) $(DLGEVENT) == "BACK"
  343. ;      set CommonStatus = STATUS_USERCANCEL
  344. ;      ui pop 1
  345. ;      goto end
  346. ;   else
  347. ;      ui pop 1
  348. ;      goto end
  349. ;   endif
  350. ;
  351. ;   set ConnectionValue = *($(ConnectionValues), ~($(ConnectionList),$(ConnectionIndex)))
  352.     ifstr(i) $(!NTN_InstallMode) == configure
  353.        goto updateparameters
  354.     endif
  355.  
  356. installproduct =+
  357.     Debug-Output "$(InfFile) $(Option): installproduct"
  358.     StartWait 
  359.     set AdapterList = $($R1)
  360.     ifint $(OldVersionExisted) == $(FALSE)
  361.         Ifstr(i) $(DoCopy) == "YES"
  362.             Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
  363.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  364.                 Goto ShellCodeError
  365.             Else-Ifstr(i) $($R0) == STATUS_FAILED
  366.                 Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  367.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  368.                     goto ShellCodeError
  369.                 endif
  370.                 set Error = $($R0)
  371.                 Goto fatal
  372.             Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  373.                 Goto successful
  374.             Endif
  375.             Set SrcDir = $($R1)
  376.         Endif
  377.  
  378.         install "Install-Option"
  379.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  380.             Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  381.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  382.                 goto ShellCodeError
  383.             endif
  384.             set Error = $($R0)
  385.             goto fatal
  386.         endif
  387.     endif
  388.  
  389.     ;
  390.     ; Check to see if the Product Software key exists already in the system service keys
  391.     ; before we try to add the software component.
  392.     ; 
  393.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName) $(!REG_KEY_READ) KeyNt
  394.     CloseRegKey $(KeyNt)
  395.  
  396.     Ifstr(i) $(KeyNt) == ""
  397.         Debug-Output "$(InfFile) $(Option): AddSoftwareComponent"
  398.         Debug-Output "$(InfFile) $(Option): --> $(Manufacturer)"
  399.         Debug-Output "$(InfFile) $(Option): --> $(ProductSoftwareName)"
  400.         Debug-Output "$(InfFile) $(Option): --> $(ProductSoftwareTitle)"
  401.         Debug-Output "$(InfFile) $(Option): --> $(STF_CONTEXTINFNAME)"
  402.         Debug-Output "$(InfFile) $(Option): --> $(ProductSoftwareImagePath)"
  403.         Debug-Output "$(InfFile) $(Option): --> $(NetEventDLL)"
  404.  
  405.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  406.         $(ProductSoftwareName), +
  407.         $(ProductSoftwareName), +
  408.         $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  409.         $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  410.         $(NetEventDLL)
  411.         
  412.         Set OEM_ABANDON_SOFTWARE = TRUE
  413.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  414.             goto ShellCodeError
  415.         endif
  416.         set RegistryErrorIndex = $($R0)
  417.         Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  418.             EndWait
  419.             CloseRegKey $($R1)
  420.             CloseRegKey $($R2)
  421.             CloseRegKey $($R3)
  422.             CloseRegKey $($R4)
  423.             CloseRegKey $($R5)
  424.             goto fatalregistry
  425.         endif
  426.         Set SoftProductKey      = $($R1)
  427.         Set SoftNetRuleKey      = $($R2)
  428.         Set SoftServiceKey      = $($R3)
  429.         Set SoftParameterKey    = $($R4)
  430.         Set SoftLinkageKey      = $($R5)
  431.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  432.                {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  433.                {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  434.                {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  435.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  436.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  437.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  438.         Shell  $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
  439.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  440.             goto ShellCodeError
  441.         endif
  442.         set RegistryErrorIndex = $($R0)
  443.         Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  444.             EndWait
  445.             CloseRegKey $(SoftProductKey)
  446.             CloseRegKey $(SoftNetRuleKey)
  447.             CloseRegKey $(SoftServiceKey)
  448.             CloseRegKey $(SoftParameterKey)
  449.             CloseRegKey $(SoftLinkageKey)
  450.             goto fatalregistry
  451.         endif
  452.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  453.                 {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  454.                 {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  455.                 {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  456.                 {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  457.                 {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  458.         Shell  $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
  459.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  460.             goto ShellCodeError
  461.         endif
  462.         set RegistryErrorIndex = $($R0)
  463.         CloseRegKey $(SoftProductKey)
  464.         CloseRegKey $(SoftNetRuleKey)
  465.         CloseRegKey $(SoftServiceKey)
  466.         CloseRegKey $(SoftParameterKey)
  467.         CloseRegKey $(SoftLinkageKey)
  468.         Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  469.             EndWait
  470.             goto fatalregistry
  471.         endif
  472.     endif ;; Does Services\el59x exist?
  473.     
  474.     ;;***************************************************************************************************
  475.     ;; If we are eisa, then use the EISA Enum routines to figure out how many boards we have in 
  476.     ;; the system.
  477.     ;;
  478.     ;; If we are PCI and we are v3.51 and above, we can use the PCI dection routines to figure
  479.     ;; out where all the boards are (hopefully including different buses) and generate the correct 
  480.     ;; reg. entries.
  481.     ;;
  482.     ;;***************************************************************************************************
  483.     ;;
  484.     ;; Are we installing an EISA card?
  485.     ;;
  486.     set NTDetected = $(FALSE)
  487.     ifcontains(i) $(Option) in {3C597,3C592}    
  488.         Debug-Output "$(InfFile) $(Option): About to look for 3Com EISA Cards"
  489.         ;;
  490.         ;; Yes, then just use the build in EISA dectection routine.
  491.         ;;
  492.         set NTDetected = $(TRUE)
  493.         Shell $(UtilityInf), EISAFindBus, $($(Option)EISA_1BYTE),$($(Option)EISA_MASK)
  494.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  495.             Debug-Output "$(InfFile) $(Option): EISAFindBus Error:" $($R0)
  496.             goto ShellCodeError
  497.         endif
  498.         ifstr $($R0) != "NO_ERROR"
  499.             set Error = $($R0)
  500.             goto fatal
  501.         endif
  502.         ifstr(i) $($R1) == {}
  503.             set Error = $(CANNOT_FIND_ANY_CARD)
  504.             set CommonStatus = USER_CANCEL
  505.             set from = end
  506.             goto nonfatal
  507.         endif
  508.         set AdapterList = $($R1)
  509.         else
  510.         Debug-Output "$(InfFile) $(Option): About to look for 3Com PCI Cards"
  511.         ;;
  512.         ;; No, Then we must be installing a PCI card.
  513.         ;; 
  514.         ;; Note: If we are are on WinNT v3.51 and above, we have PCI detection support 
  515.         ;; and are able to setup the adapter without user intervention. Otherwise, we can 
  516.         ;; only do one card at a time.
  517.         ;;
  518.         set TargetVersion = *($(CurrentVersionValue),4)
  519.         Debug-Output "$(InfFile) $(Option): Current Version:"$(TargetVersion)
  520.  
  521.         ifstr $(TargetVersion) == $(NT350VersionConstant)   ;; We need to ask on v3.50
  522.             Debug-Output "Running on WindowsNT 3.50"
  523.             set Version350 = $(TRUE)
  524.         else
  525.             Debug-Output "Running on WindowsNT 3.51"
  526.             set Version350 = $(FALSE)
  527.         endif
  528.  
  529.         ifint $(Version350) == $(TRUE)
  530.             Debug-Output "Running on WindowsNT v3.50, Not using PCI Detection!!!"
  531.             ifstr $(!STF_GUI_UNATTENDED) == "YES"
  532.                 Debug-Output "$(InfFile) $(Option): Running in GUI unattended mode"
  533.                 ifstr(i) $(!AutoNetInterfaceType) != ""
  534.                     set BusInterfaceType = $(!AutoNetInterfaceType)
  535.                 else
  536.                     set BusInterfaceType = 5
  537.                 endif
  538.                 ifstr(i) $(!AutoNetBusNumber) != ""
  539.                     set BusNumber = $(!AutoNetBusNumber)
  540.                 else
  541.                     set BusNumber = 0
  542.                 endif
  543.                 set NTDetected = $(FALSE)
  544.                 set AdapterList = $(Option)   ;; 1 Item to install
  545.                 Debug-Output "$(InfFile) $(Option): BusInterfaceType = $(BusInterfaceType)"
  546.                 Debug-Output "$(InfFile) $(Option): BusNumber = $(BusNumber)"
  547.             else        
  548.                 Debug-Output "$(InfFile) $(Option): Running 3.50 Bus Dialog"
  549.                 set BusInterfaceType = 5
  550.                 set BusNumber = 0
  551.                 set NTDetected = $(FALSE)
  552.                 Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardware$(Option)Description) $(BusInterfaceType) $(BusNumber)
  553.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  554.                     Debug-Output "ShellCode error."
  555.                     goto ShellCodeError
  556.                 endif
  557.                 set BusInterfaceType = $($R1)
  558.                 set BusNumber = $($R2)
  559.                 set AdapterList = $(Option)   ;; 1 Item to install
  560.                 Debug-Output "$(InfFile) $(Option): BusInterfaceType = $(BusInterfaceType)"
  561.                 Debug-Output "$(InfFile) $(Option): BusNumber = $(BusNumber)"
  562.             endif    
  563.         else
  564.             Debug-Output "$(InfFile) $(Option): Running 3.51 using PCI Dectection"
  565.             ;;
  566.             ;; v3.51 has PCI detection code built in.
  567.             ;;
  568.             ;;set BusInterfaceType = 5
  569.             ;;set BusNumber = 0
  570.             ;; Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardware$(Option)Description) $(BusInterfaceType) $(BusNumber)
  571.             
  572.             set NTDetected = $(TRUE)
  573.             set Vendor = 4279       ;; 0x10b7 is 3Com's Vendor ID!
  574.             set-div CFID = $($(Option)CFID) 1
  575.             Debug-Output "$(InfFile) $(Option): VendorID = $(Vendor)"
  576.             Debug-Output "$(InfFile) $(Option): CFID = $(CFID)"
  577.             Shell $(UtilityInf), GetPCIInformation, $(Vendor) $(CFID)
  578.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  579.                 goto ShellCodeError
  580.             endif
  581.             ifstr(i) $($R0) == {}
  582.                 set Error = $(CANNOT_FIND_ANY_CARD)
  583.                 set CommonStatus = USER_CANCEL
  584.                 set from = end
  585.                 goto nonfatal
  586.             endif
  587.             set AdapterList = $($R0)
  588.         endif   ;;; NT v3.50
  589.     endif  ;;; Looking for PCI cards in Option.
  590.  
  591.     ; "AdapterList" has the list of currently installed adatpers in the system!
  592.     ; 
  593.     Debug-Output "$(InfFile) $(Option): Adapterlist = $(AdatperList)"
  594.     ForListDo $(AdapterList)
  595.         Set InstallCard = "YES"
  596.         ifint $(NTDetected) == $(TRUE)
  597.             set DetectedBusNum = *($($),1)
  598.             set DetectedSlotNum = *($($),2)
  599.             Debug-Output "$(InfFile) $(Option): DetectedBusNumber = $(DetectedBusNum)"
  600.             Debug-Output "$(InfFile) $(Option): DetectedSlotNum = $(DetectedSlotNum)"
  601.  
  602.             Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), +
  603.             $(DetectedSlotNum), $(ProductHardware$(Option)Description), $(ProductHardwareName)
  604.             
  605.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  606.                 goto ShellCodeError
  607.             endif
  608.             ifstr $($R0) != "NO_ERROR"
  609.                 set Error = $($R0)
  610.                 goto fatal
  611.             endif
  612.             ifstr(i) $($R1) == "YES"
  613.                 set InstallCard = "NO"  ;; Don't want to re-install, it's there already
  614.             endif    
  615.         endif
  616.         ;;
  617.         ;; Are we installing the card?
  618.         ;;
  619.         ifstr(i) $(InstallCard) == "NO"
  620.             Debug-Output "$(InfFile) $(Option): Card Already at $(DetectedBusNum):$(DetectedSlotNum) already installed!"
  621.             set Error = "An adapter at $(DetectedBusNum):$(DetectedSlotNum) is already installed!"
  622.             Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  623.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  624.                 goto ShellCodeError
  625.             endif
  626.         else
  627.             Debug-Output "$(InfFile) $(Option): Installing Card at $(DetectedBusNum):$(DetectedSlotNum)!"
  628.             Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  629.             ifint $($R4) != -1
  630.                 Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  631.             endif
  632.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  633.                 goto ShellCodeError
  634.             endif
  635.             set RegistryErrorIndex = $($R0)
  636.             Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  637.                 EndWait
  638.                 CloseRegKey $($R1)
  639.                 CloseRegKey $($R2)
  640.                 CloseRegKey $($R3)
  641.                 goto fatalregistry
  642.             endif
  643.             Set HardNetCardKey      = $($R1)
  644.             Set HardNetRuleKey      = $($R2)
  645.             Set HardParameterKey    = $($R3)
  646.             set AdapterNumber = $($R4)
  647.             set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  648.                     {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  649.                     {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  650.                     {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  651.                     {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  652.                     {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  653.             Shell  $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
  654.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  655.                 goto ShellCodeError
  656.             endif
  657.             ;
  658.             ; Are we installing EISA or PCI?
  659.             ;
  660.             ifcontains(i) $(Option) in {3C597,3C592}    
  661.                 ;
  662.                 ; EISA (3c597, 3c592)
  663.                 ; 
  664.                 set BusTypeNum = 1      
  665.                 set BusMaster = "YES"    
  666.                 set Bus = "EISA"        
  667.                 ifstr(i) $(Option) == "3C597"
  668.                     set CardType = 1
  669.                 else
  670.                     set CardType = 3
  671.                 endif    
  672.             else
  673.                 ;
  674.                 ; PCI (3c595, 3c590)
  675.                 ;
  676.                 set BusTypeNum = 5   
  677.                 set BusMaster = "YES"
  678.                 set Bus = "PCI"      
  679.                 ifstr(i) $(Option) == "3C595"
  680.                     set CardType = 0
  681.                 else
  682.                     set CardType = 2
  683.                 endif    
  684.             endif
  685.             ;;
  686.             ;; If we used the OS to dected the card, then we already know bus and slot information.
  687.             ;;        
  688.             ifint $(NTDetected) == $(TRUE)
  689.                 set BusNumber = $(DetectedBusNum)
  690.                 set SlotNum = $(DetectedSlotNum)    
  691.                 set BusInterfaceType = $(BusTypeNum)
  692.                 ;
  693.                 ; Note: we need to record SlotNumber too so that we can use the 
  694.                 ; "IsNetCardAlreadyInstalled" routine
  695.                 ;
  696.                 Set NewValueList =  {+
  697.                     {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  698.                     {Slot,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)}+
  699.                     }
  700.                 Debug-Output "$(InfFile) $(Option): Set HardwareParameterKey = $(NewValueList)"
  701.                 Shell  $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
  702.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  703.                     goto ShellCodeError
  704.                 endif
  705.  
  706.                 Set NewValueList = { {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)} }
  707.                 Debug-Output "$(InfFile) $(Option): Set HardwareParameterKey = $(NewValueList)"
  708.                 Shell  $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
  709.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  710.                     goto ShellCodeError
  711.                 endif
  712.             else
  713.                 Set NewValueList =  {+
  714.                     {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  715.                     }
  716.                 Debug-Output "$(InfFile) $(Option): Set HardwareParameterKey = $(NewValueList)"
  717.                 Shell  $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
  718.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  719.                     goto ShellCodeError
  720.                 endif
  721.             endif
  722.  
  723.             Set NewValueList =  {+
  724.                 {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
  725.                 {CardType,$(NoTitle),$(!REG_VT_DWORD),$(CardType)},+
  726.                 {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  727.                 }
  728.  
  729.             Debug-Output "$(InfFile) $(Option): Set HardwareParameterKey = $(NewValueList)"
  730.             Shell  $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
  731.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  732.                 goto ShellCodeError
  733.             endif
  734.  
  735.             set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  736.             set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  737.             set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardware$(Option)Type)},+
  738.                     {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  739.                     {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardware$(Option)Class)}, +
  740.                     {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  741.     
  742.             Debug-Output "$(InfFile) $(Option): HardwareRuleKey = $(NewValueList)"
  743.             Shell  $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList)
  744.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  745.                 goto ShellCodeError
  746.             endif
  747.             CloseRegKey $(HardNetCardKey)
  748.             CloseRegKey $(HardNetRuleKey)
  749.             CloseRegKey $(HardParameterKey)
  750.         endif    
  751.     EndForListDo
  752.     EndWait
  753.     goto successful
  754.  
  755. updateparameters =+
  756.     Debug-Output "$(InfFile) $(Option): Updateparameters"
  757.     set HardParameterKey    = $($R3)
  758.     
  759.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  760.     goto ShellCodeError
  761.     endif
  762.     CloseRegKey $(KeyParameters)
  763.     goto successful
  764.  
  765. bindingadapter =+
  766.     Debug-Output "$(InfFile) $(Option): bindingadapter"
  767.     set Error = "Binding: Sorry, not yet implemented."
  768.     goto fatal
  769.  
  770. removeadapter = +
  771.     Debug-Output "$(InfFile) $(Option): removeadapter"
  772.     Debug-Output "$(InfFile) $(Option): ----> $(ProductKeyName), $(!NTN_RegBase)"
  773.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  774.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  775.         $(ProductSoftwareName)
  776.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  777.         goto ShellCodeError
  778.         endif
  779.         set RegistryErrorIndex = $($R0)
  780.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  781.         goto fatalregistry
  782.     endif
  783.     else
  784.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  785.         $(ProductSoftwareName), $(!NTN_RegBase)
  786.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  787.         goto ShellCodeError
  788.     endif
  789.     set RegistryErrorIndex = $($R0)
  790.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  791.         goto fatalregistry
  792.     endif
  793.     endif
  794.     goto end
  795.  
  796. UpgradeSoftware = +
  797.     Debug-Output "$(InfFile) $(Option): UpdateSoftware"
  798.      OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  799.      Ifstr $(KeyProduct) != $(KeyNull)
  800.        Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  801.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  802.            Debug-Output "ShellCode error"
  803.            goto ShellCodeError
  804.        endif
  805.        set !UG_Filename = $($R0)
  806.        install "Install-Update"
  807.        ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  808.            goto fatal
  809.        endif
  810.        SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  811.        SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  812.        CloseRegKey $(KeyProduct)
  813.      else
  814.        goto fatalregistry
  815.      endif
  816.      goto end
  817.  
  818. successful = +
  819.     Debug-Output "$(InfFile) $(Option): Successful"
  820.     goto end
  821.  
  822. abandon = +
  823.     Debug-Output "$(InfFile) $(Option): Abandon"
  824.     ForListDo $(OEM_ABANDON_OPTIONS)
  825.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  826.         $(ProductSoftwareName), $($)
  827.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  828.         goto ShellCodeError
  829.     endif
  830.     set RegistryErrorIndex = $($R0)
  831.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  832.         goto fatalregistry
  833.     endif
  834.     EndForListDo
  835.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  836.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  837.         $(ProductSoftwareName), FALSE
  838.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  839.         goto ShellCodeError
  840.     endif
  841.     set RegistryErrorIndex = $($R0)
  842.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  843.         goto fatalregistry
  844.     endif
  845.     endif
  846.     goto end
  847.  
  848. warning = +
  849.     Debug-Output "$(InfFile) $(Option): warning"
  850.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  851.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  852.     goto ShellCodeError
  853.     endif
  854.     ifstr(i) $($R1) == "OK"
  855.     goto $(to)
  856.     else-ifstr(i) $($R1) == "CANCEL"
  857.     goto $(from)
  858.     else
  859.     goto "end"
  860.     endif
  861.  
  862. nonfatalinfo = +
  863.     Debug-Output "$(InfFile) $(Option): nonfatalinfo"
  864.     Set CommonStatus = STATUS_USERCANCEL
  865.     Set Severity = STATUS
  866.     goto nonfatalmsg
  867.  
  868. nonfatal = +
  869.     Debug-Output "$(InfFile) $(Option): nonfatal"
  870.     Set Severity = NONFATAL
  871.     goto nonfatalmsg
  872.  
  873. nonfatalmsg = +
  874.     Debug-Output "$(InfFile) $(Option): nonfatalmsg"
  875.     ifstr(i) $(Error) == ""
  876.     Set Severity = NONFATAL
  877.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  878.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  879.         goto ShellCodeError
  880.     endif
  881.     set Error = $($R0)
  882.     endif
  883.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  884.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  885.     goto ShellCodeError
  886.     endif
  887.     ifstr(i) $($R1) == "OK"
  888.     goto $(from)
  889.     else
  890.     ;   goto "end"
  891.     goto "RemoveAdapter"
  892.     endif
  893.  
  894. fatalregistry = +
  895.     Debug-Output "$(InfFile) $(Option): fatalregistry"
  896.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  897.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  898.     goto ShellCodeError
  899.     endif
  900.     set Error = $($R0)
  901.     goto fatal
  902.  
  903. fatal = +
  904.     Debug-Output "$(InfFile) $(Option): fatal"
  905.     ifstr(i) $(Error) == ""
  906.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  907.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  908.         goto ShellCodeError
  909.     endif
  910.     set Error = $($R0)
  911.     endif
  912.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  913.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  914.     goto ShellCodeError
  915.     endif
  916.     goto setfailed
  917.  
  918. ShellCodeError = +
  919.     Debug-Output "$(InfFile) $(Option): ShellCodeError"
  920.     set DlgType      = "MessageBox"
  921.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  922.     set STF_MB_TEXT  = $(ShellCodeErrorText) 
  923.     set STF_MB_TYPE  = 1
  924.     set STF_MB_ICON  = 3
  925.     set STF_MB_DEF   = 1
  926.     ui start "Error Message"
  927.     goto setfailed
  928.  
  929. setfailed = +
  930.     Debug-Output "$(InfFile) $(Option): Setfailed"
  931.     set CommonStatus = STATUS_FAILED
  932.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  933.     set OEM_ABANDON_ON = FALSE
  934.     goto abandon
  935.     endif
  936.     goto end
  937.  
  938. end = +
  939.     goto term
  940.  
  941. term = +
  942.     Return $(CommonStatus)
  943.     
  944. [Install-Option]
  945.     set STF_VITAL = ""
  946.     ifstr(i) $(AddCopy) == "YES"
  947.     AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  948.     endif
  949.     ifstr(i) $(DoCopy) == "YES"
  950.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  951.        CopyFilesInCopyList
  952.     endif
  953.     Exit
  954.     
  955. [Install-Hlp]
  956.    set STF_VITAL = ""
  957.    AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
  958.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  959.    CopyFilesInCopyList
  960.    Exit
  961.    
  962. [Install-Update]
  963.    set STF_VITAL    = ""
  964.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  965.    AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
  966.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  967.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  968.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  969.    CopyFilesInCopyList
  970.    exit
  971.  
  972. [Source Media Descriptions]
  973.     1  = "Windows NT Setup Disk #1"  
  974.     2  = "3Com Etherdisk for Fast Etherlink/Etherlink III Bus Master Adapters"
  975.  
  976. [ProductType]
  977. STF_PRODUCT  = Winnt
  978. STF_PLATFORM = I386
  979.  
  980. [Files-Inf]
  981. 2, oemsetup.inf,    SIZE=1000,     RENAME=$(!UG_Filename)
  982.  
  983. [Files-Hlp]
  984. 2, 3C59x.hlp , SIZE=88888
  985.  
  986. ;
  987. ; Driver files
  988. ;
  989. [Files-3C595]
  990. 2,EL59x.SYS , SIZE=88888
  991. [Files-3C597]
  992. 2,EL59x.SYS , SIZE=88888
  993. [Files-3C590]
  994. 2,EL59x.SYS , SIZE=88888
  995. [Files-3C592]
  996. 2,EL59x.SYS , SIZE=88888
  997.  
  998. [LanguagesSupported]
  999.     ENG
  1000.  
  1001. [OptionsTextENG]
  1002.     3C595   = "3Com Fast EtherLink PCI 10/100BASE-T Adapter (3C595)"
  1003.     3C597   = "3Com Fast EtherLink EISA 10/100BASE-T Adapter (3C597)"
  1004.     3C590   = "3Com EtherLink III PCI Bus-Master Adapter (3C590)"
  1005.     3C592   = "3Com EtherLink III EISA Bus-Master Adapter (3C592)"
  1006.  
  1007.     
  1008. [FileConstantsENG]
  1009.     ProCaption   = "Windows NT v3.5 Setup"
  1010.     ProCancel    = "Cancel"
  1011.     ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  1012.                "Are you sure you want to cancel copying files?"
  1013.     ProCancelCap = "Network Setup Message"
  1014.     ProText1     = "Copying:"
  1015.     ProText2     = "To:"
  1016.  
  1017. ConnectionList  = ^(ConnectionChoices$(Option), 1)
  1018. ConnectionValues = ^(ConnectionChoices$(Option), 2)
  1019. NoList  = ^(NoChoices, 1)
  1020. NoValues = ^(NoChoices, 2)
  1021. ShellCodeErrorTitle = "Error: "$(Function$(Option)Title)
  1022. ShellCodeErrorText  = "Shell Code Error."
  1023. CANNOT_FIND_ANY_CARD    = "Network card is not present in the system"
  1024.  
  1025. [DialogConstantsENG]
  1026. Help        = "&Help"
  1027. Exit        = "Cancel"
  1028. OK      = "OK"
  1029. HelpContext = ""
  1030. Continue    = "Continue"
  1031. Cancel      = "Cancel"
  1032.  
  1033. ; *******
  1034. ; Note: This code is not used now, I have place it here for future use!
  1035. ; ******
  1036. ;[FileDependentDlgENG]
  1037. ;   Combo1Label = "&Connection Type:"
  1038. ;   Combo1List = $(ConnectionList)
  1039. ;   Combo1Out  = $(ConnectionValue)
  1040. ;   ComboListItemsIn  = {Combo1List}
  1041. ;   ComboListItemsOut = {Combo1Out}
  1042. ;   DlgTemplate = "ADAP_PROTO_COMBO" 
  1043. ;   DlgType = "Combination"
  1044. ;   Caption = $(Function$(Option)Title)
  1045. ;   EditTextLim = ""
  1046. ;   CBOptionsGreyed = {}
  1047. ;   MinHelpId = 10
  1048. ;   MaxHelpId = 1050 
  1049. ;   HelpContext = $(Help$(Option)Id)
  1050. ;[FileDependentDlgENG]
  1051. ;GroupLabel = "Optimization:"
  1052. ;Radio1 = "&Minimize Memory Used"
  1053. ;Radio2 = "&Balance"
  1054. ;Radio3 = "M&a;ximize Throughput && Conn.ections"
  1055. ;DlgType = "Radio"
  1056. ;DlgTemplate = "ST"
  1057. ;Caption = $(FunctionTitle)
  1058. ;OpionsGreyed = {}
  1059. ;HelpConext = $(!IDH_DB_OEMNXPNB_INS)
  1060.  
  1061.