[Identification]
OptionType = NetAdapter
[PlatformsSupported]
PCI
[Options]
EL2000
[CardIds]
PCIID_1 = "0x10B71700", {"", 4279, 5888}
PCIID_2 = "0x10B74320", {"", 4279, 17184}
[PreferredPort_Choices]
PREFERREDPORT_1 = 1, "A"
PREFERREDPORT_2 = 2, "B"
[RlmtMode_Choices]
RLMTMODE_1 = 1, "CLS"
RLMTMODE_3 = 3, "CLP"
RLMTMODE_7 = 7, "CLPSS"
[FileConstants]
ParamInf = "NCPARAM.INF"
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
SoftwareType = "driver"
Exit_Code = 0
NetEventDLL = "%SystemRoot%\System32\Drivers\EL2K_NT4.sys"
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
EthCards = {EL2000D, EL2000S}
Manufacturer = "3Com"
Card_IDs = ^(CardIds, 2)
MaxFrameSizeDefault = 1514
MaxFrameSizeJum = 9014
MinFrameSize = 14
MediaTypeDefault = 1
PreferredPortValList = ^(PreferredPort_Choices, 1)
PreferredPortStrList = ^(PreferredPort_Choices, 2)
PreferredPortDefault = *($(PreferredPortValList), 1)
RlmtModeValList = ^(RlmtMode_Choices, 1)
RlmtModeStrList = ^(RlmtMode_Choices, 2)
RlmtModeDefault = *($(RlmtModeValList), 1)
MaxMulticastDefault = 128
DupCapADefault = 3
DupCapBDefault = 3
AutoNegADefault = 1
AutoNegBDefault = 2
FlowControlADefault = 3
FlowControlBDefault = 3
RoleADefault = 0
RoleBDefault = 0
ProductMajorVersion = "6"
ProductMinorVersion = "00"
ProductSoftwareName = "EL2000"
ProductSoftwareImagePath= "\SystemRoot\System32\Drivers\EL2K_NT4.sys"
NetRuleSoftwareType = "EL2000Sys ndisDriver EL2000Driver"
NetRuleSoftwareBindForm = """EL2000Sys"" yes no container"
NetRuleSoftwareClass = {"EL2000Driver basic"}
NetRuleSoftwareBindable = {"EL2000Driver EL2000Adapter non exclusive 100"}
ProductHardwareName = "EL2000"
NetRuleHardwareType = "EL2000 EL2000Adapter"
NetRuleHardwareClass = {"EL2000Adapter basic"}
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
NetRuleHardwareBindForm = " yes yes container"
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"+
$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)$(ProductHardwareName)"\Parameters"
NetRuleSoftwareUse = $(SoftwareType)
[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
[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 InfOption = $($1)
Set Option = $($1)
Set SrcDir = $($2)
Set AddCopy = $($3)
Set DoCopy = $($4)
Set DoConfig = $($5)
Set LanguageList = ^(LanguagesSupported, 1)
IfContains(i) $($0) NOT-IN $(LanguageList)
Return STATUS_NOLANGUAGE
EndIf
Set-subst LF = "\n"
read-syms GeneralConstants
read-syms FileConstants
read-syms DialogConstants$(!STF_LANGUAGE)
IfStr(i) $(!NTN_Origination) == "NCPA"
Set Continue = $(OK)
EndIf
read-syms FileConstants$(!STF_LANGUAGE)
detect date
Set-title $(Function$(Option)Title)
Set to = Begin
Set from = Begin
Set CommonStatus = STATUS_SUCCESSFUL
EndWait
; Loop Initialization
set Count = 1
Begin = +
set DeviceCount = 0
Set ActivateDetection = FALSE
Set BusNumList = {}
Set Combo1List = {}
IfStr(i) $(!NTN_InstallMode) == deinstall
Goto checkmode
Else-IfStr(i) $(!NTN_InstallMode) == update
Goto checkmode
Else-IfStr(i) $(!NTN_InstallMode) == bind
Goto checkmode
EndIf
Set BusNumber = 0
Set BusInterfaceType = 5
Set BusTypeStr = "Pci"
Set AdaptersFoundFlag = FALSE
IfStr(i) *($(!STF_BUSTYPELIST),1) == ""
Shell $(UtilityInf), GetBusTypeNum
Set BusTypeNum = $($R1)
Else
Set BusTypeNum = 5
EndIf
Set OptionList = ^(Options, 1)
ForListDo $(Card_IDs)
Set PCIVendorID = *($($), 2)
Set PCIDeviceID = *($($), 3)
Shell $(UtilityInf), GetPCIInformation, $(PCIVendorID), $(PCIDeviceID)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
EndIf
IfStr(i) $($R0) != {}
ForListDo $($R0)
Set BusNum = *($($),1)
Set SlotNum = *($($),2)
Set AdaptersFoundFlag = TRUE
Set NicAlreadyInstalled = FALSE
ForListDo $(OptionList)
Shell $(UtilityInf), +
IsNetCardAlreadyInstalled,$(BusNum), $(SlotNum),$(ProductHardwareEL2000SDescription),$(ProductHardwareName)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
Endif
Ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
Endif
IfStr(i) $($R1) != "NO"
Set NicAlreadyInstalled = TRUE
EndIf
IfStr(i) $(NicAlreadyInstalled) == FALSE
Set Combo1List = >($(Combo1List),$(BusNum)" / "$(SlotNum))
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "NIC Not installed"
; Increment NIC Count
set-add DeviceCount = $(DeviceCount),"1"
EndIf
EndForListDo
EndIf
EndForListDo
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The total number of NICs to be installed is "$(DeviceCount)""
IfStr(i) $(Combo1List) == {}
IfStr(i) $(AdaptersFoundFlag) == FALSE
Set Error = "Error: No "+
$(ProductHardware$(InfOption)Title)+
" installed."
Goto Emergency_Out
;Goto fatal
Endif
IfStr(i) $(!NTN_InstallMode) == install
Set Error = "Error: No further "+
$(ProductHardware$(InfOption)Title)+
" installed."
; Goto fatal
Goto Emergency_Out
EndIf
EndIf
checkmode = +
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 CommonStatus = STATUS_REBOOT
Set StartLabel = configureadapter
IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf), RegistryErrorString, CANNOT_CONFIGURE_SOFTWARE
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set Error = $($R0)
Set from = end
Set to = end
goto nonfatalinfo
EndIf
Else
Set AddCopy = "YES"
Set DoCopy = "YES"
Set !STF_SRCDIR_OVERRIDE = $(SrcDir)
IfStr(i) $(DoCopy) == "YES"
IfStr(i) $(!STF_SRCDIR_OVERRIDE) != ""
Install Install-Helpfile
EndIf
EndIf
Set StartLabel = installadapter
Set OEM_ABANDON_OPTIONS = {}
Set OEM_ABANDON_SOFTWARE = FALSE
Set OEM_ABANDON_ON = TRUE
EndIf
Set MaxFrameSize = $(MaxFrameSizeDefault)
Set CardMediaType = $(MediaTypeDefault)
Set MaxMulticast = $(MaxMulticastDefault)
Set DupCapA = $(DupCapADefault)
Set AutoNegA = $(AutoNegADefault)
Set FlowControlA = $(FlowControlADefault)
Set RoleA = $(RoleADefault)
IfStr(i) $(Option) == "EL2000D"
Set PreferredPortValue = $(PreferredPortDefault)
Set RlmtModeValue = $(RlmtModeDefault)
Set DupCapB = $(DupCapBDefault)
Set AutoNegB = $(AutoNegBDefault)
Set FlowControlB = $(FlowControlBDefault)
Set RoleB = $(RoleBDefault)
EndIf
Set DetectedCard = FALSE
IfStr(i) $(ActivateDetection) != TRUE
Goto skipdetection
EndIf
Shell $(ParamInf), Param_BuildTypeLists, EL2000, $(TypeList)
Set Status = $($R0)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
Goto fatal
EndIf
Shell $(ParamInf), Param_SetDefaults, {}
IfStr(i) $(!STF_NCDETECT) == YES
IfStr(i) $(!STF_NCOPTION) == $(Option)
Set DetectedCard = TRUE
EndIf
EndIf
skipdetection = +
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)
; Bypass "Item of type dialog"
;Shell $(UtilityInf), VerExistedDlg, $(ProductSoftware$(Option)Title),+
; $(ProductVersion)
;IfInt $($ShellCode) != $(!SHELL_CODE_OK)
; goto ShellCodeError
;EndIf
goto end
Else
;Shell $(UtilityInf), CardExistedDlg
;IfInt $($ShellCode) != $(!SHELL_CODE_OK)
; goto ShellCodeError
;EndIf
;IfStr(i) $($R1) != "OK"
; Set CommonStatus = STATUS_USERCANCEL
; goto end
;EndIf
Set OldVersionExisted = $(TRUE)
EndIf
EndIf
IfStr(i) $(DetectedCard) != TRUE
Goto adaptersetup
EndIf
StartWait
Shell $(ParamInf), Param_QueryCard, $(!STF_NCDETCARD)
EndWait
IfStr(i) $($R0) != STATUS_SUCCESSFUL
Goto adaptersetup
EndIf
Set DetectedParams = $($R1)
Shell $(ParamInf), Param_SetDefaults, $(DetectedParams)
goto adapteroptions
configureadapter = +
IfStr $(KeyProduct) == $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
IfStr $(KeyProduct) == $(KeyNull)
Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
goto fatalregistry
EndIf
EndIf
Shell $(UtilityInf), FindService, $(KeyProduct)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
EndIf
IfStr(i) $($R0) != NO_ERROR
Goto fatalregistry
EndIf
Set KeyParameters = $($R2)
CloseRegKey $($R1)
IfStr $(KeyParameters) == $(KeyNull)
Set RegistryErrorIndex = 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) == "SlotNumber"
Set SlotNumber = $(ValueData)
Else-IfStr(i) $(ValueName) == "MediaType"
Set CardMediaType = $(ValueData)
Else-IfStr(i) $(ValueName) == "NetworkAddress"
Set NetworkAddress = $(ValueData)
Else-IfStr(i) $(ValueName) == "MaxFrameSize"
Set MaxFrameSize = $(ValueData)
Else-IfStr(i) $(ValueName) == "MaxMulticast"
Set MaxMulticast = $(ValueData)
Else-IfStr(i) $(ValueName) == "DuplexCapabilities_A"
Set DupCapA = $(ValueData)
Else-IfStr(i) $(ValueName) == "AutoNegotiation_A"
Set AutoNegA = $(ValueData)
Else-IfStr(i) $(ValueName) == "FlowControl_A"
Set FlowControlA = $(ValueData)
Else-IfStr(i) $(ValueName) == "Role_A"
Set RoleA = $(ValueData)
Else-IfStr(i) $(ValueName) == "PreferredPort"
Set PreferredPortValue = $(ValueData)
Else-IfStr(i) $(ValueName) == "RlmtMode"
Set RlmtModeValue = $(ValueData)
Else-IfStr(i) $(ValueName) == "DuplexCapabilities_B"
Set DupCapB = $(ValueData)
Else-IfStr(i) $(ValueName) == "AutoNegotiation_B"
Set AutoNegB = $(ValueData)
Else-IfStr(i) $(ValueName) == "FlowControl_B"
Set FlowControlB = $(ValueData)
Else-IfStr(i) $(ValueName) == "Role_B"
Set RoleB = $(ValueData)
EndIf
IfStr(i) $(BusTypeStr) == "Pci"
IfStr(i) $(ValueName) == "BusNumber"
Set BusNumber = $(ValueData)
EndIf
EndIf
EndForListDo
Set Combo1List = >($(Combo1List),$(BusNumber)" / "$(SlotNumber))
adaptersetup = +
IfStr(i) $(DetectedCard) == TRUE
IfStr(i) $(!STF_INSTALL_MODE) != CUSTOM
Goto adapterverify
EndIf
EndIf
goto adapteroptions
adapteroptions = +
IfStr(i) $(!STF_GUI_UNATTENDED) == "YES"
IfStr(i) $(!AutoNetInterfaceType) != ""
set BusInterfaceType = $(!AutoNetInterfaceType)
EndIf
IfStr(i) $(!AutoNetBusNumber) != ""
set BusNumber = $(!AutoNetBusNumber)
EndIf
goto adapteroptions2
EndIf
Set from = adapteroptions
Set SlotNumber = $(BusNumber)" / "$(SlotNumber)
Goto adapteroptions2
adapteroptions2 = +
IfStr(i) $(!STF_GUI_UNATTENDED) == "YES"
Split-String *($(Combo1List),1) " " Combo1Elements
Set BusNumber = *($(Combo1Elements),1)
Set SlotNumber = *($(Combo1Elements),5)
goto adapterverify
EndIf
IfStr(i) $(Option) == "EL2000D"
Set PreferredPortStr = *($(PreferredPortStrList), ~($(PreferredPortValList), $(PreferredPortValue)))
Set RlmtModeStr = *($(RlmtModeStrList), ~($(RlmtModeValList), $(RlmtModeValue)))
EndIf
;read-syms FileDependentDlg$(Option)$(!STF_LANGUAGE)
read-syms FileDependentDlgEL2000SENG
LoadLibrary "disk3" $(HelpFile).dll hLib
SetHelpFile $(HelpFile).hlp $(MinID) $(MaxID)
; HQ#82
ui start "InputDlg" $(hLib)
FreeLibrary $(hLib)
Set DLGEVENT = "CONTINUE"
IfStr(i) $(DLGEVENT) == "CONTINUE"
Set NetworkAddress = *($(EditTextOut),1)
Split-String $(Combo1Out) " " Combo1Elements
Set BusNumber = *($(Combo1Elements),1)
Set SlotNumber = *($(Combo1Elements),5)
; Test
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "BusNumber = "$(BusNumber)""
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "SlotNumber = "$(SlotNumber)""
IfStr(i) $(Option) == "EL2000D"
Set PreferredPortStr = $(Combo2Out)
Set PreferredPortValue = *($(PreferredPortValList),+
~($(PreferredPortStrList), $(PreferredPortStr)))
Set RlmtModeStr = $(Combo3Out)
Set RlmtModeValue = *($(RlmtModeValList),+
~($(RlmtModeStrList), $(RlmtModeStr)))
EndIf
Set MaxFrameSize = 1514 ;*($(EditTextOut),2)
IfInt $(MaxFrameSize) > $(MaxFrameSizeJum)
Shell $(subroutineinf), SetupMessage,+
$(!STF_LANGUAGE), "NONFATAL", $(FrameInfo)
Set MaxFrameSize = $(MaxFrameSizeJum)
EndIf
IfInt $(MaxFrameSize) < $(MinFrameSize)
Shell $(subroutineinf), SetupMessage,+
$(!STF_LANGUAGE), "NONFATAL", $(FrameSmallInfo)
Set MaxFrameSize = $(MinFrameSize)
EndIf
ui pop 1
Else-IfStr(i) $(DLGEVENT) == "BACK"
Set CommonStatus = STATUS_USERCANCEL
ui pop 1
goto end
Else
ui pop 1
goto end
EndIf
adapterverify = +
IfStr(i) $(DetectedCard) != TRUE
Goto skipoptions
EndIf
Shell $(ParamInf), Param_VerifyCard, $(!STF_NCDETCARD)
IfStr(i) $($R0) == STATUS_SUCCESSFUL
Goto skipoptions
EndIf
Set from = adapteroptions
Set to = skipoptions
Shell $(UtilityInf), RegistryErrorString, VERIFY_WARNING
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set Error = $($R0)
Goto Warning
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),+
$(ProductSoftware$(Option)Title), $(STF_CONTEXTINFNAME),+
$(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
$(NetEventDLL)
Set OEM_ABANDON_SOFTWARE = TRUE
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
EndIf
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
Set SoftServiceKey = $($R3)
Set SoftParameterKey = $($R4)
Set SoftLinkageKey = $($R5)
Set NewValueList = {+
{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftware$(Option)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftware$(InfOption)Description)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}+
}
Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
goto fatalregistry
EndIf
Set NewValueList = {+
{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)},+
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)},+
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)},+
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(InfOption)}+
}
Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
goto fatalregistry
EndIf
EndIf
Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),+
$(STF_CONTEXTINFNAME), $(ProductKeyName)
IfInt $($R4) != -1
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS),+
$(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
EndIf
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
goto fatalregistry
EndIf
Set InfOption = EL2000S
Set KeyParameters = $($R3)
Set KeyAdapterRules = $($R2)
Set AdapterNumber = $($R4)
Set NewValueList = {+
{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(InfOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareEL2000SDescription)},+
{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)
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),$(InfOption)}+
}
Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
CloseRegKey $(KeyParameters)
CloseRegKey $(KeyAdapterRules)
goto fatalregistry
EndIf
CloseRegKey $(KeyAdapterRules)
goto writeparameters
writeparameters = +
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Combo elements = "$(Combo1List)""
set Current = *($(Combo1List),$(Count))
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Current = "$(Current)""
split-string "$(Current)" "/" Data
; Paul
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Data = "$(Data)""
;set BusNumber = *($(Data),1)
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "BusNumber = "$(BusNumber)""
;set SlotNumber = *($(Data),3)
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "SlotNumber = "$(SlotNumber)""
;IfContains $(Option) in $(EthCards)
Set NewValueList = {+
{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
{MediaType,$(NoTitle),$(!REG_VT_DWORD),$(CardMediaType)},+
{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
{SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNumber)},+
{Moderate,$(NoTitle),$(!REG_VT_DWORD),1},+
{FixedIntMod,$(NoTitle),$(!REG_VT_DWORD),5000},+
{MaxReceives,$(NoTitle),$(!REG_VT_DWORD),50},+
{MaxTransmits,$(NoTitle),$(!REG_VT_DWORD),50},+
{WaitForRxResources,$(NoTitle),$(!REG_VT_DWORD),1},+
{MessageLog,$(NoTitle),$(!REG_VT_DWORD),1},+
}
Set EthParmsList = {+
{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)},+
{MaxFrameSize,$(NoTitle),$(!REG_VT_DWORD),$(MaxFrameSize)},+
{MaxMulticast,$(NoTitle),$(!REG_VT_DWORD),$(MaxMulticast)},+
{DuplexCapabilities_A,$(NoTitle),$(!REG_VT_DWORD),$(DupCapA)},+
{AutoNegotiation_A,$(NoTitle),$(!REG_VT_DWORD),$(AutoNegA)},+
{FlowControl_A,$(NoTitle),$(!REG_VT_DWORD),$(FlowControlA)},+
{Role_A,$(NoTitle),$(!REG_VT_DWORD),$(RoleA)},+
}
ForListDo $(EthParmsList)
Set NewValueList = >($(NewValueList),$($))
EndForListDo
IfStr(i) $(Option) == "EL2000D"
Set DualLinkParmsList = {+
{PreferredPort,$(NoTitle),$(!REG_VT_DWORD),$(PreferredPortValue)},+
{RlmtMode,$(NoTitle),$(!REG_VT_DWORD),$(RlmtModeValue)},+
{DuplexCapabilities_B,$(NoTitle),$(!REG_VT_DWORD),$(DupCapB)},+
{AutoNegotiation_B,$(NoTitle),$(!REG_VT_DWORD),$(AutoNegB)},+
{FlowControl_B,$(NoTitle),$(!REG_VT_DWORD),$(FlowControlB)},+
{Role_B,$(NoTitle),$(!REG_VT_DWORD),$(RoleB)},+
}
ForListDo $(DualLinkParmsList)
Set NewValueList = >($(NewValueList),$($))
EndForListDo
EndIf
Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters)
endif
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
CloseRegKey $(KeyParameters)
goto fatalregistry
EndIf
;EndIf
CloseRegKey $(KeyParameters)
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)
goto ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
EndIf
Else
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer),+
$(ProductHardwareName), $(!NTN_RegBase)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
EndIf
EndIf
goto end
UpgradeSoftware = +
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase)\NetRules +
$(MAXIMUM_ALLOWED) KeyProduct
IfStr $(KeyProduct) != $(KeyNull)
GetRegValue $(KeyProduct), "InfName", InfName
QueryListSize ListSize $(InfName)
Set !UG_Filename = *($(InfName), $(ListSize))
CloseRegKey $(KeyProduct)
Else
goto fatalregistry
EndIf
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) +
$(MAXIMUM_ALLOWED) KeyProduct
IfStr $(KeyProduct) != $(KeyNull)
Install "Install-Update"
IfStr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
goto fatal
EndIf
SetRegValue $(KeyProduct) {MajorVersion, $(NoTitle),+
$(!REG_VT_SZ), $(ProductMajorVersion)}
SetRegValue $(KeyProduct) {MinorVersion, $(NoTitle),+
$(!REG_VT_SZ), $(ProductMinorVersion)}
CloseRegKey $(KeyProduct)
Else
goto fatalregistry
EndIf
goto end
successful = +
goto end
abandon = +
ForListDo $(OEM_ABANDON_OPTIONS)
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer),+
$(ProductSoftwareName), $($)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
EndIf
EndForListDo
IfStr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer),+
$(ProductSoftwareName), FALSE
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
EndIf
EndIf
goto end
warning = +
Shell $(subroutineinf), SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
IfStr(i) $($R1) == "OK"
goto $(to)
Else-IfStr(i) $($R1) == "CANCEL"
goto $(from)
Else
goto "end"
EndIf
nonfatalinfo = +
Set CommonStatus = STATUS_USERCANCEL
Set Severity = STATUS
goto nonfatalmsg
nonfatal = +
Set Severity = NONFATAL
goto nonfatalmsg
nonfatalmsg = +
IfStr(i) $(Error) == ""
Set Severity = NONFATAL
Shell $(UtilityInf), RegistryErrorString, "SETUP_FAIL"
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
Set Error = $($R0)
EndIf
Shell $(subroutineinf), SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
EndIf
IfStr(i) $($R1) == "OK"
goto $(from)
Else
goto "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)
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 = +
IfStr(i) $(!NTN_InstallMode) == install
;ifstr(i) $(Count) == 1
; goto Emergency_Out
;endif
IfStr(i) $(DeviceCount) == 1
goto Emergency_Out
endif
set-add Count = $(Count),"1"
goto Begin
endif
Emergency_Out = +
Return $(CommonStatus)
[Install-HelpFile]
Set STF_VITAL = ""
Set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
Set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
exit
[Install-Option]
Set STF_VITAL = ""
IfStr(i) $(AddCopy) == "YES"
AddSectionFilesToCopyList Files-Driver $(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"
AddSectionFilesToCopyList Files-Driver $(SrcDir) +
$(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
Set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Source Media Descriptions]
1 = "Windows NT Setup Disk #1"
2 = "Windows NT Setup CD-ROM Disk"
3 = "SK Driver CD"
[ProductType]
STF_PRODUCT = Winnt
STF_PLATFORM = I386
[Files-Inf]
3, OemSetup.inf, SIZE=32000, RENAME=$(!UG_Filename)
[Files-Hlp]
3, OemNadSk.hlp, SIZE=38000
[Files-Dll]
3, OemNadSk.dll, SIZE=17000
[Files-Driver]
3, EL2K_NT4.sys, SIZE=80000
[LanguagesSupported]
ENG
[OptionsTextENG]
EL2000S = "3Com (3C940/3C2000) Gigabit NICs"
[FileConstantsENG]
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:"
FunctionEL2000STitle = "3Com (3C940/3C2000) Gigabit NIC Setup"
ProductSoftwareEL2000SDescription = "3Com (3C940/3C2000) Gigabit NIC Driver"
ProductHardwareEL2000SDescription = "3Com (3C940/3C2000) Gigabit NIC"
ProductSoftwareEL2000STitle = "3Com (3C940/3C2000) Gigabit NIC Driver"
ProductHardwareEL2000STitle = "3Com (3C940/3C2000) Gigabit NIC"
ShellCodeErrorTitle = "Error: "$(Function$(Option)Title)
ShellCodeErrorText = "Shell Code Error."
[DialogConstantsENG]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
Defaults = "&Defaults"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"
[FileDependentDlgEL2000DENG]
HelpFile = OemNadSk
IDH_DB_OEMSK_GEDNT_INS = 9150
HelpContext = $(IDH_DB_OEMSK_GEDNT_INS)
MinID = 9000
MaxID = 9999
Caption = $(Function$(Option)Title)
DlgType = "RadioCombination"
DlgTemplate = "GE_DUAL"
Combo1Label = "Bus / &Slot:"
Combo2Label = "&Preferred Port:"
Combo3Label = "&RLMT Mode:"
Edit1Label = "Network &Address:"
Edit2Label = "MaxFrameSi&ze:"
FrameInfo = "MaxFrameSize too large - adjusted to 9014."
FrameSmallInfo = "MaxFrameSize too small - adjusted to 14."
Combo1Out = $(SlotNumber)
Combo2List = $(PreferredPortStrList)
Combo2Out = $(PreferredPortStr)
Combo3List = $(RlmtModeStrList)
Combo3Out = $(RlmtModeStr)
ComboListItemsIn = {Combo1List, Combo2List, Combo3List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
NotifyFields = {NO, NO, NO}
EditTextIn = {$(NetworkAddress), $(MaxFrameSize)}
EditTextLim = {17, 12}
EditTextOut = {}
[FileDependentDlgEL2000SENG]
HelpFile = OemNadSk
IDH_DB_OEMSK_GESNT_INS = 9151
HelpContext = $(IDH_DB_OEMSK_GESNT_INS)
MinID = 9000
MaxID = 9999
Caption = $(Function$(Option)Title)
DlgType = "RadioCombination"
DlgTemplate = "GE_SINGLE"
Combo1Label = "Bus / &Slot:"
Edit1Label = "Network &Address:"
Edit2Label = "MaxFrameSi&ze:"
FrameInfo = "MaxFrameSize too large - adjusted to 9014."
FrameSmallInfo = "MaxFrameSize too small - adjusted to 14."
Combo1Out = $(SlotNumber)
ComboListItemsIn = {Combo1List}
ComboListItemsOut = {Combo1Out}
NotifyFields = {NO}
EditTextIn = {$(NetworkAddress), $(MaxFrameSize)}
EditTextLim = {17, 12}
EditTextOut = {}
;
; OemSetup.inf version 2.03
Download Driver Pack
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.