OEMSETUP.INF Driver File Contents (7508377.exe)

;=============================================================================
; OEMSETNT.INF
;
; 3Com Megahertz 10/100 LAN CardBus PC Card Windows NT Setup File
;
; Copyright 1997 3Com Corporation
;=============================================================================
; Revision History
;
; %VER v1.0
;
; %VER v2.0   12/19/97 Release for 3C656 EtherDisk NDIS3/4 Driver Installation
;=============================================================================

[Identification]
 OptionType = NetAdapter

[PlatformsSupported]
 ;ISA
 ;EISA
 ;MCA
 PCI
 ;PCMCIA
 ;"Jazz-Internal Bus"

[Options]
 Elpc656

[OptionsTextENG]
 Elpc656 = "3Com 10-100 LAN + 56K Modem CardBus PC Card (Ethernet)"
					    
[AllFileConstants]
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 = "un3c656"
UnInstallName = "3Com PC Card Diagnostics Utilities"
Manufacturer = "3Com"
; TomS
DISABLEPCMCIASYS = "0"
;DISABLEPCMCIASYS = "1"



[FileConstants-Elpc656]
GenericAdapterName = "3Com 10-100 LAN + 56K Modem CardBus PC Card (Ethernet)"
GenericDriverName  = "3Com 10-100 LAN + 56K Modem CardBus PC Card (Ethernet)"
;ms; GenericSysName = "Elpc656.sys"
GenericName = "Elpc656"
ProductMajorVersion = "2"
ProductMinorVersion = "0"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
ProductSoftwareName = "Elpc656"
ProductSoftwareDescription = "3Com 10-100 LAN + 56K Modem CardBus PC Card (Ethernet)"
;ms; ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
NetRuleSoftwareType = "Elpc656Sys ndisDriver Elpc656Driver"
NetRuleSoftwareUse = $(SoftwareType)
NetRuleSoftwareBindForm = """Elpc656Sys"" yes no container"
NetRuleSoftwareClass = {"Elpc656Driver basic"}
NetRuleSoftwareBindable = {"Elpc656Driver Elpc656Adapter non exclusive 100"}
ProductHardwareName = "Elpc656"
ProductHardwareDescription = "3Com 10-100 LAN + 56K Modem CardBus PC Card (Ethernet)"
NetRuleHardwareType = "Elpc656 Elpc656Adapter"
NetRuleHardwareBindForm = " yes yes container"
NetRuleHardwareClass = {"Elpc656Adapter basic"}
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
VERS1Manufacturer = "3Com"
VERS1Product = "Fast EtherLink XL PC Card" 
VERS1Type    = "Elpc656-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)"


[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)


[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 = +

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)
     set NDIS_DISK_A = ""
     set NDIS_VER    = NDIS4
     set ProductSoftwareImagePath = "\SystemRoot\System32\drivers\EL656ND7.SYS"
 else
     set NDIS_DISK_A = ""
     set NDIS_VER    = NDIS3
     set ProductSoftwareImagePath = "\SystemRoot\System32\drivers\EL656ND3.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), 1)        ; Milton -- changed from 5
 set IOBaseAddrValue    = *($(IOBaseAddrList), 1)
 set MemoryAddrValue    = *($(MemoryAddrList), 1)  ; Milton -- changed from 9
 set DuplexModeValue    = *($(DuplexModeList), 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-tnicdiag"
 install "Install-tnicdiag"

 StartWait
  ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
   Debug-Output "$(InfFile) $(Option): Windows NT 4.00"

   ; TomS
   ;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"
   ; TomS

   ; TomS
   ;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), "UN3C656.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) == "DuplexMode"
		 set DuplexModeIndex = $(ValueData)
		else-ifstr(i) $(ValueName) == "SocketNumber"
		 set SocketNumberIndex = $(ValueData)
		else-ifstr(i) $(ValueName) == "InterruptNumber"
		 set IRQValueIndex = $(ValueData)
		; TomS
		else-ifstr(i) $(ValueName) == "AdapterName"
		 set OldAdapterName = $(ValueData)
		;TomS
		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 DuplexModeValue = *($(DuplexModeList), ~($(DuplexModeValues),$(DuplexModeIndex)))
	ifstr(i) $(DuplexModeValue) == ""
		set DuplexModeValue = *($(DuplexModeList), 1)
 endif


adaptersetup = +



 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)
	set DuplexModeIndex                 = $(Combo4Out)
	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

; TomS
;set MemoryAddrValue = 0
set MemoryAddrValue   = *($(MemoryAddrValues),~($(MemoryAddrList), $(MemoryAddrIndex)))
; TomS                                            
 set IRQValue           = *($(IRQValues),~($(IRQList), $(IRQValueIndex)))
 set IOBaseAddrValue    = *($(IOBaseAddrValues),~($(IOBaseAddrList), $(IOBaseAddrIndex)))
 set DuplexModeValue        = *($(DuplexModeValues),    ~($(DuplexModeList), $(DuplexModeIndex)))

; TomS
ifstr $(OldAdapterName) == ""
   set OldAdapterName = $(ProductHardwareName)$(AdpaterNumber)
endif
   
; TomsS
 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)},+
	{MediaType,                $(NoTitle),$(!REG_VT_DWORD),1},+
	{BusType,                  $(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
	{BusNumber,                $(NoTitle),$(!REG_VT_DWORD),0},+
	{DuplexMode,               $(NoTitle),$(!REG_VT_DWORD),$(DuplexModeValue)},+
	{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},+
	; TomS
	; {PCMCIA,                 $(NoTitle),$(!REG_VT_DWORD),0}}
	{AdapterName,              $(NoTitle),$(!REG_VT_SZ),$(OldAdapterName)$(AdapterNumber)},+
	{SoftexPcmcia,             $(NoTitle),$(!REG_VT_DWORD),1}} 
	; TomS
 Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
 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

 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
	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)
	endif
	RunProgram ExitCode "Windows Directory" "" UN3C656.EXE "-inf" 

goto end


UpgradeSoftware = +
 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

 set !UG_Filename = $($R0)

 ifstr(i) $(!UG_Filename) != ""
 install "Install-Update"
 ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
 goto fatal
 endif
 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)$(NDIS_DISK_A) $(!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"

;TomS
 AddSectionFilesToCopyList Files-tnicdiag $(SrcDir) $(!STF_WINDOWSSYSPATH)
; AddSectionFilesToCopyList Files-HwDll $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
; TomS
;;?? AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
 AddSectionFilesToCopyList Files-$(NDIS_VER) $(SrcDir)$(NDIS_DISK_A) $(!STF_WINDOWSSYSPATH)\drivers
 AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)

 set !STF_NCPA_FLUSH_COPYLIST = TRUE
 CopyFilesInCopyList

 exit



[Install-Dll]
 set STF_VITAL  = ""
 AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
 set !STF_NCPA_FLUSH_COPYLIST = TRUE
 CopyFilesInCopyList
 exit

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

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




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


[ProductType]
STF_PRODUCT = Winnt
STF_PLATFORM = I386


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

[Files-Dll]
2, Elpc656.DLL, SIZE=21000

[Files-tnicdiag]
;2,tnicdiag.exe, SIZE=165504
;2,tnicdiag.hlp, SIZE=20877
;2,tvaraddr.txt, SIZE=113
2,un3c656.exe, SIZE=208000

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

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

[Files-NDIS4]
2,EL656ND7.SYS , SIZE=90000

[Files-NDIS3]
;2,EL656ND3.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:"
DialogDllName = "Elpc656.DLL"

[FileConstantsENG-Elpc656]
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)
DuplexModeList          = ^(DuplexModeChoices, 1)
DuplexModeValues           = ^(DuplexModeChoices, 2)

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

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

Combo1List = $(IOBaseAddrList)
Combo1Out = $(IOBaseAddrValue)
Combo2List = $(MemoryAddrList)
Combo2Out = $(MemoryAddrValue)
Combo3List = $(IRQList)
Combo3Out = $(IRQValue)
Combo4List = $(DuplexModeList)
Combo4Out = $(DuplexModeValue)
ComboListItemsIn = {Combo1List,Combo2List,Combo3List, Combo4List} 
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}

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

[MemoryAddrChoices]
MA_0  = "AUTO"   , 0
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_0 = "10",10
IRQ_0 = "AUTO",0
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_0 = "AUTO",0
IOBase_1 = "0x3000",12288
IOBase_2 = "0x3100",12544
IOBase_3 = "0x3200",12800
IOBase_4 = "0x3300",13056
IOBase_5 = "0x3400",13312
IOBase_6 = "0x3500",13568
IOBase_7 = "0x3600",13824
IOBase_8 = "0x3700",14080
IOBase_9  = "0x3800",14336
IOBase_10 = "0x3900",14592
IOBase_11 = "0x3A00",14848
IOBase_12 = "0x3B00",15104
IOBase_13 = "0x3C00",15360
IOBase_14 = "0x3D00",15616
IOBase_15 = "0x3E00",15872
IOBase_16 = "0x3F00",16128


[DuplexModeChoices]
DuplexMode_0 = "AutoSelect",0
DuplexMode_1 = "FullDuplex",1
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: web4, load: 1.47