OEMSETUP.INF Driver File Contents (ob3000.zip)

[Identification]
    OptionType = NetAdapter

[PlatformsSupported]
    ISA
    EISA
    MCA
	PCI

[Options]
	Elpc575

[OptionsTextENG]
     Elpc575 = "3Com 3C575 Fast EtherLink XL PC Card"

[AllFileConstants]
GenericInfVersion  = " v1.00"
;  File names, etc. ----------------------------------------
UtilityInf      = "UTILITY.INF"
ParamInf        = "NCPARAM.INF"
subroutineinf   = "SUBROUTN.INF"
SoftwareType    = "driver"
Exit_Code       = 0
; EventLog Message File	 ----------------------------------------
NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
TrayIconExe = "comsmd.exe -on"
UninstallExe = "un3c575"
UnInstallName = "3Com NIC Diagnostic Utilities"
; Product Info ----------------------------------------
Manufacturer    = "3Com"
; Flow control variables  ----------------------------------------
;Shradha
DISABLEPCMCIASYS = "0"
;DISABLEPCMCIASYS = "1"
;Shradha



[FileConstants-Elpc575]
GenericAdapterName = "3Com 3C575 Fast EtherLink XL PC Card"
GenericDriverName  = "3Com 3C575 Fast EtherLink PC Card"
GenericSysName     = "Elpc575.sys"
GenericName        = "Elpc575"
; Product Info ----------------------------------------
ProductMajorVersion     = "3"
ProductMinorVersion     = "12"
ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
; Software  ----------------------------------------
ProductSoftwareName     = "Elpc575"
ProductSoftwareDescription = "3Com 3C575 Fast EtherLink XL PC Card"
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"}
; Hardware  ----------------------------------------
ProductHardwareName        = "Elpc575"
ProductHardwareDescription = "3Com 3C575 Fast EtherLink XL PC Card"
NetRuleHardwareType        = "Elpc575 Elpc575Adapter"
NetRuleHardwareBindForm    = " yes yes container"
NetRuleHardwareClass       = {"Elpc575Adapter basic"}
; Registry Key  ----------------------------------------
ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
; Tuple Information -----------------------------------
VERS1Manufacturer = "3Com"
VERS1Product      = "Fast EtherLink XL PC Card"  
VERS1Type		  = "Elpc575-FastEtherLink"
PCMCIA			  = 0




[GeneralConstants]
;  Program flow control variables.
from      = ""
to        = ""
;  Return codes; Exit_Code is set to one of these
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

    ; NT 3.10 is not supported
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)
            ;Debug-Output "Cannot configure the software."
            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 Default values
    ;set IRQValue        			= *($(IRQList), 6)
    set IRQValue        			= *($(IRQList), 1)
    set IOBaseAddrValue 			= *($(IOBaseAddrList), 1)
    set MemoryAddrValue 			= *($(MemoryAddrList), 25)

    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

    Set SrcDir = $($R1)

    install "Install-Dll"
    ;goto installproduct

; install fxxx 32 diag
;installproduct =+

;    set from = installproduct
    Debug-Output "Install-3nicdiag"
    install "Install-3nicdiag"

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

	;Shradha
    	;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)
	;Shradha

       ;add the uninstaller keys into the registry to show up in the add/remove window
	;Shradha
        ;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), "UN3C575.EXE"}}
        ;Shell $(UtilityInf), AddValueList, $(KeyNt2), $(NewValueList)
        ;ifint $($ShellCode) != $(!SHELL_CODE_OK)
            ;goto ShellCodeError
        ;endif
        ;CloseRegKey $(KeyNt)
        ;CloseRegKey $(KeyNt2)

    endif
    ; RunProgram ExitCode "Windows Directory" "" 3nicdiag.exe "-inf"
    ; 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) == "SocketNumber"
		    set SocketIndex = $(ValueData)
	    else-ifstr(i) $(ValueName) == "InterruptNumber"
		    set IRQValueIndex = $(ValueData)
	    ;Shradha
	    else-ifstr(i) $(ValueName) == "AdapterName"
		    set OldAdapterName = $(ValueData)
		    Debug-Output "<DBG> AdapterName in registry = "$(OldAdapterName)
    	    ;Shradha
	    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 SocketValue = *($(SocketList), ~($(SocketValues),$(SocketIndex)))
	ifstr(i) $(SocketValue) == ""
		set SocketValue = *($(SocketValues), 0)
    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 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 = +
    ;Shell $(UtilityInf), GetBusTypeNum
    ;set BusTypeNum = $($R1)
    set BusTypeNum = 1 
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "ShellCode error."
        goto ShellCodeError
    endif


    ;Shradha
    set MemoryAddrValue  			= 0
    ;set MemoryAddrValue  			= *($(MemoryAddrValues),~($(MemoryAddrList), $(MemoryAddrIndex)))
    ;Shradha
    set IRQValue         			= *($(IRQValues),		~($(IRQList),        $(IRQValueIndex)))
    set IOBaseAddrValue  			= *($(IOBaseAddrValues),~($(IOBaseAddrList), $(IOBaseAddrIndex)))
    set SocketValue    			    = *($(SocketValues),	~($(SocketList),     $(SocketIndex)))


    ;Shradha
    ifstr $(OldAdapterName) == ""
            Debug-Output "<DBG> setting OldAdapterName"
            set OldAdapterName = $(ProductHardwareName)$(AdapterNumber)
    endif
    Debug-Output "<DBG> OldAdapterName = "$(OldAdapterName)
    ;Shradha

    set NewValueList     = {{IoBaseAddress,           $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
       	                    {IoLength,        		  $(NoTitle),$(!REG_VT_DWORD), 127},+
			    ;Shradha
       	                    ;{MemoryMappedBaseAddress, $(NoTitle),$(!REG_VT_DWORD),$(MemoryAddrValue)},+
       	                    ;{MemoryMappedSize,        $(NoTitle),$(!REG_VT_DWORD),4096},+
			    ;Shradha
       	                    {InterruptNumber,         $(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
							{MediaType,               $(NoTitle),$(!REG_VT_DWORD),1},+
                            {BusType,                 $(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
                            {BusNumber,               $(NoTitle),$(!REG_VT_DWORD),0},+
			{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},+
			   ;Shradha
                           ;{PCMCIA,                  $(NoTitle),$(!REG_VT_DWORD),0}}		; Let PCMCIA.sys know to skip us if it is still running
		       {AdapterName,$(NoTitle),$(!REG_VT_SZ),$(OldAdapterName)},+
                           {SoftexPcmcia,                  $(NoTitle),$(!REG_VT_DWORD),1}}		; Let PCMCIA.sys know to skip us if it is still running
			   ;Shradha


    Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
    CloseRegKey $(KeyParameters)

	;disable PCMCIA.SYS
	ifint $(DISABLEPCMCIASYS) == 1
		set PCMCIAKeyName = $(!NTN_ServiceBase)"\Pcmcia"
    	OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIAKeyName) $(MAXIMUM_ALLOWED) PCMCIAKey
		SetRegValue $(PCMCIAKey) {Start, 0, $(!REG_VT_DWORD),4}  ; '4' disables the driver
    	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)
        ; Remove Software Component
        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

	; re-enble PCMCIA.SYS
	ifint $(DISABLEPCMCIASYS) == 1
		set PCMCIAKeyName = $(!NTN_ServiceBase)"\Pcmcia"
    	OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIAKeyName) $(MAXIMUM_ALLOWED) PCMCIAKey
		SetRegValue $(PCMCIAKey) {Start, 0, $(!REG_VT_DWORD),0}  ; '0' restores the driver to "BOOT"
    	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

    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
        ; Remove Software Component
        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 = "OEMSETNT.INF"
    ;Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
    ;Debug-Output $(InfName)" IRQ_Level is "$(!p:IRQ_Level)
    ;Debug-Output $(InfName)" IOBaseAddrValue is "$(!p:IOBaseAddrValue)
    ;Debug-Output $(InfName)" TransceiverValue is "$(!p:TransceiverValue)
    ;Debug-Output $(InfName)" MemoryAddr is "$(!p:MemoryAddr)
    ;Debug-Output $(InfName)" MappedValue is "$(!p:MappedValue)

    return


[Install-Option]
    set STF_VITAL = ""

    ifstr(i) $(AddCopy) == "YES"

        AddSectionFilesToCopyList Files-$(Option) $(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    = "VERIFYSOURCEOLDER"

   ;Shradha
   ;AddSectionFilesToCopyList Files-3nicdiag $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
   ;AddSectionFilesToCopyList Files-HwDll $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
   ;Shradha
   AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!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-3nicdiag]
 ;Shradha
 ;set STF_VITAL = ""
 ;AddSectionFilesToCopyList Files-3nicdiag $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
 ;AddSectionFilesToCopyList Files-HwDll $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
 ;set !STF_NCPA_FLUSH_COPYLIST = TRUE
 ;CopyFilesInCopyList
 ;Shradha
 Exit

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




[Source Media Descriptions]
    1  = "Elpc575 Setup Disk for NT"


[ProductType]
STF_PRODUCT  = Winnt
STF_PLATFORM = I386


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

[Files-Dll]
1, Elpc575.DLL,  SIZE=21000

[Files-3nicdiag]
;1,3nicdiag.exe, SIZE=165504
;1,3nicdiag.hlp, SIZE=20877
;1,3varaddr.txt, SIZE=113
;1,pacecfg.cpl, SIZE=107457
;1,pacecfg.hlp, SIZE=6617
;1,un3c575.exe, SIZE=100000

[Files-HwDll]
;1,hwaccess.dll, SIZE=20198
;1,pcomdrv.sys, SIZE=5000
;1,3c575cfg.dll, SIZE=59458

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

[Files-Elpc575]
1, Elpc575.SYS, SIZE=53000

[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 = "Elpc575.DLL"

[FileConstantsENG-Elpc575]
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)
SocketList		 		= ^(SocketChoices, 1)
SocketValues		 	= ^(SocketChoices, 2)

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

[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:"
Combo7Label = "PCCard Socket:"

Combo1List = $(IOBaseAddrList)
Combo1Out  = $(IOBaseAddrValue)
Combo2List = $(MemoryAddrList)
Combo2Out  = $(MemoryAddrValue)
Combo3List = $(IRQList)
Combo3Out  = $(IRQValue)
Combo7List = $(SocketList)
Combo7Out  = $(SocketValue)
ComboListItemsIn  = {Combo1List,Combo2List,Combo3List, Combo7List} 
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo7Out}

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

[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
MA_24 = "0xDF000", 913408
MA_25 = "0xE0000", 917504
MA_26 = "0xE1000", 921600
MA_27 = "0xE2000", 925696
MA_28 = "0xE3000", 929792
MA_29 = "0xE4000", 933888
MA_30 = "0xE5000", 937984
MA_31 = "0xE6000", 942080
MA_32 = "0xE7000", 946176
MA_33 = "0xE8000", 950272
MA_34 = "0xE9000", 954368
MA_35 = "0xEA000", 958464
MA_36 = "0xEB000", 962560
MA_37 = "0xEC000", 966656
MA_38 = "0xED000", 970752
MA_39 = "0xEE000", 974848
MA_40 = "0xEF000", 978944

[IRQChoices]
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  = "0x3040",12352
IOBase_3  = "0x3080",12416
IOBase_4  = "0x30C0",12480
IOBase_5  = "0x3100",12544
IOBase_6  = "0x3140",12608
IOBase_7  = "0x3180",12672
IOBase_8  = "0x31C0",12736
IOBase_9  = "0x3200",12800
IOBase_10 = "0x3240",12864
IOBase_11 = "0x3280",12928
IOBase_12 = "0x32C0",12922
IOBase_13 = "0x3300",13056
IOBase_14 = "0x3340",13120
IOBase_15 = "0x3380",13184
IOBase_16 = "0x33C0",13248
IOBase_17 = "0x3400",13312
IOBase_18 = "0x3440",13376
IOBase_19 = "0x3480",13440
IOBase_20 = "0x34C0",13504
IOBase_21 = "0x3500",13568
IOBase_22 = "0x3540",13632
IOBase_23 = "0x3580",13696
IOBase_24 = "0x35C0",13760
IOBase_25 = "0x3600",13824
IOBase_26 = "0x3640",13888
IOBase_27 = "0x3680",13952
IOBase_28 = "0x36C0",14016
IOBase_29 = "0x3700",14080
IOBase_30 = "0x3740",14144
IOBase_31 = "0x3780",14208
IOBase_32 = "0x37C0",14272
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: 2.37