OEMSETUP.INF Driver File Contents (fe575291.exe)

;======================================================================
; OEMSETUP.INF - %VER v1.5 - 3/28/00   Fixed HQ161 (MS)
;----------------------------------------------------------------------
; 3Com Megahertz 10/100 LAN CardBus PC Card NT4.0 Setup File
;======================================================================

[Identification]
 OptionType = NetAdapter

[PlatformsSupported]
 ISA
 PCI
 PCMCIA
 "Jazz-Internal Bus"

[Options]
 Elpc575	;3C575C
 Elpc575A	;3C575B
	
[OptionsTextENG]
 Elpc575  = "FE575C-3Com 10/100 LAN CardBus-Fast Ethernet"
 Elpc575A = "FE575B/3C575-3Com Megahertz 10/100 LAN CardBus PC Card"

[AllFileConstants]
Enabled = "1"
Disabled= "0"
GenericInfVersion = " v2.00"
UtilityInf = "UTILITY.INF"
ParamInf = "NCPARAM.INF"
subroutineinf = "SUBROUTN.INF"
SoftwareType = "driver"
Exit_Code = 0
NetEventDLL = "%SystemRoot%\System32\netevent.dll"
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
;TrayIconExe = "comsmd.exe -try"
UninstallExe = "un3c575"
UnInstallName = "3Com FE575 Uninstaller"
Manufacturer = "3Com"
DISABLEPCMCIASYS = "0"

[FileConstants-Elpc575a]
GenericAdapterName = "FE575B/3C575-3Com Megahertz 10/100 LAN CardBus PC Card"
GenericDriverName  = "FE575B/3C575-3Com Megahertz 10/100 LAN CardBus PC Card"
;ms; GenericSysName = "Elpc575.sys"
GenericName = "Elpc575"
ProductMajorVersion = "2"
ProductMinorVersion = "0"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
ProductSoftwareName = "Elpc575"
ProductSoftwareDescription = "FE575B/3C575-3Com Megahertz 10/100 LAN CardBus PC Card"
;ms; ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
NetRuleSoftwareType = "Elpc575Sys ndisDriver Elpc575Driver"
NetRuleSoftwareUse = $(SoftwareType)
NetRuleSoftwareBindForm = """Elpc575Sys"" yes no container"
NetRuleSoftwareClass = {"Elpc575Driver basic"}
NetRuleSoftwareBindable = {"Elpc575Driver Elpc575Adapter non exclusive 100"}
ProductHardwareName = "Elpc575"
ProductHardwareDescription = "3Com Megahertz 10/100 LAN CardBus PC Card (Ethernet)"
NetRuleHardwareType = "Elpc575 Elpc575Adapter"
NetRuleHardwareBindForm = " yes yes container"
NetRuleHardwareClass = {"Elpc575Adapter basic"}
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName   = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
VERS1Manufacturer = "3Com"
VERS1Product = "Fast EtherLink XL PC Card" 
VERS1Type    = "Elpc575-FastEtherLink"
PCMCIA = 0

[FileConstants-Elpc575]
GenericAdapterName = "FE575C-3COM 10/100 LAN CARDBUS-FAST ETHERNET"
GenericDriverName  = "FE575C-3COM 10/100 LAN CARDBUS-FAST ETHERNET"
;ms; GenericSysName = "Elpc575.sys"
GenericName = "Elpc575"
ProductMajorVersion = "2"
ProductMinorVersion = "0"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
ProductSoftwareName = "Elpc575"
ProductSoftwareDescription = "FE575C-3COM 10/100 LAN CARDBUS-FAST ETHERNET"
;ms; ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
NetRuleSoftwareType = "Elpc575Sys ndisDriver Elpc575Driver"
NetRuleSoftwareUse = $(SoftwareType)
NetRuleSoftwareBindForm = """Elpc575Sys"" yes no container"
NetRuleSoftwareClass = {"Elpc575Driver basic"}
NetRuleSoftwareBindable = {"Elpc575Driver Elpc575Adapter non exclusive 100"}
ProductHardwareName = "Elpc575"
ProductHardwareDescription = "FE575C-3COM 10/100 LAN CARDBUS-FAST ETHERNET"
NetRuleHardwareType = "Elpc575 Elpc575Adapter"
NetRuleHardwareBindForm = " yes yes container"
NetRuleHardwareClass = {"Elpc575Adapter basic"}
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName   = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
VERS1Manufacturer = "3Com"
VERS1Product = "Fast EtherLink CardBus PCCard" 
VERS1Type    = "Elpc575-FastEtherLink"
PCMCIA = 0

[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"
NT310VersionConstant = "3.10"
NT400VersionConstant = "(4.0)"
DIAGCARDTYPE  = "3C575"

[date]
 Now = {} ? $(!LIBHANDLE) GetSystemDate

[Identify]
 read-syms Identification
 set Status = STATUS_SUCCESSFUL
 set Identifier = $(OptionType)
 set Media = #("Source Media Descriptions", 1, 1)
 Return $(Status) $(Identifier) $(Media)

;[DiagRegistry]

;	OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(!REG_KEY_WRITE) SOFTKEY
;	OpenRegKey $(SOFTKEY) "" "3Com" $(!REG_KEY_WRITE) COMKEY
;	 ifstr $(COMKEY) == ""
;	 CreateRegKey $(SOFTKEY) {"3Com", 0, GenericClass} "" $(!REG_KEY_WRITE) "" COMKEY
;	 endif
	 
;	OpenRegKey $(COMKEY) "" "TNICDIAG" $(!REG_KEY_WRITE) TNICDIAGKEY
;	 ifstr $(TNICDIAGKEY) == ""
;	 CreateRegKey $(COMKEY) {"TNICDIAG", 0, GenericClass} "" $(!REG_KEY_WRITE) "" TNICDIAGKEY
;	 endif
	
;	OpenRegKey $(TNICDIAGKEY) "" "3C575" $(!REG_KEY_WRITE) 3C575KEY
;	 ifstr $(3C575) == ""
;	 CreateRegKey $(3C575KEY) {"3C575", 0, GenericClass} "" $(!REG_KEY_WRITE) "" 3C575KEY
;	 endif
	 
;	SetRegValue $(3C575KEY) {"DriverNames", 0, $(!REG_VT_SZ), "SYSTEM\EL575ND3.SYS;SYSTEM\EL575ND4.SYS"}

;	OpenRegKey $(3C575KEY) "" "Extentions" $(!REG_KEY_WRITE) ExtentionsKEY
;	 ifstr $(ExtentionsKEY) == ""
;	 CreateRegKey $(3C575KEY) {"Extentions", 0, GenericClass} "" $(!REG_KEY_WRITE) "" ExtentionsKEY
;	 endif
	 
	;OpenRegKey $(ExtentionsKEY) "" "Pace" $(!REG_KEY_WRITE) PaceKEY
	; ifstr $(PaceKEY) == ""
	; CreateRegKey $(ExtentionsKEY) {"Pace", 0, GenericClass} "" $(!REG_KEY_WRITE) "" PaceKEY
	;endif

	;SetRegValue $(PaceKEY) {"CPLName", 0, $(!REG_VT_SZ), "PACECFG.CPL"}
	 
;	 CloseRegKey $(SOFTKEY)
;	 CloseRegKey $(COMKEY)
;	 CloseRegKey $(TNICDIAGKEY)
;	 CloseRegKey $(3C575KEY)
;	 CloseRegKey $(ExtentionsKEY)
;	 CloseRegKey $(PaceKEY)
;    return

[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 Status = STATUS_FAILED
 set Option = $($1)
 set SrcDir = $($2)
 set AddCopy = $($3)
 set DoCopy = $($4)
 set DoConfig = $($5)

 Set !DebugOutputControl = 1

 set LanguageList = ^(LanguagesSupported, 1)
 Ifcontains(i) $($0) NOT-IN $(LanguageList)
 Return STATUS_NOLANGUAGE
 endif

 set-subst LF = "\n"

 read-syms GeneralConstants
	read-syms AllFileConstants
 read-syms FileConstants"-"$(Option)
 read-syms DialogConstants$(!STF_LANGUAGE)"-"$(Option)
 ifstr(i) $(!NTN_Origination) == "NCPA"
 set Continue = $(OK)
 endif

 read-syms AllFileConstants$(!STF_LANGUAGE)
 read-syms FileConstants$(!STF_LANGUAGE)"-"$(Option)

 detect date

 set-title $(FunctionTitle)

 set to = Begin
 set from = Begin
 set CommonStatus = STATUS_SUCCESSFUL

 EndWait

Begin = +

;MS 3C575B? 3C575C?
 Ifstr(i) $(Option) == elpc575a
    set T575Card = A
  else-ifstr(i) $(Option) == elpc575
    set T575Card = B
  endif


set CurrentVersionValue = ""
 OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
 Ifstr(i) $(KeyNt) != ""
 GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue
 Debug-Output "$(InfFile) $(Option): WinNT CurrentVersion ="$(CurrentVersionValue)
 CloseRegKey $(KeyNt)
 Endif

;ms;
;;  NT v4.00 has NDIS4
 ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
;ms3/1     set NDIS_DISK_A = NDIS
     set NDIS_VER    = NDIS4
     set ProductSoftwareImagePath = "\SystemRoot\System32\drivers\EL575ND4.SYS"
 else
;ms3/1     set NDIS_DISK_A = NDIS
     set NDIS_VER    = NDIS3
     set ProductSoftwareImagePath = "\SystemRoot\System32\drivers\EL575ND3.SYS"
 endif
;ms;


ifstr(i) (*($(CurrentVersionValue),4)) == $(NT310VersionConstant) 
Debug-Output "$(InfFile) $(Option): Configureadapter"
 set Error = "Windows NT v3.10 is not support by this product"
 goto fatal
 endif


 Set ActivateDetection = FALSE

 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
  set StartLabel = configureadapter
  Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
   Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
   ifint $($ShellCode) != $(!SHELL_CODE_OK)
    Debug-Output "ShellCode error: cannot get an error string."
    goto ShellCodeError
   endif
   set Error = $($R0)
   set from = end
   set to = end
   goto nonfatalinfo
  endif
 else
  set StartLabel = installadapter
  set OEM_ABANDON_OPTIONS = {}
  set OEM_ABANDON_SOFTWARE = FALSE
  set OEM_ABANDON_ON = TRUE
 endif

 
 set IRQValue 		= *($(IRQList), 5)
 set IOBaseAddrValue 	= *($(IOBaseAddrList), 1)
 set MemoryAddrValue 	= *($(MemoryAddrList), 9)
 set PolarityValue	= *($(PolarityList), 1)
 set DuplexValue	= *($(DuplexList), 1)
 set LinkValue          = *($(LinkList), 1)

 Set from = $(fatal)
 Set to = $(fatal)
 Goto $(StartLabel)


installadapter = +
 OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct

 Ifstr $(KeyProduct) != $(KeyNull)
  CloseRegKey $(KeyProduct)

  ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
   Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
 	 $(ProductVersion)
   ifint $($ShellCode) != $(!SHELL_CODE_OK)
    Debug-Output "ShellCode error: cannot get an error string."
    goto ShellCodeError
   endif

   goto end
  else
   Shell $(UtilityInf), CardExistedDlg

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
    Debug-Output "ShellCode error: cannot get an error string."
    goto ShellCodeError
   endif

   ifstr(i) $($R1) != "OK"
    goto end
   endif
   set OldVersionExisted = $(TRUE)
  endif
 endif

 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

;ms;
Set FileToCheck = $($R1)\OEMSETUP.INF
 LibraryProcedure FilePresent,$(!LIBHANDLE), CheckFileExistance $(FileToCheck)
 Ifstr(i) $(FilePresent) != "YES"
     Goto installadapter
 Endif
;ms;




 Set SrcDir = $($R1)
 install "Install-Dll"

 Debug-Output "Install-Uninstaller"
 install "Install-Uninstaller"

;ms3/1 Debug-Output "Install-tnicdiag"
;ms3/1 install "Install-tnicdiag"

 StartWait
  ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
   Debug-Output "$(InfFile) $(Option): Windows NT 4.00"
;   OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" $(!REG_KEY_ALL_ACCESS) KeyNt
;   set TrayIconList = {COMSMDEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)}
;   SetRegValue $(KeyNt) $(TrayIconList)
;   Debug-Output "Install-TraynCpl"
;   install "Install-TrayAndCpl"
;   CloseRegKey $(KeyNt)
;   RunProgram ExitCode "Windows Directory" "" COMSMD.EXE "-setup"

 
   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 PC Card Diagnostics"},+
 		      {UninstallString, $(NoTitle), $(!REG_VT_SZ), "UN3C575.EXE"}}
   Shell $(UtilityInf), AddValueList, $(KeyNt2), $(NewValueList)
   ifint $($ShellCode) != $(!SHELL_CODE_OK)
    goto ShellCodeError
   endif
   CloseRegKey $(KeyNt)
   CloseRegKey $(KeyNt2)
  endif
 EndWait


 goto adaptersetup

configureadapter = +
 Ifstr $(KeyProduct) == $(KeyNull)
 OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
 Ifstr $(KeyProduct) == $(KeyNull)
 set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
 Debug-Output "Cannot find component product key"
 goto fatalregistry
 Endif
 Endif

 Debug-Output "INF: Shelling to FindService"
 Shell $(UtilityInf) FindService, $(KeyProduct)
 Ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "INF: FindService shell failure"
 Goto ShellCodeError
 Endif
 Ifstr(i) $($R0) != NO_ERROR
 Debug-Output "INF: FindService Shell error: "$($R0)
 Goto fatalregistry
 endif

 Set KeyParameters = $($R2)

 CloseRegKey $($R1)

 Ifstr $(KeyParameters) == $(KeyNull)
 set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
 Debug-Output "Cannot find component service"
 goto fatalregistry
 endif

 set OldVersionExisted = $(TRUE)

 set ValueName = ""
 set ValueData = ""
 set ValueStr = ""
 set ValueList = {}

	
	EnumRegValue $(KeyParameters) ValueList
 ForListDo $(ValueList)
		set ValueItem = $($)
		set ValueName = *($(ValueItem),1)
		set ValueData = *($(ValueItem),4)

		ifstr(i) $(ValueName) == "IoBaseAddress"
		 set IOBaseAddrIndex = $(ValueData)
	 	else-ifstr(i) $(ValueName) == "MemoryMappedBaseAddress"
		 set MemoryAddrIndex = $(ValueData)
	 	else-ifstr(i) $(ValueName) == "InterruptNumber"
		 set IRQValueIndex = $(ValueData)
		else-ifstr(i) $(ValueName) == "AutoPolarity"
	         set PolarityValueIndex = $(ValueData)
		else-ifstr(i) $(ValueName) == "FullDuplex"
		 set DuplexValueIndex = $(ValueData)
		else-ifstr(i) $(ValueName) == "LinkSelection"
	         set LinkValueIndex = $(ValueData)
;ms	 	else-ifstr(i) $(ValueName) == "SocketNumber"
;ms		 set SocketIndex = $(ValueData)
		endif
 EndForListDo

 set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
 ifstr(i) $(IRQValue) == ""
		set IRQValue = *($(IRQList), 2)
 endif

 set MemoryAddrValue = *($(MemoryAddrList), ~($(MemoryAddrValues),$(MemoryAddrIndex)))
 ifstr(i) $(MemoryAddrValue) == ""
		set MemoryAddrValue = *($(MemoryAddrValues), 21)
 endif

 set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
 ifstr(i) $(IOBaseAddrValue) == ""
		set IOBaseAddrValue = *($(IOBaseAddrList), 1)
 endif

 set PolarityValue = *($(PolarityList), ~($(PolarityValues),$(PolarityValueIndex)))
 ifstr(i) $(PolarityValue) == ""
        set PolarityValue = *($(PolarityList), 1)
 endif

 set DuplexValue = *($(DuplexList), ~($(DuplexValues),$(DuplexValueIndex)))
	ifstr(i) $(DuplexValue) == ""
		set DuplexValue = *($(DuplexList), 1)
 endif

 set LinkValue = *($(LinkList), ~($(LinkValues),$(LinkValueIndex)))
 ifstr(i) $(LinkValue) == ""
        set LinkValue = *($(LinkList), 1)
 endif

;ms set SocketValue = *($(SocketList), ~($(SocketValues),$(SocketIndex)))
;ms ifstr(i) $(SocketValue) == ""
;ms	set SocketValue = *($(SocketValues), 0)
;ms endif


adaptersetup = +
;--------------------------------------------------------------------------
; 11/11/98 added for Unattended Setup by IF
;--------------------------------------------------------------------------
      ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
		ifstr(i) $(!AutoNetInterfaceType) != ""
            set BusInterfaceType = $(!AutoNetInterfaceType)
        else
            set BusInterfaceType = 1    
        endif
        ifstr(i) $(!AutoNetBusNumber) != ""
            set BusNumber = $(!AutoNetBusNumber)
        else
            set BusNumber = 0
        endif
            goto skipoptions
    endif
;--------------------------------------------------------------------------


 LoadLibrary "disk 1" $(DialogDllName) hLib
 read-syms FileDependentDlg$(!STF_LANGUAGE)"-"$(Option)
	set ENABLER = 0


 ui start "InputDlg" $(hLib)

 set ExitButton = $(ButtonPressed)
	FreeLibrary $(hLib)

	ifstr(i) $(DLGEVENT) == "CONTINUE"

	set IOBaseAddrIndex		= $(Combo1Out)
 	set MemoryAddrIndex		= $(Combo2Out)
	set IRQValueIndex		= $(Combo3Out)
	ifstr(i) $(T575Card) == "A"
	set PolarityValueIndex		= $(Combo4Out)
	set DuplexValueIndex 		= $(Combo5Out)	
	else
        set LinkValueIndex              = $(Combo4Out)
	endif

;ms 	set SocketIndex			= $(Combo7Out)
 	set ExitButton			= $(ButtonPressed)

		ui pop 1

	else-ifstr(i) $(DLGEVENT) == "EXIT"
		set CommonStatus = STATUS_USERCANCEL
		ui pop 1
		goto end
 	else
		set CommonStatus = STATUS_USERCANCEL
		ui pop 1
		Debug-Output "Action: unknown. Bye."
		goto end
 	endif


skipoptions =+

 ifint $(OldVersionExisted) == $(TRUE)
 ifstr(i) $(!NTN_InstallMode) == configure
 goto writeparameters
 endif
 endif
 StartWait
 ifint $(OldVersionExisted) == $(FALSE)

 ifstr(i) $(!NTN_InstallMode) == "install"
 Ifstr(i) $(DoCopy) == "YES"

 Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES

 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



 Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
 $(ProductSoftwareName), +
 $(ProductSoftwareName), +
 $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
 $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
 $(NetEventDLL)

 Set OEM_ABANDON_SOFTWARE = TRUE

 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error"
 goto ShellCodeError
 endif
 set RegistryErrorIndex = $($R0)
 set KeyProduct = $($R1)
 Set SoftNetRulesKey = $($R2)
 CloseRegKey $($R3)
 CloseRegKey $($R4)
 CloseRegKey $($R5)

 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 EndWait
 Debug-Output "Registry error: add software components"
 CloseRegKey $(KeyProduct)
 CloseRegKey $(SoftNetRulesKey)
 goto fatalregistry
 endif

 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, $(KeyProduct), $(NewValueList)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error."
 goto ShellCodeError
 endif

 set RegistryErrorIndex = $($R0)

 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 EndWait
 Debug-Output "Registry error: add value list."
 CloseRegKey $(KeyProduct)
 CloseRegKey $(SoftNetRulesKey)
 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, $(SoftNetRulesKey), $(NewValueList)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error."
 goto ShellCodeError
 endif

 set RegistryErrorIndex = $($R0)

 CloseRegKey $(KeyProduct)
 CloseRegKey $(SoftNetRulesKey)

 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 EndWait
 Debug-Output "Resgitry error: add value list."
 goto fatalregistry
 endif
 endif

 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)
 Debug-Output "Cannot add hardware component"
 goto ShellCodeError
 endif

 set RegistryErrorIndex = $($R0)

 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 EndWait
 Debug-Output "Registry error: add hardware component"
 CloseRegKey $($R1)
 CloseRegKey $($R2)
 CloseRegKey $($R3)
 goto fatalregistry
 endif

 set KeyParameters = $($R3)
 set KeyAdapterRules = $($R2)
 set AdapterNumber = $($R4)

 set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
 {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
 {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
 {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
 {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
 {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}

 Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error"
 goto ShellCodeError
 endif

 CloseRegKey $($R1)

 set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
 set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)

 set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
 {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
 {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
 {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}

 Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error."
 goto ShellCodeError
 endif

 set RegistryErrorIndex = $($R0)

 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 EndWait
 Debug-Output "Resgitry error: add value list."
 CloseRegKey $(KeyParameters)
 CloseRegKey $(KeyAdapterRules)
 goto fatalregistry
 endif

 CloseRegKey $(KeyAdapterRules)

 goto writeparameters

writeparameters = +
 

set BusTypeNum = 1 
ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error."
 goto ShellCodeError
 endif

ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
 set IRQValue 		= *($(IRQList), 5)
 set IOBaseAddrValue 	= *($(IOBaseAddrList), 1)
 set MemoryAddrValue 	= *($(MemoryAddrList), 9)
 set PolarityValue	= *($(PolarityList),1)
 set DuplexValue	= *($(DuplexList), 1)
 set LinkValue          = *($(LinkList), 1)
else
 set IRQValue 		= *($(IRQValues),~($(IRQList), $(IRQValueIndex)))
 set IOBaseAddrValue 	= *($(IOBaseAddrValues),~($(IOBaseAddrList), $(IOBaseAddrIndex)))
 set MemoryAddrValue 	= *($(MemoryAddrValues),~($(MemoryAddrList), $(MemoryAddrIndex)))
 set PolarityValue      = *($(PolarityValues), ~($(PolarityList), $(PolarityValueIndex)))
 set DuplexValue	= *($(DuplexValues), ~($(DuplexList), $(DuplexValueIndex)))
 set LinkValue          = *($(LinkValues), ~($(LinkList), $(LinkValueIndex)))
endif

 set NewValueList = {{IoBaseAddress,		$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
 	{IoLength, 			$(NoTitle),$(!REG_VT_DWORD), 127},+
 	{MemoryMappedBaseAddress,	$(NoTitle),$(!REG_VT_DWORD),$(MemoryAddrValue)},+
 	{MemoryMappedSize,		$(NoTitle),$(!REG_VT_DWORD),4096},+
 	{InterruptNumber,			$(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
	{AutoPolarity,	  		$(NoTitle),$(!REG_VT_DWORD),$(PolarityValue)},+
	{FullDuplex,		       	$(NoTitle),$(!REG_VT_DWORD),$(DuplexValue)},+
	{UpPollEnable,		       	$(NoTitle),$(!REG_VT_DWORD),0},+
	{DnPollEnable,		       	$(NoTitle),$(!REG_VT_DWORD),1},+
        	{LinkSelection,      			$(NoTitle),$(!REG_VT_DWORD),$(LinkValue)},+
	{MediaType, 			$(NoTitle),$(!REG_VT_DWORD),1},+
	{BusType, 			$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
	{BusNumber, 			$(NoTitle),$(!REG_VT_DWORD),0},+
;ms	{SocketNumber, 		 	$(NoTitle),$(!REG_VT_DWORD),$(SocketValue)},+
	{TransmitBufferSize, 		$(NoTitle),$(!REG_VT_DWORD),7168},+
	{AdapterType,			$(NoTitle),$(!REG_VT_DWORD),0},+
	{DriverMode,			$(NoTitle),$(!REG_VT_DWORD),1},+
	{OSType,				$(NoTitle),$(!REG_VT_DWORD),1},+
	{PCMCIA, 			$(NoTitle),$(!REG_VT_DWORD),0}}		


 Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
 ;------------------------------------------------------------------------
; 11/11/98 added for Unattended Setup by IF 
;------------------------------------------------------------------------
   ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
        Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters)
   endif
;------------------------------------------------------------------------
 CloseRegKey $(KeyParameters)

	
	ifint $(DISABLEPCMCIASYS) == 1
		set PCMCIAKeyName = $(!NTN_ServiceBase)"\Pcmcia"
 	OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIAKeyName) $(MAXIMUM_ALLOWED) PCMCIAKey
		SetRegValue $(PCMCIAKey) {Start, 0, $(!REG_VT_DWORD),4} 
	CloseRegKey $(PCMCIAKey)
	endif
	

 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error."
 goto ShellCodeError
 endif

 set RegistryErrorIndex = $($R0)

 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 Debug-Output "Registry error: Add value list"
 goto fatalregistry
 endif

;For SystemSoft Support 3/25/99----------------------------------------------------------------------------
set PcmciaKeyName = $(!NTN_ServiceBase)"\Pcmcia\Database\3Com Corporation"
OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaKeyName) $(MAXIMUM_ALLOWED) SSHandle
Ifstr $(SSHandle) == $(KeyNull)
	OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Pcmcia\Database" $(MAXIMUM_ALLOWED) SSKey
	CreateRegKey $(SSKey) {"3Com Corporation",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" SSHandle
	CloseRegKey $(SSKey)
endif
CloseRegKey $(SSHandle)

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Pcmcia\Database\3Com Corporation\3CCFE575BT" $(MAXIMUM_ALLOWED) SSHandle
Ifstr $(SSHandle) == $(KeyNull)
 OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Pcmcia\Database\3Com Corporation" $(MAXIMUM_ALLOWED) SSKey
 CreateRegKey $(SSKey) {"3CCFE575BT",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" SSHandle
 CloseRegKey $(SSKey)
endif

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Pcmcia\Database\3Com Corporation\3CCFE575CT" $(MAXIMUM_ALLOWED) SSHandle
Ifstr $(SSHandle) == $(KeyNull)
 OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Pcmcia\Database\3Com Corporation" $(MAXIMUM_ALLOWED) SSKey
 CreateRegKey $(SSKey) {"3CCFE575CT",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" SSHandle
 CloseRegKey $(SSKey)
endif


OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Pcmcia\Database\3Com Corporation\3CCFE575BT" $(MAXIMUM_ALLOWED) SSHandle
set NewValueList = {{Driver,$(NoTitle),$(!REG_VT_SZ),"ELPC575"},+
		   {DeviceType,$(NoTitle),$(!REG_VT_SZ),"NET"}}
Shell $(UtilityInf), AddValueList, $(SSHandle), $(NewValueList)
CloseRegKey $(SSHandle)

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Pcmcia\Database\3Com Corporation\3CCFE575CT" $(MAXIMUM_ALLOWED) SSHandle
set NewValueList = {{Driver,$(NoTitle),$(!REG_VT_SZ),"ELPC575"},+
		   {DeviceType,$(NoTitle),$(!REG_VT_SZ),"NET"}}
Shell $(UtilityInf), AddValueList, $(SSHandle), $(NewValueList)
CloseRegKey $(SSHandle)
;For SystemSoft Support 3/25/99----------------------------------------------------------------------------




        ;;************Start Uninstaller section*************************************************************;*
;ms3/1        install "Install-Uninstaller"                                                                       ;*
                                                                                                            ;*
                                                                                                            ;*
        ;; Set the keys in the registry nessisary for uninstallation                                        ;*
;        OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProductSoftwareName) $(!REG_KEY_ALL_ACCESS) KeyNt   ;*
                                                                                                            ;*
;        set TrayIconList = {TNICDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)}                              ;*
;        SetRegValue $(KeyNt) $(TrayIconList)                                                                ;*
;        CloseRegKey $(KeyNt)                                                                                ;*
                                                                                                            ;*
		

		;set NT key in registry so driver knows what operating system it is                               ;*
;		OpenRegKey $(!REG_H_LOCAL) "" $(ServiceKeyName) $(!REG_KEY_ALL_ACCESS) KeyNt                      ;*
		                                                                                                  ;*
;		set LoopList = {1,2,3,4,5,6,7,8}                                                                  ;*
;		set WinNTList = {WinNT,$(NoTitle),$(!REG_VT_SZ),YES}                                              ;*
		                                                                                                  ;*
;		ForListDo $(LoopList)                                                                             ;*
;		    OpenRegKey $(KeyNt) "" $(ProductHardwareName)$($)"\Parameters" $(!REG_KEY_ALL_ACCESS) TestKey ;*	
		                                                                                                  ;*
;		    ifstr $(TestKey) != $(KeyNull)                                                                ;*
;			SetRegValue $(TestKey) $(WinNTList)                                                       ;*
;		    endif                                                                                         ;*
		                                                                                                  ;*
;		    CloseRegKey $(TestKey)                                                                        ;*
;		EndForListDo                                                                                      ;*
		                                                                                                  ;*
;		CloseRegKey $(KeyNt)                                                                              ;*
		;end set NT key section                                                                           ;*
        ;;************Stop Uninstaller section**************************************************************;*




 EndWait

 goto successful


bindingadapter =+
 set Error = "Binding: Sorry, not yet implemented."
 goto fatal


removeadapter = +
 Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
 
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
 $(ProductSoftwareName)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error"
 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)
 Debug-Output "ShellCode error"
 goto ShellCodeError
 endif

 set RegistryErrorIndex = $($R0)

 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 goto fatalregistry
 endif


 endif

	
	ifint $(DISABLEPCMCIASYS) == 1
		set PCMCIAKeyName = $(!NTN_ServiceBase)"\Pcmcia"
 	OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIAKeyName) $(MAXIMUM_ALLOWED) PCMCIAKey
		SetRegValue $(PCMCIAKey) {Start, 0, $(!REG_VT_DWORD),0} 
	CloseRegKey $(PCMCIAKey)
	endif
;ms3/1+ 	ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
;		Debug-Output "$(InfFile) $(Option): Windows NT 4.00 remove icon"
; 		OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" $(!REG_KEY_ALL_ACCESS) KeyNt
; 		set TrayIconList = COMSMDEXE
; 		DeleteRegValue $(KeyNt) $(TrayIconList)
; 		CloseRegKey $(KeyNt)
;ms3/1- 	endif
	RunProgram ExitCode "Windows Directory" "" UN3C575.EXE "-inf" 

goto end


UpgradeSoftware = +

 set !UG_Filename = $($R0)

 ifstr(i) $(!UG_Filename) != ""
 install "Install-Update"
 ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
 goto fatal
 endif
 endif

;ms++
 Debug-Output "$(InfFile):*** UpdateSoftware ***" 

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 

 Debug-Output "$(InfFile):*** UpdateSoftware ***1" 

OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(!REG_KEY_ALL_ACCESS) KeyProduct 
Ifstr $(KeyProduct) != "" 
Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct) 
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
Debug-Output "ShellCode error" 
goto ShellCodeError 
endif 

 Debug-Output "$(InfFile):*** UpdateSoftware ***2" 

set !UG_Filename = $($R0) 
install "Install-INF" 
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS 
goto fatal 
endif 

 Debug-Output "$(InfFile):*** UpdateSoftware ***3" 

install "Install-DLL" 
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS 
goto fatal 
endif 

 Debug-Output "$(InfFile):*** UpdateSoftware ***4" 
;ms--

 ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
 OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct

 Ifstr $(KeyProduct) != $(KeyNull)
 GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
 set Version = *($(VersionInfo), 4)

 Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)

 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error"
 goto ShellCodeError
 endif


 SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
 SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}

 ifint $(Version) != $(ProductVersion)
 endif
 CloseRegKey $(KeyProduct)
 else
 goto fatalregistry
 endif
 else
 OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
 $(MAXIMUM_ALLOWED) NetworkCardKey
 Ifstr(i) $(NetworkCardKey) != $(KeyNull)
 GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
 set ServiceName = *($(ServiceNameInfo), 4)

 OpenRegKey $(NetworkCardKey) "" "NetRules" +
 $(MAXIMUM_ALLOWED) NetRuleKey
 Ifstr(i) $(NetRuleKey) != $(KeyNull)
 else
 goto fatalregistry
 endif

 CloseRegKey $(NetRules)
 CloseRegKey $(NetworkCardKey)
 else
 goto fatalregistry
 endif
 OpenRegKey $(!REG_H_LOCAL) "" +
 $(!NTN_ServiceBase)"\"$(ServiceName) +
 $(MAXIMUM_ALLOWED) ServiceKey

 Ifstr(i) $(ServiceKey) != $(KeyNull)
 CloseRegKey $(ServiceKey)
 else
 goto fatalregistry
 endif
 endif

 goto end

successful = +
 goto end

abandon = +
 ForListDo $(OEM_ABANDON_OPTIONS)
 Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
 $(ProductSoftwareName), $($)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error"
 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)
 Debug-Output "ShellCode error"
 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 Severity = STATUS
 Set CommonStatus = STATUS_USERCANCEL
 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 "end"
 endif

fatalregistry = +
 Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 goto ShellCodeError
 endif
 set Error = $($R0)
 goto fatal
fataldetect = +
 Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error: cannot get an error string."
 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 = +
 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)


[DebugConfiguration]
 Set InfName = "OEMSETUP.INF"
return


[Install-Option]
 set STF_VITAL = ""

 ifstr(i) $(AddCopy) == "YES"
  ;AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  AddSectionFilesToCopyList Files-$(NDIS_VER) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
 endif

 ifstr(i) $(DoCopy) == "YES"
 set !STF_NCPA_FLUSH_COPYLIST = TRUE
 CopyFilesInCopyList
 endif

 Exit


[Install-Update]
 set STF_VITAL = ""
 set STF_OVERWRITE = "VERIFYSOURSEOLDER"

 AddSectionFilesToCopyList Files-tnicdiag $(SrcDir) $(!STF_WINDOWSSYSPATH)
;ms3/1 AddSectionFilesToCopyList Files-HwDll $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
; AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
;ms3/1 AddSectionFilesToCopyList Files-$(NDIS_VER) $(SrcDir)$(NDIS_DISK_A) $(!STF_WINDOWSSYSPATH)\drivers
 AddSectionFilesToCopyList Files-$(NDIS_VER) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
 AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!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

[Install-Dll]
 set STF_VITAL 	= ""
 AddSectionFilesToCopyList Files-Dll$(T575Card) $(SrcDir) $(!STF_WINDOWSSYSPATH)
;ms5/12/99 AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
 set !STF_NCPA_FLUSH_COPYLIST = TRUE
 CopyFilesInCopyList
 exit

;[Install-tnicdiag]
; set STF_VITAL = ""
; AddSectionFilesToCopyList Files-tnicdiag $(SrcDir) $(!STF_WINDOWSSYSPATH)
; AddSectionFilesToCopyList Files-HwDll $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
; set !STF_NCPA_FLUSH_COPYLIST = TRUE
; CopyFilesInCopyList
; Exit

;[Install-TrayAndCpl]
; set STF_VITAL = ""
; AddSectionFilesToCopyList Files-TrayAndCpl $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
; set !STF_NCPA_FLUSH_COPYLIST = TRUE
; CopyFilesInCopyList
; Exit


[Install-Uninstaller]
   set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
   set STF_VITAL = ""
   AddSectionFilesToCopyList Files-Uninstaller $(SrcDir) $(!STF_WINDOWSSYSPATH)
   set !STF_NCPA_FLUSH_COPYLIST = TRUE
   CopyFilesInCopyList
   Exit



[Source Media Descriptions]
 1 = "Windows NT Setup Disk #1"
 2 = "3Com Megahertz 10/100 LAN CardBus PC Card Setup Disk"


[ProductType]
STF_PRODUCT = Winnt
STF_PLATFORM = I386


[Files-Inf]
2, OEMSETUP.INF, SIZE=58000,	RENAME=$(!UG_Filename)

[Files-Dlla]
2, Elpc575a.DLL, SIZE=21000

[Files-Dllb]
2, Elpc575.DLL, SIZE=21000

;[Files-tnicdiag]
;2,un3c575.exe, SIZE=100000

[Files-Uninstaller]
2,UN3C575.EXE, SIZE=100000


;[Files-HwDll]
;2,hwaccess.dll, SIZE=20198
;2,pcomdrv.sys, SIZE=5000
;2,tc575cfg.dll, SIZE=59458

;[Files-TrayAndCpl]
;2,comsmd.exe, SIZE=8957

[Files-NDIS4]
2,EL575ND4.SYS , SIZE=60000

[Files-NDIS3]
2,EL575ND3.SYS , SIZE=60000

[LanguagesSupported]
 ENG

[AllFileConstantsENG]
ProCaption = "Windows NT 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"
;ms 1/8/99 DialogDllName = "Elpc575.DLL"

[FileConstantsENG-Elpc575a]
DialogDllName 		= "Elpc575a.DLL"
FunctionTitle 		= $(GenericAdapterName)" Setup"$(GenericInfVersion)
ProductSoftwareTitle	= $(GenericDriverName)
ProductHardwareTitle	= $(GenericAdapterName)
IRQList 		= ^(IRQChoices, 1)
IRQValues 		= ^(IRQChoices, 2)
InterruptStyleValues	= ^(InterruptStyleChoices, 2)
IOBaseAddrList 		= ^(IOBaseAddrChoices, 1)
IOBaseAddrValues 	= ^(IOBaseAddrChoices, 2)
MemoryAddrList 		= ^(MemoryAddrChoices,1)
MemoryAddrValues 	= ^(MemoryAddrChoices,2)
PolarityList        	= ^(PolarityChoices, 1)
PolarityValues      	= ^(PolarityChoices, 2)
DuplexList		= ^(DuplexChoices, 1)
DuplexValues		= ^(DuplexChoices, 2)


[FileConstantsENG-Elpc575]
DialogDllName 		= "Elpc575.DLL"
FunctionTitle 		= $(GenericAdapterName)" Setup"$(GenericInfVersion)
ProductSoftwareTitle	= $(GenericDriverName)
ProductHardwareTitle	= $(GenericAdapterName)
IRQList 		= ^(IRQChoices, 1)
IRQValues 		= ^(IRQChoices, 2)
InterruptStyleValues	= ^(InterruptStyleChoices, 2)
IOBaseAddrList 		= ^(IOBaseAddrChoices, 1)
IOBaseAddrValues 	= ^(IOBaseAddrChoices, 2)
MemoryAddrList 		= ^(MemoryAddrChoices,1)
MemoryAddrValues 	= ^(MemoryAddrChoices,2)
LinkList                = ^(LinkChoices, 1)
LinkValues              = ^(LinkChoices, 2)

[DialogConstantsENG-Elpc575a]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"


[DialogConstantsENG-Elpc575]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"

[FileDependentDlgENG-Elpc575a]
DlgType = "RadioCombination"
DlgTemplate = "Elpc575a"
Caption = $(FunctionTitle)
HelpContext = $(!IDH_DB_OEMNADE2_INS)
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO}
Combo1Label = "I/O Port"
Combo2Label = "Memory Address"
Combo3Label = "Interrupt"
Combo4Label = "Auto Polarity"
Combo5Label = "Duplex Mode"

Combo1List = $(IOBaseAddrList)
Combo1Out = $(IOBaseAddrValue)
Combo2List = $(MemoryAddrList)
Combo2Out = $(MemoryAddrValue)
Combo3List = $(IRQList)
Combo3Out = $(IRQValue)
Combo4List = $(PolarityList)
Combo4Out = $(PolarityValue)
Combo5List = $(DuplexList)
Combo5Out  = $(DuplexValue)
ComboListItemsIn = {Combo1List,Combo2List,Combo3List, Combo4List, Combo5List} 
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out}

EditTextIn = {"",""}
EditTextLim = {"",""}

[PolarityChoices]
Polarity_1 = "Enabled",  0
Polarity_2 = "Disabled", 32

[DuplexChoices]
DUP_1 = "Auto Sense", 0
DUP_2 = "Full Duplex", 1

[MemoryAddrChoices]
MA_1  = "0xC8000", 819200
MA_2  = "0xC9000", 823296
MA_3  = "0xCA000", 827392
MA_4  = "0xCB000", 831488
MA_5  = "0xCC000", 835584
MA_6  = "0xCD000", 839680
MA_7  = "0xCE000", 843776
MA_8  = "0xCF000", 847872
MA_9  = "0xD0000", 851968
MA_10 = "0xD1000", 856064
MA_11 = "0xD2000", 860160
MA_12 = "0xD3000", 864256
MA_13 = "0xD4000", 868352
MA_14 = "0xD5000", 872448
MA_15 = "0xD6000", 876544
MA_16 = "0xD7000", 880640
MA_17 = "0xD8000", 884736
MA_18 = "0xD9000", 888832
MA_19 = "0xDA000", 892928
MA_20 = "0xDB000", 897024
MA_21 = "0xDC000", 901120
MA_22 = "0xDD000", 905216
MA_23 = "0xDE000", 909312

[IRQChoices]
IRQ_1 = "3",3
IRQ_2 = "4",4
IRQ_3 = "5",5
IRQ_4 = "7",7
IRQ_5 = "9",9
IRQ_6 = "10",10
IRQ_7 = "11",11
IRQ_8 = "15",15

[IOBaseAddrChoices]
IOBase_1  = "0x1000",4096
IOBase_2  = "0x1100",4352
IOBase_3  = "0x1200",4608
IOBase_4  = "0x1300",4864
IOBase_5  = "0x1400",5120
IOBase_6  = "0x1500",5376
IOBase_7  = "0x1600",5632
IOBase_8  = "0x1700",5888
IOBase_9  = "0x2000",8192
IOBase_10 = "0x2100",8448
IOBase_11 = "0x2200",8704
IOBase_12 = "0x2300",8960
IOBase_13 = "0x2400",9216
IOBase_14 = "0x2500",9472
IOBase_15 = "0x2600",9728
IOBase_16 = "0x2700",9984
IOBase_17 = "0x3000",12288
IOBase_18 = "0x3100",12544
IOBase_19 = "0x3200",12800
IOBase_20 = "0x3300",13056
IOBase_21 = "0x3400",13312
IOBase_22 = "0x3500",13568
IOBase_23 = "0x3600",13824
IOBase_24 = "0x3700",14080
IOBase_25 = "0x3800",14336
IOBase_26 = "0x3900",14592
IOBase_27 = "0x3A00",14848
IOBase_28 = "0x3B00",15104
IOBase_29 = "0x3C00",15360
IOBase_30 = "0x3D00",15616
IOBase_31 = "0x3E00",15872
IOBase_32 = "0x3F00",16128


[FileDependentDlgENG-Elpc575]
DlgType = "RadioCombination"
DlgTemplate = "Elpc575"
Caption = $(FunctionTitle)
HelpContext = $(!IDH_DB_OEMNADE2_INS)
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO}
Combo1Label = "I/O Port"
Combo2Label = "Memory Address"
Combo3Label = "Interrupt"
Combo4Label = "Network Link Selection"


Combo1List = $(IOBaseAddrList)
Combo1Out = $(IOBaseAddrValue)
Combo2List = $(MemoryAddrList)
Combo2Out = $(MemoryAddrValue)
Combo3List = $(IRQList)
Combo3Out = $(IRQValue)
Combo4List = $(LinkList)
Combo4Out = $(LinkValue)


ComboListItemsIn = {Combo1List,Combo2List,Combo3List, Combo4List} 
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}

EditTextIn = {"",""}
EditTextLim = {"",""}

[LinkChoices]
Link_1 = "Auto Negotiation",512
Link_2 = "100BTX Full Duplex",256
Link_3 = "100BTX Half Duplex",128
Link_4 = "10BT Full Duplex",64
Link_5 = "10BT Half Duplex",32

[MemoryAddrChoices]
MA_1  = "0xC8000", 819200
MA_2  = "0xC9000", 823296
MA_3  = "0xCA000", 827392
MA_4  = "0xCB000", 831488
MA_5  = "0xCC000", 835584
MA_6  = "0xCD000", 839680
MA_7  = "0xCE000", 843776
MA_8  = "0xCF000", 847872
MA_9  = "0xD0000", 851968
MA_10 = "0xD1000", 856064
MA_11 = "0xD2000", 860160
MA_12 = "0xD3000", 864256
MA_13 = "0xD4000", 868352
MA_14 = "0xD5000", 872448
MA_15 = "0xD6000", 876544
MA_16 = "0xD7000", 880640
MA_17 = "0xD8000", 884736
MA_18 = "0xD9000", 888832
MA_19 = "0xDA000", 892928
MA_20 = "0xDB000", 897024
MA_21 = "0xDC000", 901120
MA_22 = "0xDD000", 905216
MA_23 = "0xDE000", 909312

[IRQChoices]
IRQ_1 = "3",3
IRQ_2 = "4",4
IRQ_3 = "5",5
IRQ_4 = "7",7
IRQ_5 = "9",9
IRQ_6 = "10",10
IRQ_7 = "11",11
IRQ_8 = "15",15

[IOBaseAddrChoices]
IOBase_1  = "0x1000",4096
IOBase_2  = "0x1100",4352
IOBase_3  = "0x1200",4608
IOBase_4  = "0x1300",4864
IOBase_5  = "0x1400",5120
IOBase_6  = "0x1500",5376
IOBase_7  = "0x1600",5632
IOBase_8  = "0x1700",5888
IOBase_9  = "0x2000",8192
IOBase_10 = "0x2100",8448
IOBase_11 = "0x2200",8704
IOBase_12 = "0x2300",8960
IOBase_13 = "0x2400",9216
IOBase_14 = "0x2500",9472
IOBase_15 = "0x2600",9728
IOBase_16 = "0x2700",9984
IOBase_17 = "0x3000",12288
IOBase_18 = "0x3100",12544
IOBase_19 = "0x3200",12800
IOBase_20 = "0x3300",13056
IOBase_21 = "0x3400",13312
IOBase_22 = "0x3500",13568
IOBase_23 = "0x3600",13824
IOBase_24 = "0x3700",14080
IOBase_25 = "0x3800",14336
IOBase_26 = "0x3900",14592
IOBase_27 = "0x3A00",14848
IOBase_28 = "0x3B00",15104
IOBase_29 = "0x3C00",15360
IOBase_30 = "0x3D00",15616
IOBase_31 = "0x3E00",15872
IOBase_32 = "0x3F00",16128

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: ftp, load: 1.55