OEMSETUP.INF Driver File Contents (3c980b-tx.zip)

;*************************************************
;
; %VER  3Com Fast EtherLink Server NIC driver SETUP INF File 1.2.17
;
;*************************************************

[IntstallOptions]
Install_dRMON       = "NO"
Install_3NIC_Diag   = "YES"
Install_PACE        = "NO"
Install_Shortcuts   = "YES"
[Identification]
OptionType = NetAdapter
[PlatformsSupported]
ISA
EISA
"Jazz-Internal Bus"
PCI
[Options]
3C980   ; Fast EtherLink Server NIC 10/100MB PCI 
VLAN
[FileConstants]
UtilityInf                  = "UTILITY.INF"
subroutineinf               = "SUBROUTN.INF"
SoftwareType                = "driver"
Exit_Code                   = 0
; Changed from el980n4x to el980n4
NetEventDLL                 = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el980n4.sys"
IoLogMsgDLL                 = "%SystemRoot%\System32\IoLogMsg.dll"
TrayIconExe                 = "comsmd.exe"
Manufacturer                = "3Com"
ProductMajorVersion         = "1"
ProductMinorVersion         = "2"
ProductVersion              = $(ProductMajorVersion)"."$(ProductMinorVersion)
; Changed from el980n4x to el980n4
ProductSoftwareName         = "el980n4"
; Changed from el980n4x to el980n4
ProductSoftwareImagePath    = "%SystemRoot%\System32\drivers\el980n4.sys"
; Changed from el980n4x to el980n4
NetRuleSoftwareType         = "El980n4Sys ndisDriver El980n4Driver"
NetRuleSoftwareUse          = $(SoftwareType)
; Changed from el980n4x to el980n4
NetRuleSoftwareBindForm     = """El980n4Sys"" yes no container"
; Changed from el980n4x to el980n4
NetRuleSoftwareClass        = {"El980n4Driver basic"}
; Changed from el980n4x to el980n4
NetRuleSoftwareBindable     = {"El980n4Driver El980n4Adapter non exclusive 100"}
; Changed from el980n4x to el980n4
ProductHardwareName         = "El980n4"
NetRuleHardwareBindForm     = " yes yes container"
ProductKeyName              = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName                = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
FunctionTitle               = "3Com 3C980x Adapter Card Setup"
ProductSoftwareDescription  = "3Com 3C980x Adapter Driver"
ProductSoftwareTitle        = "3Com 3C980x Adapter Driver"
3CNUMBER                    = "3C90X"
GROUP_NAME                  = "3Com Fast Etherlink Server NIC"
ProductHardware3C980Title   = "3Com Fast EtherLink Server NIC"
ProductHardware3C980Description = "3Com Fast EtherLink Server NIC 10/100MB PCI"
; Changed from el980n4x to el980n4
NetRuleHardware3C980Type    = "El980n4 El980n4Adapter"
; Changed from el980n4x to el980n4
NetRuleHardware3C980Class   = {"El980n4Adapter basic"}
ProductHardware3C900Title   = "3Com EtherLink XL Adapter (3C900)"
ProductHardware3C900Description = "3Com EtherLink XL PCI 10Mb Adapter (3C900)" 
NetRuleHardware3C900Type    = "El90x El90xAdapter"
NetRuleHardware3C900Class   = {"El90xAdapter basic"}
Adapter3C980Type            = 5             ;; PCI board
Adapter3C900Type            = 5             ;; PCI board

; Added support for 3c905b
ProductHardware38912Title   = "3Com Fast EtherLink Server NIC"
ProductHardware38912Description = "10/100Mb PCI"
ProductHardware36949Title   = "3Com Fast EtherLink XL  Adapter (3C905B)"
ProductHardware36949Description = "3Com Fast EtherLink XL  PCI 10/100Mb Adapter (3C905B)"

; Commented out the first line because 905 support should be disabled for now.
; In the future, this line should be re-enabled for 905 support
;3C980CFIDList              = {38912,36944, 36945, 36949, 36954, 36864, 36865, 36868, 36869, 36870, 36874 } ; 0x9050, 0x9051
3C980CFIDList               = {38912}

[GeneralConstants]
from      = ""
to    = ""
ExitCodeOk     = 0
ExitCodeCancel = 1                
ExitCodeFatal  = 2
KeyNull     = ""
MAXIMUM_ALLOWED   = 33554432
RegistryErrorIndex = NO_ERROR
KeyProduct  = ""
KeyParameters   = ""
TRUE        = 1
FALSE       = 0
NoTitle        = 0
ExitState   = "Active"
OldVersionExisted = $(FALSE)
DriverPath  = $(!STF_NTPATH)\drivers
NT350VersionConstant = "3.50"
NT351VersionConstant = "(3.51)"
NT310VersionConstant = "3.10"
NT400VersionConstant = "(4.0)"
INF_PROCESSER = "I386"
[BaseVars]
KeyNull            = ""
MAXIMUM_ALLOWED    = 33554432
KeyInfo            = {}
RegistryErrorIndex = NO_ERROR
NoTitle            = 0
CurrentControlSet  = "SYSTEM\CurrentControlSet"
ServicesBaseName   = $(CurrentControlSet)"\Services"
NetworkCardKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
!RegLastError      = NO_ERROR
[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
[WriteVlanopEntry]
read-syms BaseVars
set AlreadyExisted = 0 
set VlanAlreadypresent = 0 
set SecondaryPresent = 0
set CardNumPresent = 0 
set BusNum  = $($0)
set SlotNum = $($1) 
set Description = $($2)
set Product = $($3)
set SkipDescriptionCheck = $($4)
set write = $($5)
set CardNo = $($6)
set paceon = 0 
ifstr(i) $(SkipDescriptionCheck) == ""
set SkipDescriptionCheck = "NO"
endif 
OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardKeyName) $(MAXIMUM_ALLOWED) IE_KeyNetcards
Ifstr $(IE_KeyNetcards) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto IE_Return
endif
EnumRegKey $(IE_KeyNetcards) IE_KeyNameList
ForListDo  $(IE_KeyNameList)
set IE_KeyName = *($($),1)
OpenRegKey $(IE_KeyNetcards) "" $(IE_KeyName) $(MAXIMUM_ALLOWED) IE_Card
Ifstr $(IE_Card) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto IE_Return
endif	   
GetRegValue $(IE_Card),"ProductName", ProductNameInfo
set CardProductName     = *($(ProductNameInfo), 4)
ifstr(i) $(CardProductName) == $(Product)
GetRegValue $(IE_Card), "ServiceName", ServiceNameInfo
set ServiceName = *($(ServiceNameInfo), 4)
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"$(ServiceName)"\Parameters" +
$(MAXIMUM_ALLOWED) IE_KeyService
Ifstr $(IE_KeyService) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto IE_Return
endif
GetRegValue $(IE_KeyService), "BusNumber", BusInfo
GetRegValue $(IE_KeyService), "SlotNumber", SlotInfo
GetRegValue $(IE_KeyService), "ADAPTERNUMBER",AdaptInfo 
set CardBusNum = *($(BusInfo), 4)
set CardSlotNum = *($(SlotInfo), 4) 			        
set AdaptNo = *($(AdaptInfo), 4) 
ifint $(AdaptNo) == $(CardNo)
set CardNumPresent = 1
endif 
ifint $(CardBusNum) == $(BusNum)
ifint $(CardSlotNum) == $(SlotNum)
set-add AlreadyExisted = $(AlreadyExisted),1
GetRegValue $(IE_KeyService), "Vlan_op", VlanopInfo
set Vlanop = *($(VlanopInfo),4)
GetRegValue $(IE_KeyService), "ADAPTERNUMBER",NICInfo 
set NICNo = *($(NICInfo), 4) 
GetRegValue $(IE_KeyService), "PRIMARYADAPTERNUMBER",Sec 
set SecP = *($(Sec),4)
ifstr(i) $(SecP) != ""
set SecondaryPresent = 1
endif 
GetRegValue $(IE_KeyService), "PACEIPXRanges",pacepresent
set paceinfo = *($(pacepresent),4)
ifstr(i) $(paceinfo) != ""
set paceon = 1
endif 
GetRegValue $(IE_KeyService), "PACETCPRanges",pacepresent1
set paceinfo1 = *($(pacepresent1),4)
ifstr(i) $(paceinfo1) != ""
set paceon = 1
endif 
GetRegValue $(IE_KeyService), "PACEUDPStreams",pacepresent2
set paceinfo2 = *($(pacepresent2),4)
ifstr(i) $(paceinfo2) != ""
set paceon = 1
endif 
GetRegValue $(IE_KeyService), "VLAN_NAME",VlanName 
set Vlann = *($(VlanName), 4) 			        
ifstr(i) $(Vlann) != ""
set VlanAlreadypresent = 1 
endif 
ifint $(write) == 1
ifint $(VlanAlreadypresent) ==  0				  	
SetRegValue $(IE_KeyService), {Vlan_op, $(NoTitle),$(!REG_VT_DWORD),1} 
SetRegValue $(IE_KeyService), {VLANID, $(NoTitle),$(!REG_VT_DWORD),255} 
SetRegValue $(IE_KeyService), {VLAN_NAME, $(NoTitle),$(!REG_VT_SZ),""} 
endif 	
endif 
endif; Slotnum
endif ; busnum
endif ; product
EndForListDo
IE_Return = +
return $(RegistryErrorIndex) $(AlreadyExisted) $(Vlanop) $(VlanAlreadypresent)	$(SecondaryPresent) $(CardNumPresent) $(NICNo) $(paceon)
[Identify]
read-syms Identification
set !G:DebugOutputControl = 1  ;Debug On/Off 
set Status     = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media      = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)
[ReturnOptions]
set Status        = STATUS_FAILED
set OptionList     = {}
set OptionTextList = {}
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
ifstr(i) $($1) == ""
goto returnoptions
endif
set PlatformList = ^(PlatformsSupported, 1)
Ifcontains(i) $($1) in $(PlatformList)
goto returnoptions
else
set Status = STATUS_NOTSUPPORTED
goto finish_ReturnOptions
endif
else
set Status = STATUS_NOLANGUAGE
goto finish_ReturnOptions
endif
returnoptions = +
set OptionList     = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status         = STATUS_SUCCESSFUL
finish_ReturnOptions = +
Return $(Status) $(OptionList) $(OptionTextList)
[InstallOption]
set $(!G:DebugOutputControl) = 1     ;; Debug output {1=turned on, 0= turned off}
set CurrLang = $($0)
set Option   = $($1)
set SrcDir   = $($2)
set AddCopy  = $($3)
set DoCopy   = $($4)
set DoConfig = $($5)
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) NOT-IN $(LanguageList)
Return STATUS_NOLANGUAGE
endif
set-subst LF = "\n"
read-syms IntstallOptions
read-syms GeneralConstants
read-syms FileConstants
read-syms DialogConstants$(!STF_LANGUAGE)
ifstr(i) $(!NTN_Origination) == "NCPA"
set Continue = "OK"
endif
read-syms FileConstants$(!STF_LANGUAGE)
detect date
set-title  $(Function$(Option)Title)
set to   = Begin
set from = Begin
set CommonStatus = STATUS_SUCCESSFUL
EndWait
Begin = +
set CurrentVersionValue = ""
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
Ifstr(i) $(KeyNt) != ""
GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue
CloseRegKey $(KeyNt)
Endif
ifstr(i) (*($(CurrentVersionValue),4)) != $(NT400VersionConstant) 
set Error = "Only Windows NT v4.0 is supported by this product"
goto fatal
endif 

; Add statement about Service Pack 3 and 4 before anything else

; Check for service pack 3 or 4 - if either is not installed and they are using Windows NT 4.0
; Server OS, then warn the user that they should upgrade their software.
Ifstr(i) $(!NTN_InstallMode) == "Update"
  goto start_of_version_detection
else-Ifstr(i) $(!NTN_InstallMode) == "install"

start_of_version_detection = +
  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
  Ifstr(i) $(KeyNt) != "" ; key exists
    GetRegValue $(KeyNt) "CSDVersion" ServicePackInfoList
    ; check for service pack 3
    set servicePackID = *($(ServicePackInfoList), 4)
    ifstr(i) $(servicePackID) != "Service Pack 3"
      ifstr(i) $(servicePackID) != "Service Pack 4"
        Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
          "It is recommended that you install NT Service Pack 3 or greater."
      endif
    endif
  Endif

  ;;; Begin of upgrade scenario
  ;;; Check whether any old versions of Python drivers are installed (those older than 1.2)
  set oldDriverFound = "NO"
  OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
  Ifstr(i) $(ServicesKey) != "" ; key exists
    EnumRegKey $(ServicesKey) DriverList
    ForListDo $(DriverList)
      ;;; Check for a version string which implies a Python 1.2 driver is installed
      set Driver = *($($), 1)
      ;;; Check for the presence of the "VersionNo" key
      OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\"$(Driver)"\Parameters" +
        $(!REG_KEY_ALL_ACCESS) DriverKey
      Ifstr(i) $(DriverKey) != "" ; key exists
        set DriverVersionList = {"","","",""}
        GetRegValue $(DriverKey) "VersionNo" DriverVersionList
        Split-String "$(Driver)" "n" DriverTokens
        set DriverName = *($(DriverTokens), 1)
	ifstr(i) $(Driver) != "El980n4"
          ifstr(i) $(DriverName) == "El980"
            ;;; We have found a Python-related key
            ;;; check for old version (before 1.2)
            set driverVersionID = *($(DriverVersionList), 4)
            ifstr(i) $(driverVersionID) == ""
              set oldDriverFound = "YES"
            Endif
          Endif
        Endif
      Endif
      CloseRegKey $(DriverKey)
    EndForListDo
  Endif
  CloseRegKey $(ServicesKey)

  Ifstr(i) $(oldDriverFound) == "YES"
    read-syms PromptForUpdateENG
    ui start "PromptForUpdateENG"
    ifstr(i) $(DLGEVENT) != "YES"
      Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "STATUS" +
        "You have chosen to Cancel the upgrade."$(!LF)"No changes have been made."
      set CommonStatus = STATUS_USERCANCEL
      ifstr(i) $(OEM_ABANDON_ON) == TRUE
        set OEM_ABANDON_ON = FALSE
        goto abandon
      endif
      goto end
    Endif
  else-ifstr(i) $(oldDriverFound) == "NO"
    goto continue_install
  Endif

  ;;; End of upgrade scenario
  ;;; Check to see whether there are any old instances of the driver around
  OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
  Ifstr(i) $(ServicesKey) != "" ; key exists
    EnumRegKey $(ServicesKey) DriverList
    ForListDo $(DriverList)  
      ;;; For each Python driver in the list, delete it from the registry
      set Driver = *($($), 1)
      Split-String "$(Driver)" "n" DriverTokens
      set DriverName = *($(DriverTokens), 1)
      ifstr(i) $(DriverName) == "El980"
        ;;; We have found a Python-related key
        ;;; Remove the associated entry from the NetworkCards section
        OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards" +
          $(!REG_KEY_ALL_ACCESS) CardsKey
        Ifstr(i) $(CardsKey) != "" ; key exists
          ;;; Enumerate through all cards looking for for the one matching "$Driver"
          EnumRegKey $(CardsKey) CardDriverList
          ForListDo $(CardDriverList)
            set CardNo = *($($), 1)
            OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(CardNo) +
              $(!REG_KEY_ALL_ACCESS) CardSvcNameKey
            Ifstr(i) $(CardSvcNameKey) != "" ; key exists
              GetRegValue $(CardSvcNameKey) "ServiceName" ServiceNameValue
              set FullDriverName = *($(ServiceNameValue),4)
              ifstr(i) $(FullDriverName) == $(Driver) 
                ;;; Delete this card information
                DeleteRegTree $(CardsKey) $(CardNo)
              Endif
            Endif
            CloseRegKey $(CardSvcNameKey)
          EndForListDo
        Endif
      Endif
      CloseRegKey $(CardsKey)
    EndForListDo
  Endif
  CloseRegKey $(KeyNt)

  ; Remove any entries in the registry that have just been added
  ; but are no longer valid.
  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com" $(!REG_KEY_ALL_ACCESS) KeyNt
  Ifstr(i) $(KeyNt) != "" ; key exists
    EnumRegKey $(KeyNt) DriverList
    ForListDo $(DriverList)
      ; For each Python driver in the list, delete it from the registry
      set Driver = *($($), 1)
      Split-String "$(Driver)" "0" DriverTokens
      set DriverName = *($(DriverTokens), 1)
      ifstr(i) $(DriverName) == "el98"
        ; We have found a Python-related key
        set FullDriverName = *($($), 1)
        DeleteRegTree $(KeyNt) $(FullDriverName)
      Endif
    EndForListDo
  Endif
  CloseRegKey $(KeyNt)

  OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
  Ifstr(i) $(ServicesKey) != "" ; key exists
    EnumRegKey $(ServicesKey) DriverList
    ForListDo $(DriverList)
      ; For each Python driver in the list, delete it from the registry
      set Driver = *($($), 1)
      Split-String "$(Driver)" "0" DriverTokens
      set DriverName = *($(DriverTokens), 1)
      Ifstr(i) $(DriverName) == "el98"
        ; We have found a Python-related key
        set FullDriverName = *($($), 1)
        DeleteRegTree $(ServicesKey) $(FullDriverName)
      Endif
    EndForListDo
  Endif
  CloseRegKey $(ServicesKey)

  AddFileToDeleteList "%SystemRoot%\System32\980instl.exe"
  AddFileToDeleteList "%SystemRoot%\System32\980instl.hlp"
  AddFileToDeleteList "%SystemRoot%\System32\drivers\EL980n4.SYS"
  AddFileToDeleteList "%SystemRoot%\System32\drivers\EL980n4x.SYS"
  AddFileToDeleteList "%SystemRoot%\System32\daserver.exe"

  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion" +
    $(!REG_KEY_ALL_ACCESS) CurrentVersionKey

  OpenRegKey $(CurrentVersionKey) "" "RunOnce" $(!REG_KEY_ALL_ACCESS) RunOnceKey

  ifstr(i) $(RunOnceKey) != ""
  ; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
  ;   "Deleting regvalue DASERVER"
    DeleteRegValue $(RunOnceKey) DASERVER
  endif

  CloseRegKey $(RunOnceKey)
  CloseRegKey $(CurrentVersionKey)

  ;;; Check for an entry to delete comsmd.exe from the registry
  ;;; If it is there, undelete it because deleting it may cause problems
  ;;; if the OS attempts to execute it after rebooting the machine

  OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Control\Session Manager" +
    $(!REG_KEY_ALL_ACCESS) DeleteKey

  ifstr(i) $(DeleteKey) != ""
    EnumRegValue $(DeleteKey) DeleteEntries
    ;;; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "WARNING" +
    ;;;  "Delete Entries: "$(DeleteEntries)
    ;;; DO NOTHING FOR NOW - UNFINISHED !

  endif

  read-syms PromptForRebootDlg
  ui start "PromptForRebootDlg"
  set CommonStatus = STATUS_SUCCESSFUL
  return $(CommonStatus)
Endif

;;; Continue installing an updated version of the Python driver
continue_install = +
Ifstr(i) $(!NTN_InstallMode) == deinstall
set StartLabel = removeadapter
else-Ifstr(i) $(!NTN_InstallMode) == Update
set StartLabel = UpgradeSoftware
else-Ifstr(i) $(!NTN_InstallMode) == bind
set StartLabel = bindingadapter
else-Ifstr(i) $(!NTN_InstallMode) == configure
ifstr $(!STF_PLATFORM) == $(INF_PROCESSER)    
RunProgram ExitCode "Windows Directory" "" 980instl.exe 

; Determine whether the program has modified any SHD parameters
; If so, then prompt for a reboot. Also prompt for a reboot on
; an install or upgrade.

OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com" $(!REG_KEY_ALL_ACCESS) KeyNt
Ifstr(i) $(KeyNt) != ""
  GetRegValue $(KeyNt) "PromptForReboot" RebootRequiredList
  set RebootRequired = *($(RebootRequiredList), 4)

  Ifstr(i) $(RebootRequired) == "YES"
    ; Reset the reboot status to NO
    SetRegValue $(KeyNt), {PromptForReboot, $(NoTitle),$(!REG_VT_SZ),"NO"}
    set CommonStatus = STATUS_SUCCESSFUL
  else
    set CommonStatus = STATUS_USERCANCEL
  Endif
Endif

CloseRegKey $(KeyNt)
goto end

else-Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
set from = end
set to = end
goto nonfatalinfo
else
set StartLabel = configureadapter
endif
else
set StartLabel = installadapter
set OEM_ABANDON_OPTIONS = {}
set OEM_ABANDON_SOFTWARE = FALSE
set OEM_ABANDON_ON = TRUE
endif
set from = $(fatal)
set to = $(fatal)
goto $(StartLabel)
installadapter = +
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
ifstr(i) $(Option)  == "VLAN"
goto pcidetect
endif 
ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto end
else
set OldVersionExisted = $(TRUE)
endif
else-ifstr(i) $(Option) == "VLAN"
set Error = $(INSTALL_CARD_FIRST)
set CommonStatus = USER_CANCEL
set from = end
goto nonfatal 
Endif
Goto adapteroptions    
configureadapter = +
set Error = "Cannot configure the software component"
goto fatal
adapteroptions = +
set from = adapteroptions
ifstr(i) $(!NTN_InstallMode) == configure
goto updateparameters
endif
installproduct = +
StartWait 
set AdapterList = $($R1)
ifint $(OldVersionExisted) == $(FALSE)
Ifstr(i) $(DoCopy) == "YES"
Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
Else-Ifstr(i) $($R0) == STATUS_FAILED
Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
Goto fatal
Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
Goto successful
Endif
Set SrcDir = $($R1)
Endif
install "Install-Option"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
endif
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName) $(!REG_KEY_READ) KeyNt
CloseRegKey $(KeyNt)
Ifstr(i) $(KeyNt) == ""
Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName), +
$(ProductSoftwareName), +
$(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
$(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
$(NetEventDLL)
Set OEM_ABANDON_SOFTWARE = TRUE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
endif
Set SoftProductKey      = $($R1)
Set SoftNetRuleKey      = $($R2)
Set SoftServiceKey      = $($R3)
Set SoftParameterKey    = $($R4)
Set SoftLinkageKey      = $($R5)
set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell  $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
goto fatalregistry
endif
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell  $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
goto fatalregistry
endif
endif ;; Does Services\el980N4 exist?
pcidetect = +
Debug-Output "IN PCI Detect"
set TargetVersion = *($(CurrentVersionValue),4)
ifstr $(TargetVersion) == $(NT350VersionConstant)   ;; We need to ask on v3.50
set Version350 = $(TRUE)
else
set Version350 = $(FALSE)
endif
ifint $(Version350) == $(TRUE)
ifstr $(!STF_GUI_UNATTENDED) == "YES"
ifstr(i) $(!AutoNetInterfaceType) != ""
set BusInterfaceType = $(!AutoNetInterfaceType)
else
set BusInterfaceType = 5
endif
ifstr(i) $(!AutoNetBusNumber) != ""
set BusNumber = $(!AutoNetBusNumber)
else
set BusNumber = 0
endif
set NTDetected = $(FALSE)
set AdapterList = $(Option)   ;; 1 Item to install
else        
set BusInterfaceType = 5
set BusNumber = 0
set NTDetected = $(FALSE)
Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardware$(Option)Description) $(BusInterfaceType) $(BusNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set BusInterfaceType = $($R1)
set BusNumber = $($R2)
set AdapterList = $(Option)   ;; 1 Item to install
endif    
else
set NTDetected = $(TRUE)
set Vendor = 4279       ;; 0x10b7 is 3Com's Vendor ID!
set CFIDList = $(3C980CFIDList)
set AdapterList = {}

; Add in support for 3c905b
ForListDo $(CFIDList)
set-div CFID = $($) 1
set DeviceID = $($)
Shell $(UtilityInf), GetPCIInformation, $(Vendor) $(CFID)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ForListDo $($R0)
set AdapterList = >($(AdapterList), {*($($),1), *($($),2), $(DeviceID)})
EndForListDo
EndForListDo
ifstr(i) $(AdapterList) == {}

; Remove any entries in the registry that have just been added
; but are no longer valid.

OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com" $(!REG_KEY_ALL_ACCESS) KeyNt
Ifstr(i) $(KeyNt) != "" ; key exists
  EnumRegKey $(KeyNt) DriverList
  ForListDo $(DriverList)
    ; For each Python driver in the list, delete it from the registry
    set Driver = *($($), 1)
    Split-String "$(Driver)" "0" DriverTokens
    set DriverName = *($(DriverTokens), 1)
    ifstr(i) $(DriverName) == "el98"
      ; We have found a Python-related key
      set FullDriverName = *($($), 1)
      DeleteRegTree $(KeyNt) $(FullDriverName)
    Endif
  EndForListDo
CloseRegKey $(KeyNt)

OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
Ifstr(i) $(ServicesKey) != "" ; key exists
  EnumRegKey $(ServicesKey) DriverList
  ForListDo $(DriverList)
    ; For each Python driver in the list, delete it from the registry
    set Driver = *($($), 1)
    Split-String "$(Driver)" "0" DriverTokens
    set DriverName = *($(DriverTokens), 1)
    Ifstr(i) $(DriverName) == "el98"
      ; We have found a Python-related key
      set FullDriverName = *($($), 1)
      DeleteRegTree $(ServicesKey) $(FullDriverName)
    Endif
  EndForListDo
Endif
CloseRegKey $(ServicesKey)

set Error = $(CANNOT_FIND_ANY_CARD)
set CommonStatus = USER_CANCEL
set from = end
goto nonfatal
endif
endif
Debug-Output "$(AdapterList)"
set AdapterNum = 1
set CardNum = 1
set tempcards = 0
set AdapterSeq = 0
set addt = 0
set DoNotInstall = 0
InstallVlan = +
ForListDo $(AdapterList)
Debug-Output "Counting Adapters"
set DetectedBusNum = *($($),1)
set DetectedSlotNum = *($($),2)

; Add support for 3c905b
set DeviceID = *($($), 3)

Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName), "", 0, 0
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
endif
ifint $($R1) >=  1 
set-add tempcards = $(tempcards) , 1
endif 
EndForListDo    
read-syms BaseVars
LoadLibrary "" .\EtherBox.dll hLib 
ForListDo $(AdapterList)
set SecondaryNIC = 0 
set Paceactive = 0	
Set InstallCard = "YES"
set-add AdapterSeq = $(AdapterSeq) , 1 
ifint $(NTDetected) == $(TRUE)
set DetectedBusNum = *($($),1)
set DetectedSlotNum = *($($),2)

; Add in support for 3c905b
set DeviceID = *($($), 3)

Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName), "", 0,$(AdapterNum)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
endif
set SecondaryNIC = $($R4) 
set CardNumPresent = $($R5) 
set NICNum  = $($R6)
set Paceactive = $($R7)	
ifint $($R1) >=  1 
set InstallCard = "NO"  ;; Don't want to re-install, it's there already
endif    
endif	; NTdetected
ifstr(i) $(Option) == "3C980"
ifstr(i) $(InstallCard) == "NO"
set addt =  1 
goto nextone
else	
set addt = 0 
ifstr $(!STF_GUI_UNATTENDED) != "YES"

dlgagain1 = +

;read-syms EtherBoxDRIVER
;ui start "Inputdlg" $(hLib)

;;
;; Pull up the screen
;;

;LibraryProcedure ResultList $(hLib) DoInstallDialog $(DetectedBusNum) $(DetectedSlotNum)
;Split-String $(ResultList) "," DestinationList
;Set DLGEVENT = *($(DestinationList),1)       ; Value 1 is action requested
set DLGEVENT = "YES"

ifstr(i) $(DLGEVENT) == "YES"
  set DLGEVENT = "CONTINUE"
else-ifstr(i) $(DLGEVENT) == "HELP"
  set DLGEVENT = "FREEBUTTON1"
else
  set DLGEVENT = "CANCEL"
endif

;;;set DLGEVENT = CONTINUE

ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
ui pop 1
RunProgram HelpResult "" "" winhlp32.exe  $(!STF_WINDOWSSYSPATH)"\"980instl.hlp
goto dlgagain1
endif
else 
set DLGEVENT = "CONTINUE"	
endif	
ifstr(i) $(DLGEVENT) == "CONTINUE"
set DoNotInstall = 1 
ui pop 1	
ifint $(CardNumPresent) == 0 
; Changed from el980n4x to el980n4
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"el980n4"\Parameters" +
$(MAXIMUM_ALLOWED) IE_KeyService
GetRegValue $(IE_KeyService), "TotCards", CardInfos
set CardNumbers = *($(CardInfos),4) 	
set DeviceID = *($($), 3)					
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName), "", 0, $(CardNumbers)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set IsthisNICpresent = $($R5)
ifstr(i) $(CardNumbers) !=  "" 		
ifint $(AdapterNum) == 1
ifint $(IsthisNICpresent) == 1
set-add CardNum = $(CardNumbers) , 1
else
set CardNum = $(CardNumbers) 
endif
endif
endif
else 
; Changed from el980n4x to el980n4
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"el980n4"\Parameters" +
$(MAXIMUM_ALLOWED) IE_KeyService
GetRegValue $(IE_KeyService), "TotCards", CardInfo
set CardNumber = *($(CardInfo),4) 						
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName), "", 0, $(CardNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Isthiscardpresent = $($R5)
ifint $(CardNumber) < $(CardNum)
goto skip
endif	
ifint $(Isthiscardpresent)  ==  1
set-add  CardNum = $(CardNumber) , 1	
else
set CardNum = $(CardNumber)
endif
skip = +			
goto writeregistry
endif
else 
set-sub AdapterNum = $(AdapterNum), 1
set-sub CardNum = $(CardNum), 1
ui pop 1	
goto nextone		
endif	 
endif
else-ifstr(i) $(Option) == "VLAN"
ifstr(i) $(InstallCard) == "NO"
set CardNum = $(NICNum) 
ifint $(Paceactive) == 1
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"VLANs cannot be installed on a NIC with PACE enabled. Please Disable PACE and reboot system ." 
goto nextone	
endif
ifint $(SecondaryNIC) == 1
goto nextone	
endif	
goto writeregistry	
else
goto nextone 
endif
endif ; 3C980  
writeregistry = +	    
ifstr $(!STF_GUI_UNATTENDED) != "YES"
dlgagain2 = +
;read-syms EtherBoxVLANS
;ui start "Inputdlg" $(hLib)
set DLGEVENT = "CANCEL" 
ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
ui pop 1
RunProgram HelpResult "" "" winhlp32.exe  $(!STF_WINDOWSSYSPATH)"\"980instl.hlp
goto  dlgagain2
endif
set Vlanyes = 0
set NumMacs = 1
set VlanIndex = 0
set Vlanon = 0
ifstr(i) $(DLGEVENT) == "CONTINUE"
set Vlanyes = 1
ui pop 1	
ifstr(i) $(Option) == "VLAN"
ifstr(i) $(InstallCard) == "YES"	
set Error = $(INSTALL_CARD_FIRST)
set CommonStatus = USER_CANCEL
set from = end
goto nonfatal
endif	
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName),"",0
ifint $($ShellCode) !=  $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
endif		    	   
set NumMacs = $($R1)	; Num of Macs Currently installed
set Vlanon = $($R2)	; if Vlans are turned on 
set Vlanpresent = $($R3)	; if Vlans are turned on 
set VlanIndex = $(NumMacs) 
endif; VLAN
goto noofvlans
else 
ifstr(i) $(Option) == "VLAN"
ui pop 1 
goto nextone
endif
ui pop 1	
goto writereg
endif
noofvlans = +	
read-syms EtherBoxVLANNO
ui start "Inputdlg" $(hLib)
ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
ui pop 1
RunProgram HelpResult "" "" winhlp32.exe  $(!STF_WINDOWSSYSPATH)"\"980instl.hlp
goto noofvlans
endif

ifstr(i) $(DLGEVENT) == "BACK"
ui pop 1
goto writeregistry 
endif	
set TempNumMacs = *($(EditTextOut),1)
ui pop 1	
ifint $(TempNumMacs)   == 1
ifint $(NumMacs) == 1	
ifint $(Vlanon) == 1    ; Donot Install Vlans as Vlan already exists	
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
""$(NumMacs)" Vlan already exists."
goto noofvlans		
endif			
ifstr(i) $(Option) == "VLAN"
ifint $(Vlanpresent)  == 1
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"Vlans may have been installed already and turned off. Please Check Configuration"
goto noofvlans		
endif	
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName),"",1, 0 
ifint $($ShellCode) !=  $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto nextone	
endif	;VLAN 				
set Vlanon = $(Vlanyes)
goto writereg 
endif	; NumMacs
endif	; tempNumMacs	
ifint $(TempNumMacs) == 0
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"Minimum Vlan per NIC is atleast 1."
goto noofvlans	
endif
ifint $(TempNumMacs) > 16
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"Maximum Vlans per NIC is 16."
goto noofvlans
endif
ifint $(TempNumMacs) <=  $(NumMacs)
set DlgTxt = ""$(NumMacs)" Vlans already exist" 
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
$(DlgTxt)	
goto noofvlans
endif
ifstr(i) $(Option) == "VLAN"
ifint $(TempNumMacs) > 1
ifint $(NumMacs) ==  1	
ifint $(Vlanon) == 0
ifint $(Vlanpresent)  == 1
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"Vlans may have been installed already and turned off. Please Check Configuration"
goto noofvlans		
endif	
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName),"", 1
ifint $($ShellCode) !=  $(!SHELL_CODE_OK)
goto ShellCodeError
endif
endif	
else 
ifint $(Vlanon) == 0	
ifint $(Vlanpresent)  == 1
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"Vlans may have been installed already and turned off. Please Check Configuration"
goto noofvlans		
endif	
endif
endif	
endif
endif
set NumMacs = $(TempNumMacs)
writereg = +
StartWait
else 
set VlanIndex = 0
set NumMacs = 1
endif 	; endif GUI unattended
ifint $(VlanIndex) <  $(NumMacs)
Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
ifint $($R4) != -1
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
endif
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
goto fatalregistry
endif
Set HardNetCardKey      = $($R1)
Set HardNetRuleKey      = $($R2)
Set HardParameterKey    = $($R3)
set AdapterNumber = $($R4)
set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(DeviceID)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(DeviceID)Description)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell  $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set BusTypeNum = 5   
ifstr(i) $(Option) == "3C980"
set CardType = 0
else
set CardType = 2
endif    
ifint $(NTDetected) == $(TRUE)
set BusNumber = $(DetectedBusNum)
set SlotNum = $(DetectedSlotNum)    
set BusInterfaceType = $(BusTypeNum)
Set NewValueList =  {{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(DetectedBusNum)},+
{SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(DetectedSlotNum)},+
{Slot,$(NoTitle),$(!REG_VT_DWORD),$(DetectedSlotNum)},+
{WINNT,$(NoTitle),$(!REG_VT_SZ),"Yes"},+
{ADAPTERNUMBER,$(NoTitle),$(!REG_VT_DWORD),$(CardNum)},+
{AlertType,$(NoTitle),$(!REG_VT_DWORD),4},+
{AdapterSeq,$(NoTitle),$(!REG_VT_DWORD),$(AdapterSeq)},+
{Vlan_op,$(NoTitle),$(!REG_VT_DWORD),$(Vlanyes)},+
{SelfCheckLevel,$(NoTitle),$(!REG_VT_SZ),"Basic"},+
{SamplingWindow,$(NoTitle),$(!REG_VT_DWORD),1024},+
{SamplingRatio,$(NoTitle),$(!REG_VT_DWORD),50},+
{ErrorTolerance,$(NoTitle),$(!REG_VT_SZ),"Medium"},+
{Base_Mac_Address,$(NoTitle),$(!REG_VT_SZ),""},+
{Network_Address,$(NoTitle),$(!REG_VT_SZ),""}} 
Shell  $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifint $(Vlanyes) == 1
set NewValueList = {+ 
{VLAN_NAME,$(NoTitle),$(!REG_VT_SZ),""},+
{VLANID,$(NoTitle),$(!REG_VT_DWORD),255},+ 
}		  
Shell  $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
endif 
else
Set NewValueList =  {+
{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
}
Shell  $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
endif
Set NewValueList =  {+
{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
{CardType,$(NoTitle),$(!REG_VT_DWORD),$(CardType)},+
{MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
}
Shell  $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardware3C980Type)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardware3C980Class)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell  $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(HardNetCardKey)
CloseRegKey $(HardNetRuleKey)
CloseRegKey $(HardParameterKey)
set-add VlanIndex = $(VlanIndex), 1
EndWait	
goto writereg
endif; VlanIndex 
nextone = +
ifint $(addt) == 0	
set-add AdapterNum = $(AdapterNum), 1
set-add CardNum = $(CardNum), 1		    
endif  
EndForListDo	; Adapter List
FreeLibrary $(hLib) 
ifint $(Option) == "3C980"
ifint $(DoNotInstall) == 0 
set Install_dRMON       = "NO"
set Install_3NIC_Diag   = "NO"
set Install_PACE        = "NO"
set Install_Shortcuts   = "NO"
goto end	
endif
; Changed from el980n4x to el980n4
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"el980n4"\Parameters" +
$(MAXIMUM_ALLOWED) IE_KeyService
SetRegValue $(IE_KeyService)  {TotCards, $(NoTitle),$(!REG_VT_DWORD),$(CardNum)} 
CloseRegKey $(IE_KeyService)
endif 
ifint $(Option) == "VLAN"
set Install_dRMON       = "NO"
set Install_3NIC_Diag   = "NO"
set Install_PACE        = "NO"
set Install_Shortcuts   = "NO"
RunProgram ExitCode "Windows Directory" "" 3nicdiag.exe "-inf"                      ;*
RunProgram ExitCode "Windows Directory" "" 980instl.exe "-inf"                      ;*
goto successful 
endif  
ifstr $(!STF_PLATFORM) == $(INF_PROCESSER)    
install "Install-Uninstaller"                                                                       ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProductSoftwareName) $(!REG_KEY_ALL_ACCESS) +       ;*
KeyNt                                                              ;*
set TrayIconList = {3CUNINSTALL,$(NoTitle),$(!REG_VT_SZ),$(3CNUMBER)}                               ;*
SetRegValue $(KeyNt) $(TrayIconList)                                                                ;*
set TrayIconList = {FamilyMember,$(NoTitle),$(!REG_VT_SZ),"3C980"}                               ;*
SetRegValue $(KeyNt) $(TrayIconList)                                                                ;*
set TrayIconList = {PACENAME,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)}                       ;*
SetRegValue $(KeyNt) $(TrayIconList)                                                                ;*
CloseRegKey $(KeyNt)                                                                                ;*
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)                                   ;*
ifstr $(Install_3NIC_Diag) == "YES"                                                             ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" +       ;*
$(!REG_KEY_ALL_ACCESS) KeyNt                                   ;*
ifstr $(KeyNt) == ""                                                                        ;*
CreateRegKey $(!REG_H_LOCAL) {"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", +  ;*
0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" KeyNt    ;*
endif                                                                                       ;*
OpenRegKey $(KeyNt) "" "3ComNicUnInstall" $(!REG_KEY_ALL_ACCESS) KeyNt2                     ;*
ifstr $(KeyNt2) == ""                                                                       ;*
CreateRegKey $(KeyNt) {"3ComNicUnInstall" , 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) +;*
"" KeyNt2                                                      ;*
endif                                                                                       ;*
set NewValueList = {{DisplayName, $(NoTitle), $(!REG_VT_SZ), "3Com NIC Diagnostics"}, +     ;*
{UninstallString, $(NoTitle), $(!REG_VT_SZ), "UN3C90X.EXE"}}                            ;*
Shell $(UtilityInf), AddValueList, $(KeyNt2), $(NewValueList)                               ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK)                                                    ;*
goto ShellCodeError                                                                     ;*
endif                                                                                       ;*
CloseRegKey $(KeyNt)                                                                        ;*
CloseRegKey $(KeyNt2)                                                                       ;*
endif                                                                                           ;*
endif                                                                                               ;*
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)                            ;*
install "Install-Tray"                                                                   ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +          ;*
$(!REG_KEY_ALL_ACCESS) KeyNt                             ;*
set TrayIconList = {COMSMDEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"}            ;*
SetRegValue $(KeyNt) $(TrayIconList)                                                     ;*
CloseRegKey $(KeyNt)                                                                     ;*
endif                                                                                        ;*
ifstr $(Install_dRMON) == "YES"                                                      ;*
install "Install-dRMON"                                                          ;*
Shell  $(!STF_WINDOWSSYSPATH)\drmonnt.inf, InstallOption, $(CurrLang),+          ;*
$(Option) ,$(SrcDir), YES, YES, YES, NO              ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK)                                         ;*
goto ShellCodeError                                                          ;*
endif                                                                            ;*
endif                                                                                ;*
ifstr $(Install_PACE) == "YES"                                                      ;*
install "Install-PACE"                                                          ;*
set CalledPace = "installpace"                                                  ;*
goto paceentries                                                                ;*
installpace = +                                                                             ;*
endif                                                                               ;*
ifstr $(Install_3NIC_Diag) == "YES"                                                         ;*
install "Install-3nicdiag"                                                              ;*
ifstr(i) $(!STF_GUI_UNATTENDED) != "YES"                                                ;*
RunProgram ExitCode "Windows Directory" "" 3nicdiag.exe "-inf"                      ;*

;;;
;;; Add an entry into the registry to start the daserver.exe program upon rebooting

;Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
;  "Checking for RunOnce key."

OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion" +
$(!REG_KEY_ALL_ACCESS) CurrentVersionKey

OpenRegKey $(CurrentVersionKey) "" "RunOnce" $(!REG_KEY_ALL_ACCESS) RunOnceKey

ifstr(i) $(RunOnceKey) == ""
;     Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
;       "RunOnce key not found. Creating a new RunOnce key."

  CreateRegKey $(CurrentVersionKey) "RunOnce" "" $(!REG_KEY_ALL_ACCESS) "" RunOnceKey
endif

ifstr(i) $(RunOnceKey) == ""
;     Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
;       "RunOnce key cannot be created."
else
  SetRegValue $(RunOnceKey) {DASERVER, $(NoTitle),$(!REG_VT_SZ),"DASERVER.EXE"}  
endif

;shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
;  "Value written to RunOnce key value DASERVER."

CloseRegKey $(RunOnceKey)
CloseRegKey $(CurrentVersionKey)

;; Check whether daserver.exe was copied. If not, modify the run key.
detect CheckForDAServer
set DAServer = *($(DAServerFound), 1)

ifstr $(DAServer) != "daserver.exe"
; Remove any key starting daserver upon reboot

OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion" +
$(!REG_KEY_ALL_ACCESS) CurrentVersionKey

OpenRegKey $(CurrentVersionKey) "" "RunOnce" $(!REG_KEY_ALL_ACCESS) RunOnceKey

ifstr(i) $(RunOnceKey) != ""
;  Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
;    "Deleting regvalue DASERVER"
  DeleteRegValue $(RunOnceKey) DASERVER
endif

CloseRegKey $(RunOnceKey)
CloseRegKey $(CurrentVersionKey)

endif

RunProgram ExitCode "Windows Directory" "" 980instl.exe "-inf"                      ;*

; Determine whether the program has modified any SHD parameters.
; If so, then prompt for a reboot. Also prompt for a reboot on
; an install or upgrade.

; This is only executed during an install, so always prompt for
; a reboot after this!!

endif                                                                                   ;*
ifstr(i) $(Install_Shortcuts) == "YES"                                            ;*    ;*
RunProgram ExitCode "Windows Directory" "" COMSMD.EXE "-setup"                ;*    ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +;*    ;*
$(!REG_KEY_ALL_ACCESS) KeyNt                  ;*    ;*
;mtset TrayIconList = {COMSMDEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -try"} ;*    ;*
;mtSetRegValue $(KeyNt) $(TrayIconList)                                          ;*    ;*
CloseRegKey $(KeyNt)                                                          ;*    ;*
endif                                                                             ;*    ;*
endif                                                                                       ;*
EndWait
updateparameters =+
set HardParameterKey    = $($R3)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(KeyParameters)
goto successful
bindingadapter =+
set Error = "Binding: Sorry, not yet implemented."
goto fatal
removeadapter = +
read-syms BaseVars 
ifstr(i) $(Option) == "3C980"
; Changed from el980n4x to el980n4
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"el980n4"\Parameters" +
$(MAXIMUM_ALLOWED) IE_KeyService
GetRegValue $(IE_KeyService), "TotCards", CardInfo
set CardNum = *($(CardInfo),4) 						
set-sub CardNum = $(CardNum) , 1 	
SetRegValue $(IE_KeyService)  {TotCards, $(NoTitle),$(!REG_VT_DWORD),$(CardNum)} 
CloseRegKey $(IE_KeyService)

;;; Adding code to delete unnecessary files when we are removing the last
;;; driver on the system
ifstr(i) $(CardNum) == "1"
  AddFileToDeleteList "%SystemRoot%\System32\980instl.exe"
  AddFileToDeleteList "%SystemRoot%\System32\980instl.hlp"
  AddFileToDeleteList "%SystemRoot%\System32\drivers\EL980n4.SYS"
  AddFileToDeleteList "%SystemRoot%\System32\drivers\EL980n4x.SYS"
  AddFileToDeleteList "%SystemRoot%\System32\daserver.exe"

  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion" +
    $(!REG_KEY_ALL_ACCESS) CurrentVersionKey

  OpenRegKey $(CurrentVersionKey) "" "RunOnce" $(!REG_KEY_ALL_ACCESS) RunOnceKey

  ifstr(i) $(RunOnceKey) != ""
  ; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
  ;   "Deleting regvalue DASERVER"
    DeleteRegValue $(RunOnceKey) DASERVER
  endif

  CloseRegKey $(RunOnceKey)
  CloseRegKey $(CurrentVersionKey)

  ;;; Check for an entry to delete comsmd.exe from the registry
  ;;; If it is there, undelete it because deleting it may cause problems
  ;;; if the OS attempts to execute it after rebooting the machine

  OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Control\Session Manager" +
    $(!REG_KEY_ALL_ACCESS) DeleteKey

  ifstr(i) $(DeleteKey) != ""
    EnumRegValue $(DeleteKey) DeleteEntries
    ;;; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "WARNING" +
    ;;;  "Delete Entries: "$(DeleteEntries)
    ;;; DO NOTHING FOR NOW - UNFINISHED !

  endif
endif

endif     
Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
else
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductSoftwareName), $(!NTN_RegBase)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
ifstr(i) $(!STF_PLATFORM) == $(INF_PROCESSER)    
RunProgram ExitCode "Windows Directory" "" UN3C90X.EXE "-inf"    
endif
ifstr $(Install_dRMON) == "YES"                                                      ;*
Shell  $(!STF_WINDOWSSYSPATH)\drmonnt.inf, InstallOption, $(CurrLang),$(Option) ,$(SrcDir), YES, YES, YES, -inf 
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
endif
goto end
UpgradeSoftware = +
set OVERWRITE_SAVE = $(!STF_OVERWRITE)
set !STF_OVERWRITE = "VERIFYSOURCEOLDER"
install "Install-Option"                                                                          ;*
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS                                                    ;*
Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"                                    ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK)                                                      ;*
goto ShellCodeError                                                                       ;*
endif                                                                                         ;*
set Error = $($R0)                                                                            ;*
goto fatal                                                                                    ;*
endif                                                                                             ;*
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(!REG_KEY_READ) KeyProduct                       ;*
Ifstr $(KeyProduct) != ""                                                                         ;*
Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)                                ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK)                                                      ;*
goto ShellCodeError                                                                       ;*
endif                                                                                         ;*
set !UG_Filename = $($R0)                                                                     ;*
install "Install-INF"                                                                         ;*
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS                                                ;*
goto fatal                                                                                ;*
endif                                                                                         ;*
SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}      ;*
SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}      ;*
CloseRegKey $(KeyProduct)                                                                     ;*
else                                                                                             ;*
goto fatalregistry                                                                             ;*
endif                                                                                            ;*
ifstr $(!STF_PLATFORM) == $(INF_PROCESSER)    
install "Install-Uninstaller"                                                                       ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProductSoftwareName) $(!REG_KEY_ALL_ACCESS) +       ;*
KeyNt                                                              ;*
set TrayIconList = {3CUNINSTALL,$(NoTitle),$(!REG_VT_SZ),$(3CNUMBER)}                               ;*
SetRegValue $(KeyNt) $(TrayIconList)                                                                ;*
set TrayIconList = {PACENAME,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)}                       ;*
SetRegValue $(KeyNt) $(TrayIconList)                                                                ;*
CloseRegKey $(KeyNt)                                                                                ;*
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)                                   ;*
ifstr $(Install_3NIC_Diag) == "YES"                                                             ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" +       ;*
$(!REG_KEY_ALL_ACCESS) KeyNt                                   ;*
ifstr $(KeyNt) == ""                                                                        ;*
CreateRegKey $(!REG_H_LOCAL) {"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall",+   ;*
0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" KeyNt    ;*
endif                                                                                       ;*
OpenRegKey $(KeyNt) "" "3ComNicUnInstall" $(!REG_KEY_ALL_ACCESS) KeyNt2                     ;*
ifstr $(KeyNt2) == ""                                                                       ;*
CreateRegKey $(KeyNt) {"3ComNicUnInstall" , 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) +;*
"" KeyNt2                                                      ;*
endif                                                                                       ;*
set NewValueList = {{DisplayName, $(NoTitle), $(!REG_VT_SZ), "3Com NIC Diagnostics"},+      ;*
{UninstallString, $(NoTitle), $(!REG_VT_SZ), "UN3C90X.EXE"}}                            ;*
Shell $(UtilityInf), AddValueList, $(KeyNt2), $(NewValueList)                               ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK)                                                    ;*
goto ShellCodeError                                                                     ;*
endif                                                                                       ;*
CloseRegKey $(KeyNt)                                                                        ;*
CloseRegKey $(KeyNt2)                                                                       ;*
endif                                                                                           ;*
endif                                                                                               ;*
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)                            ;*
install "Install-Tray"                                                                   ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +          ;*
$(!REG_KEY_ALL_ACCESS) KeyNt                             ;*
set TrayIconList = {COMSMDEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"}            ;*
SetRegValue $(KeyNt) $(TrayIconList)                                                     ;*
CloseRegKey $(KeyNt)                                                                     ;*
endif                                                                                        ;*
ifstr $(Install_PACE) == "YES"                                                      ;*
install "Install-PACE"                                                          ;*
set CalledPace = "updatepace"                                                   ;*
goto paceentries                                                                ;*
updatepace = +                                                                              ;*
endif                                                                               ;*
ifstr $(Install_dRMON) == "YES"                                                      ;*
install "Install-dRMON"                                                          ;*
set InstallMode_Save = $(!NTN_InstallMode)                                       ;*
set !NTN_InstallMode = install                                                   ;*
set SRCDIR_OVERRIDE_Save = $(!STF_SRCDIR_OVERRIDE)                               ;*
set !STF_SRCDIR_OVERRIDE = $(SrcDir)                                             ;*
Shell  $(!STF_WINDOWSSYSPATH)\drmonnt.inf, InstallOption, $(CurrLang), +         ;*
$(Option) ,$(SrcDir), YES, YES, YES, NO              ;*
set !NTN_InstallMode = $(InstallMode_Save)                                       ;*
set !STF_SRCDIR_OVERRIDE = $(SRCDIR_OVERRIDE_Save)                               ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK)                                         ;*
goto ShellCodeError                                                          ;*
endif                                                                            ;*
endif                                                                                ;*
ifstr $(Install_3NIC_Diag) == "YES"                                                         ;*
install "Install-3nicdiag"                                                              ;*
ifstr(i) $(!STF_GUI_UNATTENDED) != "YES"                                                ;*
RunProgram ExitCode "Windows Directory" "" 3nicdiag.exe "-inf"                      ;*
RunProgram ExitCode "Windows Directory" "" 980instl.exe "-inf"                      ;*
endif                                                                                   ;*
ifstr(i) $(Install_Shortcuts) == "YES"                                            ;*    ;*
RunProgram ExitCode "Windows Directory" "" COMSMD.EXE "-setup"                ;*    ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +;*    ;*
$(!REG_KEY_ALL_ACCESS) KeyNt                  ;*    ;*
;mtset TrayIconList = {COMSMDEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -try"} ;*    ;*
;mtSetRegValue $(KeyNt) $(TrayIconList)                                          ;*    ;*
CloseRegKey $(KeyNt)                                                          ;*    ;*
endif                                                                             ;*    ;*
endif                                                                                       ;*
set !STF_OVERWRITE = $(OVERWRITE_SAVE)
endif
goto end
successful = +
goto end
abandon = +
ForListDo $(OEM_ABANDON_OPTIONS)
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductSoftwareName), $($)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
EndForListDo
Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName), FALSE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
goto end
warning = +
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(to)
else-ifstr(i) $($R1) == "CANCEL"
goto $(from)
else
goto "end"
endif
nonfatalinfo = +
Set CommonStatus = STATUS_USERCANCEL
Set Severity = STATUS
goto nonfatalmsg
nonfatal = +
Set Severity = NONFATAL
goto nonfatalmsg
nonfatalmsg = +
ifstr(i) $(Error) == ""
Set Severity = NONFATAL
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(from)
else
goto "RemoveAdapter"
endif
fatalregistry = +
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
fatal = +
ifstr(i) $(Error) == ""
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto setfailed
ShellCodeError = +
ifint $($ShellCode) == $(!SHELL_CODE_NO_SUCH_INF)
else-ifint $($ShellCode) == $(!SHELL_CODE_NO_SUCH_SECTION)
else
endif
set DlgType      = "MessageBox"
set STF_MB_TITLE = $(ShellCodeErrorTitle)
set STF_MB_TEXT  = $(ShellCodeErrorText) 
set STF_MB_TYPE  = 1
set STF_MB_ICON  = 3
set STF_MB_DEF   = 1
ui start "Error Message"
goto setfailed
setfailed = +
set CommonStatus = STATUS_FAILED
ifstr(i) $(OEM_ABANDON_ON) == TRUE
set OEM_ABANDON_ON = FALSE
goto abandon
endif
goto end
end = +
goto term
term = +
Return $(CommonStatus)
paceentries = +
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(!REG_KEY_WRITE) SOFTPACEKEY
OpenRegKey $(SOFTPACEKEY) "" "3Com" $(!REG_KEY_WRITE) COMPACEKEY
ifstr $(COMPACEKEY) == ""
CreateRegKey $(SOFTPACEKEY) {"3Com", 0, GenericClass} "" $(!REG_KEY_WRITE) "" COMPACEKEY
endif
OpenRegKey $(COMPACEKEY) "" "PACECards" $(!REG_KEY_WRITE) CARDPACEKEY
ifstr $(CARDPACEKEY) == ""
CreateRegKey $(COMPACEKEY) {"PACECards", 0, GenericClass} "" $(!REG_KEY_WRITE) "" CARDPACEKEY
endif
OpenRegKey $(CARDPACEKEY) "" $(ProductSoftwareName) $(!REG_KEY_WRITE) EL90XPACEKEY
ifstr $(EL90XPACEKEY) == ""
CreateRegKey $(CARDPACEKEY) {$(ProductSoftwareName), 0, GenericClass} "" $(!REG_KEY_WRITE) "" EL90XPACEKEY
endif
SetRegValue $(EL90XPACEKEY) {"Description", 0, $(!REG_VT_SZ), $(GROUP_NAME)}
OpenRegKey $(CARDPACEKEY) "" "Applications" $(!REG_KEY_WRITE) APPPACEKEY
ifstr $(APPPACEKEY) == ""
CreateRegKey $(CARDPACEKEY) {"Applications", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPPACEKEY
endif
OpenRegKey $(APPPACEKEY) "" "Emotion CreativePartner (IPX)" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Emotion CreativePartner (IPX)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"IPX"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"87C7"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"87C8"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Emotion CreativePartner (TCP/IP)" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Emotion CreativePartner (TCP/IP)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"0453"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"0455"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "InSoft Communique!" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"InSoft Communique!", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"1025, 1500"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1050, 1525"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Picturetel LiveLAN (over IPX)" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Picturetel LiveLAN (over IPX)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"IPX"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"4050"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"4082"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Picturetel LiveLAN (over TCP/IP)" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Picturetel LiveLAN (over TCP/IP)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"06a4"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"06d6"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Precept FlashWare" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Precept FlashWare", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"8000, C000"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"8000, C000"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Progressive Networks RealAudio" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Progressive Networks RealAudio", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"6970"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"7170"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Starlight Networks StarCast" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Starlight Networks StarCast", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"1911"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1911"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "VCON Cruiser 100" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"VCON Cruiser 100", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"1500, 1600"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1500, 1600"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "VXtreme Web Theater" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"VXtreme Web Theater", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"7000"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"7020"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Xing Technology Streamworks" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Xing Technology Streamworks", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"1558"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1558"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
OpenRegKey $(APPPACEKEY) "" "Vosaic Software Server" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Vosaic Software Server", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"TCP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"04D3"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"04D3"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
OpenRegKey $(APPPACEKEY) "" "Vosaic Software Client" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Vosaic Software Client", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"F169"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"F17D"}}
Shell  $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
CloseRegKey $(EL90XPACEKEY)
CloseRegKey $(APPPACEKEY)
CloseRegKey $(CARDPACEKEY)
CloseRegKey $(COMPACEKEY)
CloseRegKey $(SOFTPACEKEY)
goto $(CalledPace)
[Install-Option]
set STF_VITAL = ""
ifstr(i) $(AddCopy) == "YES"
AddSectionFilesToCopyList Files-$(Option) $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-$(Option)dll $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
endif
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-Uninstaller]
set STF_VITAL = ""
AddSectionFilesToCopyList Files-Uninstaller $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-3nicdiag]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-3nicdiag $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-HwDll $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-DAServer $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-PACE]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-PACE $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-Tray]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-Tray $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-dRMON]
set STF_VITAL = ""
AddSectionFilesToCopyList Files-dRMON $(SrcDir)drmon $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-dRMONINF $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-INF]
set STF_VITAL    = ""
AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Source Media Descriptions]
1  = "Windows NT Setup Disk #1"  
3  = "3Com Fast EtherLink Server NICs - DISK 2"
4  = "3Com Fast EtherLink Server NICs - DISK 3", TAGFILE = DISK3
[ProductType]
STF_PRODUCT  = Winnt
[Files-Inf]                        
3, oemsetup.inf,SIZE=36000, RENAME=$(!UG_Filename)
[Files-3nicdiag]
3,3nicdiag.exe, SIZE=165504
3,3nicdiag.hlp, SIZE=20877
3,3varaddr.txt, SIZE=113
3,pacecfg.cpl,  SIZE=65535
3,pacecfg.hlp,  SIZE=6617
[Files-DAServer]
4,daserver.exe, SIZE=65535
[Files-HwDll]
3,hwaccess.dll, SIZE=20198
3,pcomdrv.sys, SIZE=5000
3,3c90xcfg.dll, SIZE=59458
3,980instl.exe, SIZE=65535
3,980instl.hlp, SIZE=65535
3,Etherbox.dll, SIZE=65535
[Files-Tray]
3,comsmd.exe, SIZE=8957
[Files-dRMON]
3,undrmon.exe, SIZE=8957
[Files-dRMONINF]
3,drmonnt.inf, SIZE=8957
[Files-PACE]
3,pacecfg.cpl, SIZE=107457
3,pacecfg.hlp, SIZE=6617
[Files-Uninstaller]
3,UN3C90X.EXE, SIZE=6617
[Files-3C980]
; Changed from el980n4x to el980n4
3,EL980n4.SYS , SIZE=25001
[Files-3C980dll]
3,Etherbox.dll , SIZE=25001
3,980instl.hlp, SIZE=65535

[LanguagesSupported]
ENG
[OptionsTextENG]
3C980   = "3Com Fast EtherLink Server NIC"
;VLAN    = "3Com Fast EtherLink XL Server VLAN INSTANCE"
[FileConstantsENG]
ProCaption   = "Windows NT NIC Setup"
ProCancel    = "Cancel"
ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
"Are you sure you want to cancel copying files?"
ProCancelCap = "Network Setup Message"
ProText1     = "Copying:"
ProText2     = "To:"
ConnectionList  = ^(ConnectionChoices$(Option), 1)
ConnectionValues = ^(ConnectionChoices$(Option), 2)
NoList  = ^(NoChoices, 1)
NoValues = ^(NoChoices, 2)
ShellCodeErrorTitle = "Error: "$(Function$(Option)Title)
ShellCodeErrorText  = "Shell Code Error."
CANNOT_FIND_ANY_CARD    = "Network card is not present in the system"
INSTALL_CARD_FIRST	= "Run 3Com EtherLink Server NIC Installation First"
[DialogConstantsENG]
Help        = "&Help"
Exit        = "Cancel"
OK      = "OK"
HelpContext = ""
Continue    = "Continue"
Cancel      = "Cancel"
[PromptForRebootDlg]
DlgType = "MessageBox"
STF_MB_TITLE = "All previous adapter drivers have been removed"
STF_MB_TEXT  = "You must reboot the machine and then add in the new adapters."
STF_MB_TYPE  = 1
STF_MB_ICON  = 2
STF_MB_DEF   = 1
[PromptForUpdateENG]
DlgType = "MessageBox"
STF_MB_TITLE = "A more recent driver is available"
STF_MB_TEXT  = "If you choose to upgrade, all VLAN and RSL configurations will be erased."+
               $(!LF)$(!LF)"Do you want to upgrade all drivers to the latest one?"
STF_MB_TYPE  = 3
STF_MB_ICON  = 2
STF_MB_DEF   = 1
[InputVlanonDlgENG]
DlgTemplate = "UPGRADE"
DlgType = "Info"
Caption = "3Com EtherLink Server NIC Installation"
DlgText = "Install VLANs on EtherLink XL Server NIC (Bus = "$(DetectedBusNum)") (Slot = "$(DetectedSlotNum)")?"
Continue = "&Yes"
Exit = "&No"
Help = "&Help"
HelpContext = $(!IDH_DB_OEMNADTE_INS)
[InputMacDlgENG]
DlgTemplate = "NETWORK_NUMBER"
DlgType = "Edit"
Caption = "Total Number of VLANs for Bus:"$(DetectedBusNum)" Slot:"$(DetectedSlotNum)""
Edit1Label = "&Total VLANs:"
HelpContext = $(!IDH_DB_OEMNADTE_INS)
EditTextLim = { 2 }
EditTextIn = $(NumMacs)
EditFocus = "ALL"
RCCtlFocusOn = 403
Continue = "&OK"
[InputDrvDlgENG]
DlgTemplate = "UPGRADE"
DlgType = "Info"
Caption = "3Com EtherLink Server NIC Installation"
DlgText = " Install Driver on EtherLink Server NIC (Bus="$(DetectedBusNum)") (Slot = "$(DetectedSlotNum)")?"
Continue = "&Yes"
Exit = "&No"
Help = "&Help"
HelpContext = $(!IDH_DB_OEMNADTE_INS)
[EtherBoxDRIVER]
DlgTemplate = "ETHERBOX_DRIVER"
DlgType		= "Info"
BusLabel	= $(DetectedBusNum)
SlotLabel	= $(DetectedSlotNum)
[EtherBoxVLANS]
DlgTemplate = "ETHERBOX_ELANS"
DlgType		= "Info"
BusLabel	= $(DetectedBusNum)
SlotLabel	= $(DetectedSlotNum)
[EtherBoxVLANNO]
DlgTemplate = "ETHERBOX_ELANNO"
DlgType		= "Edit"
EditTextLim	= { 2 }
EditTextIn	= $(NumMacs)
BusLabel	= $(DetectedBusNum)
SlotLabel	= $(DetectedSlotNum)
[CheckForDAServer]
DAServerFound = {} ? $(!LIBHANDLE) FindFileInstances $(!STF_WINDOWSSYSPATH)"\daserver.exe"
Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web5, load: 0.66