;*************************************************
;
; %VER 3Com Fast EtherLink Server NIC driver SETUP INF File 1.2.17
;
;*************************************************
[IntstallOptions]
Install_dRMON = "NO"
Install_3NIC_Diag = "YES"
Install_PACE = "NO"
Install_Shortcuts = "YES"
[Identification]
OptionType = NetAdapter
[PlatformsSupported]
ISA
EISA
"Jazz-Internal Bus"
PCI
[Options]
3C980 ; Fast EtherLink Server NIC 10/100MB PCI
VLAN
[FileConstants]
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
SoftwareType = "driver"
Exit_Code = 0
; Changed from el980n4x to el980n4
NetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el980n4.sys"
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
TrayIconExe = "comsmd.exe"
Manufacturer = "3Com"
ProductMajorVersion = "1"
ProductMinorVersion = "2"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
; Changed from el980n4x to el980n4
ProductSoftwareName = "el980n4"
; Changed from el980n4x to el980n4
ProductSoftwareImagePath = "%SystemRoot%\System32\drivers\el980n4.sys"
; Changed from el980n4x to el980n4
NetRuleSoftwareType = "El980n4Sys ndisDriver El980n4Driver"
NetRuleSoftwareUse = $(SoftwareType)
; Changed from el980n4x to el980n4
NetRuleSoftwareBindForm = """El980n4Sys"" yes no container"
; Changed from el980n4x to el980n4
NetRuleSoftwareClass = {"El980n4Driver basic"}
; Changed from el980n4x to el980n4
NetRuleSoftwareBindable = {"El980n4Driver El980n4Adapter non exclusive 100"}
; Changed from el980n4x to el980n4
ProductHardwareName = "El980n4"
NetRuleHardwareBindForm = " yes yes container"
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
FunctionTitle = "3Com 3C980x Adapter Card Setup"
ProductSoftwareDescription = "3Com 3C980x Adapter Driver"
ProductSoftwareTitle = "3Com 3C980x Adapter Driver"
3CNUMBER = "3C90X"
GROUP_NAME = "3Com Fast Etherlink Server NIC"
ProductHardware3C980Title = "3Com Fast EtherLink Server NIC"
ProductHardware3C980Description = "3Com Fast EtherLink Server NIC 10/100MB PCI"
; Changed from el980n4x to el980n4
NetRuleHardware3C980Type = "El980n4 El980n4Adapter"
; Changed from el980n4x to el980n4
NetRuleHardware3C980Class = {"El980n4Adapter basic"}
ProductHardware3C900Title = "3Com EtherLink XL Adapter (3C900)"
ProductHardware3C900Description = "3Com EtherLink XL PCI 10Mb Adapter (3C900)"
NetRuleHardware3C900Type = "El90x El90xAdapter"
NetRuleHardware3C900Class = {"El90xAdapter basic"}
Adapter3C980Type = 5 ;; PCI board
Adapter3C900Type = 5 ;; PCI board
; Added support for 3c905b
ProductHardware38912Title = "3Com Fast EtherLink Server NIC"
ProductHardware38912Description = "10/100Mb PCI"
ProductHardware36949Title = "3Com Fast EtherLink XL Adapter (3C905B)"
ProductHardware36949Description = "3Com Fast EtherLink XL PCI 10/100Mb Adapter (3C905B)"
; Commented out the first line because 905 support should be disabled for now.
; In the future, this line should be re-enabled for 905 support
;3C980CFIDList = {38912,36944, 36945, 36949, 36954, 36864, 36865, 36868, 36869, 36870, 36874 } ; 0x9050, 0x9051
3C980CFIDList = {38912}
[GeneralConstants]
from = ""
to = ""
ExitCodeOk = 0
ExitCodeCancel = 1
ExitCodeFatal = 2
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
RegistryErrorIndex = NO_ERROR
KeyProduct = ""
KeyParameters = ""
TRUE = 1
FALSE = 0
NoTitle = 0
ExitState = "Active"
OldVersionExisted = $(FALSE)
DriverPath = $(!STF_NTPATH)\drivers
NT350VersionConstant = "3.50"
NT351VersionConstant = "(3.51)"
NT310VersionConstant = "3.10"
NT400VersionConstant = "(4.0)"
INF_PROCESSER = "I386"
[BaseVars]
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
KeyInfo = {}
RegistryErrorIndex = NO_ERROR
NoTitle = 0
CurrentControlSet = "SYSTEM\CurrentControlSet"
ServicesBaseName = $(CurrentControlSet)"\Services"
NetworkCardKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
!RegLastError = NO_ERROR
[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
[WriteVlanopEntry]
read-syms BaseVars
set AlreadyExisted = 0
set VlanAlreadypresent = 0
set SecondaryPresent = 0
set CardNumPresent = 0
set BusNum = $($0)
set SlotNum = $($1)
set Description = $($2)
set Product = $($3)
set SkipDescriptionCheck = $($4)
set write = $($5)
set CardNo = $($6)
set paceon = 0
ifstr(i) $(SkipDescriptionCheck) == ""
set SkipDescriptionCheck = "NO"
endif
OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardKeyName) $(MAXIMUM_ALLOWED) IE_KeyNetcards
Ifstr $(IE_KeyNetcards) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto IE_Return
endif
EnumRegKey $(IE_KeyNetcards) IE_KeyNameList
ForListDo $(IE_KeyNameList)
set IE_KeyName = *($($),1)
OpenRegKey $(IE_KeyNetcards) "" $(IE_KeyName) $(MAXIMUM_ALLOWED) IE_Card
Ifstr $(IE_Card) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto IE_Return
endif
GetRegValue $(IE_Card),"ProductName", ProductNameInfo
set CardProductName = *($(ProductNameInfo), 4)
ifstr(i) $(CardProductName) == $(Product)
GetRegValue $(IE_Card), "ServiceName", ServiceNameInfo
set ServiceName = *($(ServiceNameInfo), 4)
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"$(ServiceName)"\Parameters" +
$(MAXIMUM_ALLOWED) IE_KeyService
Ifstr $(IE_KeyService) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto IE_Return
endif
GetRegValue $(IE_KeyService), "BusNumber", BusInfo
GetRegValue $(IE_KeyService), "SlotNumber", SlotInfo
GetRegValue $(IE_KeyService), "ADAPTERNUMBER",AdaptInfo
set CardBusNum = *($(BusInfo), 4)
set CardSlotNum = *($(SlotInfo), 4)
set AdaptNo = *($(AdaptInfo), 4)
ifint $(AdaptNo) == $(CardNo)
set CardNumPresent = 1
endif
ifint $(CardBusNum) == $(BusNum)
ifint $(CardSlotNum) == $(SlotNum)
set-add AlreadyExisted = $(AlreadyExisted),1
GetRegValue $(IE_KeyService), "Vlan_op", VlanopInfo
set Vlanop = *($(VlanopInfo),4)
GetRegValue $(IE_KeyService), "ADAPTERNUMBER",NICInfo
set NICNo = *($(NICInfo), 4)
GetRegValue $(IE_KeyService), "PRIMARYADAPTERNUMBER",Sec
set SecP = *($(Sec),4)
ifstr(i) $(SecP) != ""
set SecondaryPresent = 1
endif
GetRegValue $(IE_KeyService), "PACEIPXRanges",pacepresent
set paceinfo = *($(pacepresent),4)
ifstr(i) $(paceinfo) != ""
set paceon = 1
endif
GetRegValue $(IE_KeyService), "PACETCPRanges",pacepresent1
set paceinfo1 = *($(pacepresent1),4)
ifstr(i) $(paceinfo1) != ""
set paceon = 1
endif
GetRegValue $(IE_KeyService), "PACEUDPStreams",pacepresent2
set paceinfo2 = *($(pacepresent2),4)
ifstr(i) $(paceinfo2) != ""
set paceon = 1
endif
GetRegValue $(IE_KeyService), "VLAN_NAME",VlanName
set Vlann = *($(VlanName), 4)
ifstr(i) $(Vlann) != ""
set VlanAlreadypresent = 1
endif
ifint $(write) == 1
ifint $(VlanAlreadypresent) == 0
SetRegValue $(IE_KeyService), {Vlan_op, $(NoTitle),$(!REG_VT_DWORD),1}
SetRegValue $(IE_KeyService), {VLANID, $(NoTitle),$(!REG_VT_DWORD),255}
SetRegValue $(IE_KeyService), {VLAN_NAME, $(NoTitle),$(!REG_VT_SZ),""}
endif
endif
endif; Slotnum
endif ; busnum
endif ; product
EndForListDo
IE_Return = +
return $(RegistryErrorIndex) $(AlreadyExisted) $(Vlanop) $(VlanAlreadypresent) $(SecondaryPresent) $(CardNumPresent) $(NICNo) $(paceon)
[Identify]
read-syms Identification
set !G:DebugOutputControl = 1 ;Debug On/Off
set Status = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)
[ReturnOptions]
set Status = STATUS_FAILED
set OptionList = {}
set OptionTextList = {}
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
ifstr(i) $($1) == ""
goto returnoptions
endif
set PlatformList = ^(PlatformsSupported, 1)
Ifcontains(i) $($1) in $(PlatformList)
goto returnoptions
else
set Status = STATUS_NOTSUPPORTED
goto finish_ReturnOptions
endif
else
set Status = STATUS_NOLANGUAGE
goto finish_ReturnOptions
endif
returnoptions = +
set OptionList = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = +
Return $(Status) $(OptionList) $(OptionTextList)
[InstallOption]
set $(!G:DebugOutputControl) = 1 ;; Debug output {1=turned on, 0= turned off}
set CurrLang = $($0)
set Option = $($1)
set SrcDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) NOT-IN $(LanguageList)
Return STATUS_NOLANGUAGE
endif
set-subst LF = "\n"
read-syms IntstallOptions
read-syms GeneralConstants
read-syms FileConstants
read-syms DialogConstants$(!STF_LANGUAGE)
ifstr(i) $(!NTN_Origination) == "NCPA"
set Continue = "OK"
endif
read-syms FileConstants$(!STF_LANGUAGE)
detect date
set-title $(Function$(Option)Title)
set to = Begin
set from = Begin
set CommonStatus = STATUS_SUCCESSFUL
EndWait
Begin = +
set CurrentVersionValue = ""
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
Ifstr(i) $(KeyNt) != ""
GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue
CloseRegKey $(KeyNt)
Endif
ifstr(i) (*($(CurrentVersionValue),4)) != $(NT400VersionConstant)
set Error = "Only Windows NT v4.0 is supported by this product"
goto fatal
endif
; Add statement about Service Pack 3 and 4 before anything else
; Check for service pack 3 or 4 - if either is not installed and they are using Windows NT 4.0
; Server OS, then warn the user that they should upgrade their software.
Ifstr(i) $(!NTN_InstallMode) == "Update"
goto start_of_version_detection
else-Ifstr(i) $(!NTN_InstallMode) == "install"
start_of_version_detection = +
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
Ifstr(i) $(KeyNt) != "" ; key exists
GetRegValue $(KeyNt) "CSDVersion" ServicePackInfoList
; check for service pack 3
set servicePackID = *($(ServicePackInfoList), 4)
ifstr(i) $(servicePackID) != "Service Pack 3"
ifstr(i) $(servicePackID) != "Service Pack 4"
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"It is recommended that you install NT Service Pack 3 or greater."
endif
endif
Endif
;;; Begin of upgrade scenario
;;; Check whether any old versions of Python drivers are installed (those older than 1.2)
set oldDriverFound = "NO"
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
Ifstr(i) $(ServicesKey) != "" ; key exists
EnumRegKey $(ServicesKey) DriverList
ForListDo $(DriverList)
;;; Check for a version string which implies a Python 1.2 driver is installed
set Driver = *($($), 1)
;;; Check for the presence of the "VersionNo" key
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\"$(Driver)"\Parameters" +
$(!REG_KEY_ALL_ACCESS) DriverKey
Ifstr(i) $(DriverKey) != "" ; key exists
set DriverVersionList = {"","","",""}
GetRegValue $(DriverKey) "VersionNo" DriverVersionList
Split-String "$(Driver)" "n" DriverTokens
set DriverName = *($(DriverTokens), 1)
ifstr(i) $(Driver) != "El980n4"
ifstr(i) $(DriverName) == "El980"
;;; We have found a Python-related key
;;; check for old version (before 1.2)
set driverVersionID = *($(DriverVersionList), 4)
ifstr(i) $(driverVersionID) == ""
set oldDriverFound = "YES"
Endif
Endif
Endif
Endif
CloseRegKey $(DriverKey)
EndForListDo
Endif
CloseRegKey $(ServicesKey)
Ifstr(i) $(oldDriverFound) == "YES"
read-syms PromptForUpdateENG
ui start "PromptForUpdateENG"
ifstr(i) $(DLGEVENT) != "YES"
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "STATUS" +
"You have chosen to Cancel the upgrade."$(!LF)"No changes have been made."
set CommonStatus = STATUS_USERCANCEL
ifstr(i) $(OEM_ABANDON_ON) == TRUE
set OEM_ABANDON_ON = FALSE
goto abandon
endif
goto end
Endif
else-ifstr(i) $(oldDriverFound) == "NO"
goto continue_install
Endif
;;; End of upgrade scenario
;;; Check to see whether there are any old instances of the driver around
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
Ifstr(i) $(ServicesKey) != "" ; key exists
EnumRegKey $(ServicesKey) DriverList
ForListDo $(DriverList)
;;; For each Python driver in the list, delete it from the registry
set Driver = *($($), 1)
Split-String "$(Driver)" "n" DriverTokens
set DriverName = *($(DriverTokens), 1)
ifstr(i) $(DriverName) == "El980"
;;; We have found a Python-related key
;;; Remove the associated entry from the NetworkCards section
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards" +
$(!REG_KEY_ALL_ACCESS) CardsKey
Ifstr(i) $(CardsKey) != "" ; key exists
;;; Enumerate through all cards looking for for the one matching "$Driver"
EnumRegKey $(CardsKey) CardDriverList
ForListDo $(CardDriverList)
set CardNo = *($($), 1)
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(CardNo) +
$(!REG_KEY_ALL_ACCESS) CardSvcNameKey
Ifstr(i) $(CardSvcNameKey) != "" ; key exists
GetRegValue $(CardSvcNameKey) "ServiceName" ServiceNameValue
set FullDriverName = *($(ServiceNameValue),4)
ifstr(i) $(FullDriverName) == $(Driver)
;;; Delete this card information
DeleteRegTree $(CardsKey) $(CardNo)
Endif
Endif
CloseRegKey $(CardSvcNameKey)
EndForListDo
Endif
Endif
CloseRegKey $(CardsKey)
EndForListDo
Endif
CloseRegKey $(KeyNt)
; Remove any entries in the registry that have just been added
; but are no longer valid.
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com" $(!REG_KEY_ALL_ACCESS) KeyNt
Ifstr(i) $(KeyNt) != "" ; key exists
EnumRegKey $(KeyNt) DriverList
ForListDo $(DriverList)
; For each Python driver in the list, delete it from the registry
set Driver = *($($), 1)
Split-String "$(Driver)" "0" DriverTokens
set DriverName = *($(DriverTokens), 1)
ifstr(i) $(DriverName) == "el98"
; We have found a Python-related key
set FullDriverName = *($($), 1)
DeleteRegTree $(KeyNt) $(FullDriverName)
Endif
EndForListDo
Endif
CloseRegKey $(KeyNt)
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
Ifstr(i) $(ServicesKey) != "" ; key exists
EnumRegKey $(ServicesKey) DriverList
ForListDo $(DriverList)
; For each Python driver in the list, delete it from the registry
set Driver = *($($), 1)
Split-String "$(Driver)" "0" DriverTokens
set DriverName = *($(DriverTokens), 1)
Ifstr(i) $(DriverName) == "el98"
; We have found a Python-related key
set FullDriverName = *($($), 1)
DeleteRegTree $(ServicesKey) $(FullDriverName)
Endif
EndForListDo
Endif
CloseRegKey $(ServicesKey)
AddFileToDeleteList "%SystemRoot%\System32\980instl.exe"
AddFileToDeleteList "%SystemRoot%\System32\980instl.hlp"
AddFileToDeleteList "%SystemRoot%\System32\drivers\EL980n4.SYS"
AddFileToDeleteList "%SystemRoot%\System32\drivers\EL980n4x.SYS"
AddFileToDeleteList "%SystemRoot%\System32\daserver.exe"
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion" +
$(!REG_KEY_ALL_ACCESS) CurrentVersionKey
OpenRegKey $(CurrentVersionKey) "" "RunOnce" $(!REG_KEY_ALL_ACCESS) RunOnceKey
ifstr(i) $(RunOnceKey) != ""
; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
; "Deleting regvalue DASERVER"
DeleteRegValue $(RunOnceKey) DASERVER
endif
CloseRegKey $(RunOnceKey)
CloseRegKey $(CurrentVersionKey)
;;; Check for an entry to delete comsmd.exe from the registry
;;; If it is there, undelete it because deleting it may cause problems
;;; if the OS attempts to execute it after rebooting the machine
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Control\Session Manager" +
$(!REG_KEY_ALL_ACCESS) DeleteKey
ifstr(i) $(DeleteKey) != ""
EnumRegValue $(DeleteKey) DeleteEntries
;;; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "WARNING" +
;;; "Delete Entries: "$(DeleteEntries)
;;; DO NOTHING FOR NOW - UNFINISHED !
endif
read-syms PromptForRebootDlg
ui start "PromptForRebootDlg"
set CommonStatus = STATUS_SUCCESSFUL
return $(CommonStatus)
Endif
;;; Continue installing an updated version of the Python driver
continue_install = +
Ifstr(i) $(!NTN_InstallMode) == deinstall
set StartLabel = removeadapter
else-Ifstr(i) $(!NTN_InstallMode) == Update
set StartLabel = UpgradeSoftware
else-Ifstr(i) $(!NTN_InstallMode) == bind
set StartLabel = bindingadapter
else-Ifstr(i) $(!NTN_InstallMode) == configure
ifstr $(!STF_PLATFORM) == $(INF_PROCESSER)
RunProgram ExitCode "Windows Directory" "" 980instl.exe
; Determine whether the program has modified any SHD parameters
; If so, then prompt for a reboot. Also prompt for a reboot on
; an install or upgrade.
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com" $(!REG_KEY_ALL_ACCESS) KeyNt
Ifstr(i) $(KeyNt) != ""
GetRegValue $(KeyNt) "PromptForReboot" RebootRequiredList
set RebootRequired = *($(RebootRequiredList), 4)
Ifstr(i) $(RebootRequired) == "YES"
; Reset the reboot status to NO
SetRegValue $(KeyNt), {PromptForReboot, $(NoTitle),$(!REG_VT_SZ),"NO"}
set CommonStatus = STATUS_SUCCESSFUL
else
set CommonStatus = STATUS_USERCANCEL
Endif
Endif
CloseRegKey $(KeyNt)
goto end
else-Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
set from = end
set to = end
goto nonfatalinfo
else
set StartLabel = configureadapter
endif
else
set StartLabel = installadapter
set OEM_ABANDON_OPTIONS = {}
set OEM_ABANDON_SOFTWARE = FALSE
set OEM_ABANDON_ON = TRUE
endif
set from = $(fatal)
set to = $(fatal)
goto $(StartLabel)
installadapter = +
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
ifstr(i) $(Option) == "VLAN"
goto pcidetect
endif
ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto end
else
set OldVersionExisted = $(TRUE)
endif
else-ifstr(i) $(Option) == "VLAN"
set Error = $(INSTALL_CARD_FIRST)
set CommonStatus = USER_CANCEL
set from = end
goto nonfatal
Endif
Goto adapteroptions
configureadapter = +
set Error = "Cannot configure the software component"
goto fatal
adapteroptions = +
set from = adapteroptions
ifstr(i) $(!NTN_InstallMode) == configure
goto updateparameters
endif
installproduct = +
StartWait
set AdapterList = $($R1)
ifint $(OldVersionExisted) == $(FALSE)
Ifstr(i) $(DoCopy) == "YES"
Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
Else-Ifstr(i) $($R0) == STATUS_FAILED
Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
Goto fatal
Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
Goto successful
Endif
Set SrcDir = $($R1)
Endif
install "Install-Option"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
endif
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName) $(!REG_KEY_READ) KeyNt
CloseRegKey $(KeyNt)
Ifstr(i) $(KeyNt) == ""
Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName), +
$(ProductSoftwareName), +
$(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
$(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
$(NetEventDLL)
Set OEM_ABANDON_SOFTWARE = TRUE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
endif
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
Set SoftServiceKey = $($R3)
Set SoftParameterKey = $($R4)
Set SoftLinkageKey = $($R5)
set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
goto fatalregistry
endif
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
goto fatalregistry
endif
endif ;; Does Services\el980N4 exist?
pcidetect = +
Debug-Output "IN PCI Detect"
set TargetVersion = *($(CurrentVersionValue),4)
ifstr $(TargetVersion) == $(NT350VersionConstant) ;; We need to ask on v3.50
set Version350 = $(TRUE)
else
set Version350 = $(FALSE)
endif
ifint $(Version350) == $(TRUE)
ifstr $(!STF_GUI_UNATTENDED) == "YES"
ifstr(i) $(!AutoNetInterfaceType) != ""
set BusInterfaceType = $(!AutoNetInterfaceType)
else
set BusInterfaceType = 5
endif
ifstr(i) $(!AutoNetBusNumber) != ""
set BusNumber = $(!AutoNetBusNumber)
else
set BusNumber = 0
endif
set NTDetected = $(FALSE)
set AdapterList = $(Option) ;; 1 Item to install
else
set BusInterfaceType = 5
set BusNumber = 0
set NTDetected = $(FALSE)
Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardware$(Option)Description) $(BusInterfaceType) $(BusNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set BusInterfaceType = $($R1)
set BusNumber = $($R2)
set AdapterList = $(Option) ;; 1 Item to install
endif
else
set NTDetected = $(TRUE)
set Vendor = 4279 ;; 0x10b7 is 3Com's Vendor ID!
set CFIDList = $(3C980CFIDList)
set AdapterList = {}
; Add in support for 3c905b
ForListDo $(CFIDList)
set-div CFID = $($) 1
set DeviceID = $($)
Shell $(UtilityInf), GetPCIInformation, $(Vendor) $(CFID)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ForListDo $($R0)
set AdapterList = >($(AdapterList), {*($($),1), *($($),2), $(DeviceID)})
EndForListDo
EndForListDo
ifstr(i) $(AdapterList) == {}
; Remove any entries in the registry that have just been added
; but are no longer valid.
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com" $(!REG_KEY_ALL_ACCESS) KeyNt
Ifstr(i) $(KeyNt) != "" ; key exists
EnumRegKey $(KeyNt) DriverList
ForListDo $(DriverList)
; For each Python driver in the list, delete it from the registry
set Driver = *($($), 1)
Split-String "$(Driver)" "0" DriverTokens
set DriverName = *($(DriverTokens), 1)
ifstr(i) $(DriverName) == "el98"
; We have found a Python-related key
set FullDriverName = *($($), 1)
DeleteRegTree $(KeyNt) $(FullDriverName)
Endif
EndForListDo
CloseRegKey $(KeyNt)
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
Ifstr(i) $(ServicesKey) != "" ; key exists
EnumRegKey $(ServicesKey) DriverList
ForListDo $(DriverList)
; For each Python driver in the list, delete it from the registry
set Driver = *($($), 1)
Split-String "$(Driver)" "0" DriverTokens
set DriverName = *($(DriverTokens), 1)
Ifstr(i) $(DriverName) == "el98"
; We have found a Python-related key
set FullDriverName = *($($), 1)
DeleteRegTree $(ServicesKey) $(FullDriverName)
Endif
EndForListDo
Endif
CloseRegKey $(ServicesKey)
set Error = $(CANNOT_FIND_ANY_CARD)
set CommonStatus = USER_CANCEL
set from = end
goto nonfatal
endif
endif
Debug-Output "$(AdapterList)"
set AdapterNum = 1
set CardNum = 1
set tempcards = 0
set AdapterSeq = 0
set addt = 0
set DoNotInstall = 0
InstallVlan = +
ForListDo $(AdapterList)
Debug-Output "Counting Adapters"
set DetectedBusNum = *($($),1)
set DetectedSlotNum = *($($),2)
; Add support for 3c905b
set DeviceID = *($($), 3)
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName), "", 0, 0
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
endif
ifint $($R1) >= 1
set-add tempcards = $(tempcards) , 1
endif
EndForListDo
read-syms BaseVars
LoadLibrary "" .\EtherBox.dll hLib
ForListDo $(AdapterList)
set SecondaryNIC = 0
set Paceactive = 0
Set InstallCard = "YES"
set-add AdapterSeq = $(AdapterSeq) , 1
ifint $(NTDetected) == $(TRUE)
set DetectedBusNum = *($($),1)
set DetectedSlotNum = *($($),2)
; Add in support for 3c905b
set DeviceID = *($($), 3)
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName), "", 0,$(AdapterNum)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
endif
set SecondaryNIC = $($R4)
set CardNumPresent = $($R5)
set NICNum = $($R6)
set Paceactive = $($R7)
ifint $($R1) >= 1
set InstallCard = "NO" ;; Don't want to re-install, it's there already
endif
endif ; NTdetected
ifstr(i) $(Option) == "3C980"
ifstr(i) $(InstallCard) == "NO"
set addt = 1
goto nextone
else
set addt = 0
ifstr $(!STF_GUI_UNATTENDED) != "YES"
dlgagain1 = +
;read-syms EtherBoxDRIVER
;ui start "Inputdlg" $(hLib)
;;
;; Pull up the screen
;;
;LibraryProcedure ResultList $(hLib) DoInstallDialog $(DetectedBusNum) $(DetectedSlotNum)
;Split-String $(ResultList) "," DestinationList
;Set DLGEVENT = *($(DestinationList),1) ; Value 1 is action requested
set DLGEVENT = "YES"
ifstr(i) $(DLGEVENT) == "YES"
set DLGEVENT = "CONTINUE"
else-ifstr(i) $(DLGEVENT) == "HELP"
set DLGEVENT = "FREEBUTTON1"
else
set DLGEVENT = "CANCEL"
endif
;;;set DLGEVENT = CONTINUE
ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
ui pop 1
RunProgram HelpResult "" "" winhlp32.exe $(!STF_WINDOWSSYSPATH)"\"980instl.hlp
goto dlgagain1
endif
else
set DLGEVENT = "CONTINUE"
endif
ifstr(i) $(DLGEVENT) == "CONTINUE"
set DoNotInstall = 1
ui pop 1
ifint $(CardNumPresent) == 0
; Changed from el980n4x to el980n4
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"el980n4"\Parameters" +
$(MAXIMUM_ALLOWED) IE_KeyService
GetRegValue $(IE_KeyService), "TotCards", CardInfos
set CardNumbers = *($(CardInfos),4)
set DeviceID = *($($), 3)
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName), "", 0, $(CardNumbers)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set IsthisNICpresent = $($R5)
ifstr(i) $(CardNumbers) != ""
ifint $(AdapterNum) == 1
ifint $(IsthisNICpresent) == 1
set-add CardNum = $(CardNumbers) , 1
else
set CardNum = $(CardNumbers)
endif
endif
endif
else
; Changed from el980n4x to el980n4
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"el980n4"\Parameters" +
$(MAXIMUM_ALLOWED) IE_KeyService
GetRegValue $(IE_KeyService), "TotCards", CardInfo
set CardNumber = *($(CardInfo),4)
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName), "", 0, $(CardNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Isthiscardpresent = $($R5)
ifint $(CardNumber) < $(CardNum)
goto skip
endif
ifint $(Isthiscardpresent) == 1
set-add CardNum = $(CardNumber) , 1
else
set CardNum = $(CardNumber)
endif
skip = +
goto writeregistry
endif
else
set-sub AdapterNum = $(AdapterNum), 1
set-sub CardNum = $(CardNum), 1
ui pop 1
goto nextone
endif
endif
else-ifstr(i) $(Option) == "VLAN"
ifstr(i) $(InstallCard) == "NO"
set CardNum = $(NICNum)
ifint $(Paceactive) == 1
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"VLANs cannot be installed on a NIC with PACE enabled. Please Disable PACE and reboot system ."
goto nextone
endif
ifint $(SecondaryNIC) == 1
goto nextone
endif
goto writeregistry
else
goto nextone
endif
endif ; 3C980
writeregistry = +
ifstr $(!STF_GUI_UNATTENDED) != "YES"
dlgagain2 = +
;read-syms EtherBoxVLANS
;ui start "Inputdlg" $(hLib)
set DLGEVENT = "CANCEL"
ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
ui pop 1
RunProgram HelpResult "" "" winhlp32.exe $(!STF_WINDOWSSYSPATH)"\"980instl.hlp
goto dlgagain2
endif
set Vlanyes = 0
set NumMacs = 1
set VlanIndex = 0
set Vlanon = 0
ifstr(i) $(DLGEVENT) == "CONTINUE"
set Vlanyes = 1
ui pop 1
ifstr(i) $(Option) == "VLAN"
ifstr(i) $(InstallCard) == "YES"
set Error = $(INSTALL_CARD_FIRST)
set CommonStatus = USER_CANCEL
set from = end
goto nonfatal
endif
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName),"",0
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
endif
set NumMacs = $($R1) ; Num of Macs Currently installed
set Vlanon = $($R2) ; if Vlans are turned on
set Vlanpresent = $($R3) ; if Vlans are turned on
set VlanIndex = $(NumMacs)
endif; VLAN
goto noofvlans
else
ifstr(i) $(Option) == "VLAN"
ui pop 1
goto nextone
endif
ui pop 1
goto writereg
endif
noofvlans = +
read-syms EtherBoxVLANNO
ui start "Inputdlg" $(hLib)
ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
ui pop 1
RunProgram HelpResult "" "" winhlp32.exe $(!STF_WINDOWSSYSPATH)"\"980instl.hlp
goto noofvlans
endif
ifstr(i) $(DLGEVENT) == "BACK"
ui pop 1
goto writeregistry
endif
set TempNumMacs = *($(EditTextOut),1)
ui pop 1
ifint $(TempNumMacs) == 1
ifint $(NumMacs) == 1
ifint $(Vlanon) == 1 ; Donot Install Vlans as Vlan already exists
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
""$(NumMacs)" Vlan already exists."
goto noofvlans
endif
ifstr(i) $(Option) == "VLAN"
ifint $(Vlanpresent) == 1
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"Vlans may have been installed already and turned off. Please Check Configuration"
goto noofvlans
endif
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName),"",1, 0
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto nextone
endif ;VLAN
set Vlanon = $(Vlanyes)
goto writereg
endif ; NumMacs
endif ; tempNumMacs
ifint $(TempNumMacs) == 0
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"Minimum Vlan per NIC is atleast 1."
goto noofvlans
endif
ifint $(TempNumMacs) > 16
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"Maximum Vlans per NIC is 16."
goto noofvlans
endif
ifint $(TempNumMacs) <= $(NumMacs)
set DlgTxt = ""$(NumMacs)" Vlans already exist"
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
$(DlgTxt)
goto noofvlans
endif
ifstr(i) $(Option) == "VLAN"
ifint $(TempNumMacs) > 1
ifint $(NumMacs) == 1
ifint $(Vlanon) == 0
ifint $(Vlanpresent) == 1
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"Vlans may have been installed already and turned off. Please Check Configuration"
goto noofvlans
endif
Shell "", WriteVlanopEntry, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProductHardware$(DeviceID)Description), $(ProductHardwareName),"", 1
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
endif
else
ifint $(Vlanon) == 0
ifint $(Vlanpresent) == 1
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
"Vlans may have been installed already and turned off. Please Check Configuration"
goto noofvlans
endif
endif
endif
endif
endif
set NumMacs = $(TempNumMacs)
writereg = +
StartWait
else
set VlanIndex = 0
set NumMacs = 1
endif ; endif GUI unattended
ifint $(VlanIndex) < $(NumMacs)
Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
ifint $($R4) != -1
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
endif
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
goto fatalregistry
endif
Set HardNetCardKey = $($R1)
Set HardNetRuleKey = $($R2)
Set HardParameterKey = $($R3)
set AdapterNumber = $($R4)
set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(DeviceID)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(DeviceID)Description)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set BusTypeNum = 5
ifstr(i) $(Option) == "3C980"
set CardType = 0
else
set CardType = 2
endif
ifint $(NTDetected) == $(TRUE)
set BusNumber = $(DetectedBusNum)
set SlotNum = $(DetectedSlotNum)
set BusInterfaceType = $(BusTypeNum)
Set NewValueList = {{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(DetectedBusNum)},+
{SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(DetectedSlotNum)},+
{Slot,$(NoTitle),$(!REG_VT_DWORD),$(DetectedSlotNum)},+
{WINNT,$(NoTitle),$(!REG_VT_SZ),"Yes"},+
{ADAPTERNUMBER,$(NoTitle),$(!REG_VT_DWORD),$(CardNum)},+
{AlertType,$(NoTitle),$(!REG_VT_DWORD),4},+
{AdapterSeq,$(NoTitle),$(!REG_VT_DWORD),$(AdapterSeq)},+
{Vlan_op,$(NoTitle),$(!REG_VT_DWORD),$(Vlanyes)},+
{SelfCheckLevel,$(NoTitle),$(!REG_VT_SZ),"Basic"},+
{SamplingWindow,$(NoTitle),$(!REG_VT_DWORD),1024},+
{SamplingRatio,$(NoTitle),$(!REG_VT_DWORD),50},+
{ErrorTolerance,$(NoTitle),$(!REG_VT_SZ),"Medium"},+
{Base_Mac_Address,$(NoTitle),$(!REG_VT_SZ),""},+
{Network_Address,$(NoTitle),$(!REG_VT_SZ),""}}
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifint $(Vlanyes) == 1
set NewValueList = {+
{VLAN_NAME,$(NoTitle),$(!REG_VT_SZ),""},+
{VLANID,$(NoTitle),$(!REG_VT_DWORD),255},+
}
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
endif
else
Set NewValueList = {+
{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
}
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
endif
Set NewValueList = {+
{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
{CardType,$(NoTitle),$(!REG_VT_DWORD),$(CardType)},+
{MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
}
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardware3C980Type)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardware3C980Class)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(HardNetCardKey)
CloseRegKey $(HardNetRuleKey)
CloseRegKey $(HardParameterKey)
set-add VlanIndex = $(VlanIndex), 1
EndWait
goto writereg
endif; VlanIndex
nextone = +
ifint $(addt) == 0
set-add AdapterNum = $(AdapterNum), 1
set-add CardNum = $(CardNum), 1
endif
EndForListDo ; Adapter List
FreeLibrary $(hLib)
ifint $(Option) == "3C980"
ifint $(DoNotInstall) == 0
set Install_dRMON = "NO"
set Install_3NIC_Diag = "NO"
set Install_PACE = "NO"
set Install_Shortcuts = "NO"
goto end
endif
; Changed from el980n4x to el980n4
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"el980n4"\Parameters" +
$(MAXIMUM_ALLOWED) IE_KeyService
SetRegValue $(IE_KeyService) {TotCards, $(NoTitle),$(!REG_VT_DWORD),$(CardNum)}
CloseRegKey $(IE_KeyService)
endif
ifint $(Option) == "VLAN"
set Install_dRMON = "NO"
set Install_3NIC_Diag = "NO"
set Install_PACE = "NO"
set Install_Shortcuts = "NO"
RunProgram ExitCode "Windows Directory" "" 3nicdiag.exe "-inf" ;*
RunProgram ExitCode "Windows Directory" "" 980instl.exe "-inf" ;*
goto successful
endif
ifstr $(!STF_PLATFORM) == $(INF_PROCESSER)
install "Install-Uninstaller" ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProductSoftwareName) $(!REG_KEY_ALL_ACCESS) + ;*
KeyNt ;*
set TrayIconList = {3CUNINSTALL,$(NoTitle),$(!REG_VT_SZ),$(3CNUMBER)} ;*
SetRegValue $(KeyNt) $(TrayIconList) ;*
set TrayIconList = {FamilyMember,$(NoTitle),$(!REG_VT_SZ),"3C980"} ;*
SetRegValue $(KeyNt) $(TrayIconList) ;*
set TrayIconList = {PACENAME,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)} ;*
SetRegValue $(KeyNt) $(TrayIconList) ;*
CloseRegKey $(KeyNt) ;*
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) ;*
ifstr $(Install_3NIC_Diag) == "YES" ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" + ;*
$(!REG_KEY_ALL_ACCESS) KeyNt ;*
ifstr $(KeyNt) == "" ;*
CreateRegKey $(!REG_H_LOCAL) {"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", + ;*
0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" KeyNt ;*
endif ;*
OpenRegKey $(KeyNt) "" "3ComNicUnInstall" $(!REG_KEY_ALL_ACCESS) KeyNt2 ;*
ifstr $(KeyNt2) == "" ;*
CreateRegKey $(KeyNt) {"3ComNicUnInstall" , 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) +;*
"" KeyNt2 ;*
endif ;*
set NewValueList = {{DisplayName, $(NoTitle), $(!REG_VT_SZ), "3Com NIC Diagnostics"}, + ;*
{UninstallString, $(NoTitle), $(!REG_VT_SZ), "UN3C90X.EXE"}} ;*
Shell $(UtilityInf), AddValueList, $(KeyNt2), $(NewValueList) ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK) ;*
goto ShellCodeError ;*
endif ;*
CloseRegKey $(KeyNt) ;*
CloseRegKey $(KeyNt2) ;*
endif ;*
endif ;*
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) ;*
install "Install-Tray" ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" + ;*
$(!REG_KEY_ALL_ACCESS) KeyNt ;*
set TrayIconList = {COMSMDEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"} ;*
SetRegValue $(KeyNt) $(TrayIconList) ;*
CloseRegKey $(KeyNt) ;*
endif ;*
ifstr $(Install_dRMON) == "YES" ;*
install "Install-dRMON" ;*
Shell $(!STF_WINDOWSSYSPATH)\drmonnt.inf, InstallOption, $(CurrLang),+ ;*
$(Option) ,$(SrcDir), YES, YES, YES, NO ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK) ;*
goto ShellCodeError ;*
endif ;*
endif ;*
ifstr $(Install_PACE) == "YES" ;*
install "Install-PACE" ;*
set CalledPace = "installpace" ;*
goto paceentries ;*
installpace = + ;*
endif ;*
ifstr $(Install_3NIC_Diag) == "YES" ;*
install "Install-3nicdiag" ;*
ifstr(i) $(!STF_GUI_UNATTENDED) != "YES" ;*
RunProgram ExitCode "Windows Directory" "" 3nicdiag.exe "-inf" ;*
;;;
;;; Add an entry into the registry to start the daserver.exe program upon rebooting
;Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
; "Checking for RunOnce key."
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion" +
$(!REG_KEY_ALL_ACCESS) CurrentVersionKey
OpenRegKey $(CurrentVersionKey) "" "RunOnce" $(!REG_KEY_ALL_ACCESS) RunOnceKey
ifstr(i) $(RunOnceKey) == ""
; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
; "RunOnce key not found. Creating a new RunOnce key."
CreateRegKey $(CurrentVersionKey) "RunOnce" "" $(!REG_KEY_ALL_ACCESS) "" RunOnceKey
endif
ifstr(i) $(RunOnceKey) == ""
; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
; "RunOnce key cannot be created."
else
SetRegValue $(RunOnceKey) {DASERVER, $(NoTitle),$(!REG_VT_SZ),"DASERVER.EXE"}
endif
;shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
; "Value written to RunOnce key value DASERVER."
CloseRegKey $(RunOnceKey)
CloseRegKey $(CurrentVersionKey)
;; Check whether daserver.exe was copied. If not, modify the run key.
detect CheckForDAServer
set DAServer = *($(DAServerFound), 1)
ifstr $(DAServer) != "daserver.exe"
; Remove any key starting daserver upon reboot
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion" +
$(!REG_KEY_ALL_ACCESS) CurrentVersionKey
OpenRegKey $(CurrentVersionKey) "" "RunOnce" $(!REG_KEY_ALL_ACCESS) RunOnceKey
ifstr(i) $(RunOnceKey) != ""
; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
; "Deleting regvalue DASERVER"
DeleteRegValue $(RunOnceKey) DASERVER
endif
CloseRegKey $(RunOnceKey)
CloseRegKey $(CurrentVersionKey)
endif
RunProgram ExitCode "Windows Directory" "" 980instl.exe "-inf" ;*
; Determine whether the program has modified any SHD parameters.
; If so, then prompt for a reboot. Also prompt for a reboot on
; an install or upgrade.
; This is only executed during an install, so always prompt for
; a reboot after this!!
endif ;*
ifstr(i) $(Install_Shortcuts) == "YES" ;* ;*
RunProgram ExitCode "Windows Directory" "" COMSMD.EXE "-setup" ;* ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +;* ;*
$(!REG_KEY_ALL_ACCESS) KeyNt ;* ;*
;mtset TrayIconList = {COMSMDEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -try"} ;* ;*
;mtSetRegValue $(KeyNt) $(TrayIconList) ;* ;*
CloseRegKey $(KeyNt) ;* ;*
endif ;* ;*
endif ;*
EndWait
updateparameters =+
set HardParameterKey = $($R3)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(KeyParameters)
goto successful
bindingadapter =+
set Error = "Binding: Sorry, not yet implemented."
goto fatal
removeadapter = +
read-syms BaseVars
ifstr(i) $(Option) == "3C980"
; Changed from el980n4x to el980n4
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"el980n4"\Parameters" +
$(MAXIMUM_ALLOWED) IE_KeyService
GetRegValue $(IE_KeyService), "TotCards", CardInfo
set CardNum = *($(CardInfo),4)
set-sub CardNum = $(CardNum) , 1
SetRegValue $(IE_KeyService) {TotCards, $(NoTitle),$(!REG_VT_DWORD),$(CardNum)}
CloseRegKey $(IE_KeyService)
;;; Adding code to delete unnecessary files when we are removing the last
;;; driver on the system
ifstr(i) $(CardNum) == "1"
AddFileToDeleteList "%SystemRoot%\System32\980instl.exe"
AddFileToDeleteList "%SystemRoot%\System32\980instl.hlp"
AddFileToDeleteList "%SystemRoot%\System32\drivers\EL980n4.SYS"
AddFileToDeleteList "%SystemRoot%\System32\drivers\EL980n4x.SYS"
AddFileToDeleteList "%SystemRoot%\System32\daserver.exe"
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion" +
$(!REG_KEY_ALL_ACCESS) CurrentVersionKey
OpenRegKey $(CurrentVersionKey) "" "RunOnce" $(!REG_KEY_ALL_ACCESS) RunOnceKey
ifstr(i) $(RunOnceKey) != ""
; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
; "Deleting regvalue DASERVER"
DeleteRegValue $(RunOnceKey) DASERVER
endif
CloseRegKey $(RunOnceKey)
CloseRegKey $(CurrentVersionKey)
;;; Check for an entry to delete comsmd.exe from the registry
;;; If it is there, undelete it because deleting it may cause problems
;;; if the OS attempts to execute it after rebooting the machine
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Control\Session Manager" +
$(!REG_KEY_ALL_ACCESS) DeleteKey
ifstr(i) $(DeleteKey) != ""
EnumRegValue $(DeleteKey) DeleteEntries
;;; Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) "WARNING" +
;;; "Delete Entries: "$(DeleteEntries)
;;; DO NOTHING FOR NOW - UNFINISHED !
endif
endif
endif
Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
else
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductSoftwareName), $(!NTN_RegBase)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
ifstr(i) $(!STF_PLATFORM) == $(INF_PROCESSER)
RunProgram ExitCode "Windows Directory" "" UN3C90X.EXE "-inf"
endif
ifstr $(Install_dRMON) == "YES" ;*
Shell $(!STF_WINDOWSSYSPATH)\drmonnt.inf, InstallOption, $(CurrLang),$(Option) ,$(SrcDir), YES, YES, YES, -inf
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
endif
goto end
UpgradeSoftware = +
set OVERWRITE_SAVE = $(!STF_OVERWRITE)
set !STF_OVERWRITE = "VERIFYSOURCEOLDER"
install "Install-Option" ;*
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS ;*
Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK) ;*
goto ShellCodeError ;*
endif ;*
set Error = $($R0) ;*
goto fatal ;*
endif ;*
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(!REG_KEY_READ) KeyProduct ;*
Ifstr $(KeyProduct) != "" ;*
Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct) ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK) ;*
goto ShellCodeError ;*
endif ;*
set !UG_Filename = $($R0) ;*
install "Install-INF" ;*
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS ;*
goto fatal ;*
endif ;*
SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)} ;*
SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)} ;*
CloseRegKey $(KeyProduct) ;*
else ;*
goto fatalregistry ;*
endif ;*
ifstr $(!STF_PLATFORM) == $(INF_PROCESSER)
install "Install-Uninstaller" ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProductSoftwareName) $(!REG_KEY_ALL_ACCESS) + ;*
KeyNt ;*
set TrayIconList = {3CUNINSTALL,$(NoTitle),$(!REG_VT_SZ),$(3CNUMBER)} ;*
SetRegValue $(KeyNt) $(TrayIconList) ;*
set TrayIconList = {PACENAME,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)} ;*
SetRegValue $(KeyNt) $(TrayIconList) ;*
CloseRegKey $(KeyNt) ;*
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) ;*
ifstr $(Install_3NIC_Diag) == "YES" ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" + ;*
$(!REG_KEY_ALL_ACCESS) KeyNt ;*
ifstr $(KeyNt) == "" ;*
CreateRegKey $(!REG_H_LOCAL) {"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall",+ ;*
0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" KeyNt ;*
endif ;*
OpenRegKey $(KeyNt) "" "3ComNicUnInstall" $(!REG_KEY_ALL_ACCESS) KeyNt2 ;*
ifstr $(KeyNt2) == "" ;*
CreateRegKey $(KeyNt) {"3ComNicUnInstall" , 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) +;*
"" KeyNt2 ;*
endif ;*
set NewValueList = {{DisplayName, $(NoTitle), $(!REG_VT_SZ), "3Com NIC Diagnostics"},+ ;*
{UninstallString, $(NoTitle), $(!REG_VT_SZ), "UN3C90X.EXE"}} ;*
Shell $(UtilityInf), AddValueList, $(KeyNt2), $(NewValueList) ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK) ;*
goto ShellCodeError ;*
endif ;*
CloseRegKey $(KeyNt) ;*
CloseRegKey $(KeyNt2) ;*
endif ;*
endif ;*
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) ;*
install "Install-Tray" ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" + ;*
$(!REG_KEY_ALL_ACCESS) KeyNt ;*
set TrayIconList = {COMSMDEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"} ;*
SetRegValue $(KeyNt) $(TrayIconList) ;*
CloseRegKey $(KeyNt) ;*
endif ;*
ifstr $(Install_PACE) == "YES" ;*
install "Install-PACE" ;*
set CalledPace = "updatepace" ;*
goto paceentries ;*
updatepace = + ;*
endif ;*
ifstr $(Install_dRMON) == "YES" ;*
install "Install-dRMON" ;*
set InstallMode_Save = $(!NTN_InstallMode) ;*
set !NTN_InstallMode = install ;*
set SRCDIR_OVERRIDE_Save = $(!STF_SRCDIR_OVERRIDE) ;*
set !STF_SRCDIR_OVERRIDE = $(SrcDir) ;*
Shell $(!STF_WINDOWSSYSPATH)\drmonnt.inf, InstallOption, $(CurrLang), + ;*
$(Option) ,$(SrcDir), YES, YES, YES, NO ;*
set !NTN_InstallMode = $(InstallMode_Save) ;*
set !STF_SRCDIR_OVERRIDE = $(SRCDIR_OVERRIDE_Save) ;*
ifint $($ShellCode) != $(!SHELL_CODE_OK) ;*
goto ShellCodeError ;*
endif ;*
endif ;*
ifstr $(Install_3NIC_Diag) == "YES" ;*
install "Install-3nicdiag" ;*
ifstr(i) $(!STF_GUI_UNATTENDED) != "YES" ;*
RunProgram ExitCode "Windows Directory" "" 3nicdiag.exe "-inf" ;*
RunProgram ExitCode "Windows Directory" "" 980instl.exe "-inf" ;*
endif ;*
ifstr(i) $(Install_Shortcuts) == "YES" ;* ;*
RunProgram ExitCode "Windows Directory" "" COMSMD.EXE "-setup" ;* ;*
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +;* ;*
$(!REG_KEY_ALL_ACCESS) KeyNt ;* ;*
;mtset TrayIconList = {COMSMDEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -try"} ;* ;*
;mtSetRegValue $(KeyNt) $(TrayIconList) ;* ;*
CloseRegKey $(KeyNt) ;* ;*
endif ;* ;*
endif ;*
set !STF_OVERWRITE = $(OVERWRITE_SAVE)
endif
goto end
successful = +
goto end
abandon = +
ForListDo $(OEM_ABANDON_OPTIONS)
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductSoftwareName), $($)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
EndForListDo
Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName), FALSE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
goto end
warning = +
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(to)
else-ifstr(i) $($R1) == "CANCEL"
goto $(from)
else
goto "end"
endif
nonfatalinfo = +
Set CommonStatus = STATUS_USERCANCEL
Set Severity = STATUS
goto nonfatalmsg
nonfatal = +
Set Severity = NONFATAL
goto nonfatalmsg
nonfatalmsg = +
ifstr(i) $(Error) == ""
Set Severity = NONFATAL
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(from)
else
goto "RemoveAdapter"
endif
fatalregistry = +
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
fatal = +
ifstr(i) $(Error) == ""
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto setfailed
ShellCodeError = +
ifint $($ShellCode) == $(!SHELL_CODE_NO_SUCH_INF)
else-ifint $($ShellCode) == $(!SHELL_CODE_NO_SUCH_SECTION)
else
endif
set DlgType = "MessageBox"
set STF_MB_TITLE = $(ShellCodeErrorTitle)
set STF_MB_TEXT = $(ShellCodeErrorText)
set STF_MB_TYPE = 1
set STF_MB_ICON = 3
set STF_MB_DEF = 1
ui start "Error Message"
goto setfailed
setfailed = +
set CommonStatus = STATUS_FAILED
ifstr(i) $(OEM_ABANDON_ON) == TRUE
set OEM_ABANDON_ON = FALSE
goto abandon
endif
goto end
end = +
goto term
term = +
Return $(CommonStatus)
paceentries = +
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(!REG_KEY_WRITE) SOFTPACEKEY
OpenRegKey $(SOFTPACEKEY) "" "3Com" $(!REG_KEY_WRITE) COMPACEKEY
ifstr $(COMPACEKEY) == ""
CreateRegKey $(SOFTPACEKEY) {"3Com", 0, GenericClass} "" $(!REG_KEY_WRITE) "" COMPACEKEY
endif
OpenRegKey $(COMPACEKEY) "" "PACECards" $(!REG_KEY_WRITE) CARDPACEKEY
ifstr $(CARDPACEKEY) == ""
CreateRegKey $(COMPACEKEY) {"PACECards", 0, GenericClass} "" $(!REG_KEY_WRITE) "" CARDPACEKEY
endif
OpenRegKey $(CARDPACEKEY) "" $(ProductSoftwareName) $(!REG_KEY_WRITE) EL90XPACEKEY
ifstr $(EL90XPACEKEY) == ""
CreateRegKey $(CARDPACEKEY) {$(ProductSoftwareName), 0, GenericClass} "" $(!REG_KEY_WRITE) "" EL90XPACEKEY
endif
SetRegValue $(EL90XPACEKEY) {"Description", 0, $(!REG_VT_SZ), $(GROUP_NAME)}
OpenRegKey $(CARDPACEKEY) "" "Applications" $(!REG_KEY_WRITE) APPPACEKEY
ifstr $(APPPACEKEY) == ""
CreateRegKey $(CARDPACEKEY) {"Applications", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPPACEKEY
endif
OpenRegKey $(APPPACEKEY) "" "Emotion CreativePartner (IPX)" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Emotion CreativePartner (IPX)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"IPX"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"87C7"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"87C8"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Emotion CreativePartner (TCP/IP)" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Emotion CreativePartner (TCP/IP)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"0453"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"0455"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "InSoft Communique!" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"InSoft Communique!", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"1025, 1500"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1050, 1525"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Picturetel LiveLAN (over IPX)" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Picturetel LiveLAN (over IPX)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"IPX"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"4050"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"4082"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Picturetel LiveLAN (over TCP/IP)" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Picturetel LiveLAN (over TCP/IP)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"06a4"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"06d6"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Precept FlashWare" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Precept FlashWare", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"8000, C000"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"8000, C000"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Progressive Networks RealAudio" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Progressive Networks RealAudio", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"6970"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"7170"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Starlight Networks StarCast" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Starlight Networks StarCast", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"1911"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1911"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "VCON Cruiser 100" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"VCON Cruiser 100", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"1500, 1600"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1500, 1600"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "VXtreme Web Theater" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"VXtreme Web Theater", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"7000"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"7020"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
OpenRegKey $(APPPACEKEY) "" "Xing Technology Streamworks" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Xing Technology Streamworks", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"1558"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1558"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
OpenRegKey $(APPPACEKEY) "" "Vosaic Software Server" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Vosaic Software Server", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"TCP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"04D3"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"04D3"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
OpenRegKey $(APPPACEKEY) "" "Vosaic Software Client" $(!REG_KEY_WRITE) APPSPECPACEKEY
ifstr $(APPSPECPACEKEY) == ""
CreateRegKey $(APPPACEKEY) {"Vosaic Software Client", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
endif
set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
{Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
{RangeStart,$(NoTitle),$(!REG_VT_SZ),"F169"}, +
{RangeEnd,$(NoTitle),$(!REG_VT_SZ),"F17D"}}
Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(APPSPECPACEKEY)
CloseRegKey $(EL90XPACEKEY)
CloseRegKey $(APPPACEKEY)
CloseRegKey $(CARDPACEKEY)
CloseRegKey $(COMPACEKEY)
CloseRegKey $(SOFTPACEKEY)
goto $(CalledPace)
[Install-Option]
set STF_VITAL = ""
ifstr(i) $(AddCopy) == "YES"
AddSectionFilesToCopyList Files-$(Option) $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-$(Option)dll $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
endif
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-Uninstaller]
set STF_VITAL = ""
AddSectionFilesToCopyList Files-Uninstaller $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-3nicdiag]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-3nicdiag $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-HwDll $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-DAServer $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-PACE]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-PACE $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-Tray]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-Tray $(SrcDir)win32 $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-dRMON]
set STF_VITAL = ""
AddSectionFilesToCopyList Files-dRMON $(SrcDir)drmon $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-dRMONINF $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-INF]
set STF_VITAL = ""
AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Source Media Descriptions]
1 = "Windows NT Setup Disk #1"
3 = "3Com Fast EtherLink Server NICs - DISK 2"
4 = "3Com Fast EtherLink Server NICs - DISK 3", TAGFILE = DISK3
[ProductType]
STF_PRODUCT = Winnt
[Files-Inf]
3, oemsetup.inf,SIZE=36000, RENAME=$(!UG_Filename)
[Files-3nicdiag]
3,3nicdiag.exe, SIZE=165504
3,3nicdiag.hlp, SIZE=20877
3,3varaddr.txt, SIZE=113
3,pacecfg.cpl, SIZE=65535
3,pacecfg.hlp, SIZE=6617
[Files-DAServer]
4,daserver.exe, SIZE=65535
[Files-HwDll]
3,hwaccess.dll, SIZE=20198
3,pcomdrv.sys, SIZE=5000
3,3c90xcfg.dll, SIZE=59458
3,980instl.exe, SIZE=65535
3,980instl.hlp, SIZE=65535
3,Etherbox.dll, SIZE=65535
[Files-Tray]
3,comsmd.exe, SIZE=8957
[Files-dRMON]
3,undrmon.exe, SIZE=8957
[Files-dRMONINF]
3,drmonnt.inf, SIZE=8957
[Files-PACE]
3,pacecfg.cpl, SIZE=107457
3,pacecfg.hlp, SIZE=6617
[Files-Uninstaller]
3,UN3C90X.EXE, SIZE=6617
[Files-3C980]
; Changed from el980n4x to el980n4
3,EL980n4.SYS , SIZE=25001
[Files-3C980dll]
3,Etherbox.dll , SIZE=25001
3,980instl.hlp, SIZE=65535
[LanguagesSupported]
ENG
[OptionsTextENG]
3C980 = "3Com Fast EtherLink Server NIC"
;VLAN = "3Com Fast EtherLink XL Server VLAN INSTANCE"
[FileConstantsENG]
ProCaption = "Windows NT NIC Setup"
ProCancel = "Cancel"
ProCancelMsg = "Windows NT Networking is not correctly installed. "+
"Are you sure you want to cancel copying files?"
ProCancelCap = "Network Setup Message"
ProText1 = "Copying:"
ProText2 = "To:"
ConnectionList = ^(ConnectionChoices$(Option), 1)
ConnectionValues = ^(ConnectionChoices$(Option), 2)
NoList = ^(NoChoices, 1)
NoValues = ^(NoChoices, 2)
ShellCodeErrorTitle = "Error: "$(Function$(Option)Title)
ShellCodeErrorText = "Shell Code Error."
CANNOT_FIND_ANY_CARD = "Network card is not present in the system"
INSTALL_CARD_FIRST = "Run 3Com EtherLink Server NIC Installation First"
[DialogConstantsENG]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"
[PromptForRebootDlg]
DlgType = "MessageBox"
STF_MB_TITLE = "All previous adapter drivers have been removed"
STF_MB_TEXT = "You must reboot the machine and then add in the new adapters."
STF_MB_TYPE = 1
STF_MB_ICON = 2
STF_MB_DEF = 1
[PromptForUpdateENG]
DlgType = "MessageBox"
STF_MB_TITLE = "A more recent driver is available"
STF_MB_TEXT = "If you choose to upgrade, all VLAN and RSL configurations will be erased."+
$(!LF)$(!LF)"Do you want to upgrade all drivers to the latest one?"
STF_MB_TYPE = 3
STF_MB_ICON = 2
STF_MB_DEF = 1
[InputVlanonDlgENG]
DlgTemplate = "UPGRADE"
DlgType = "Info"
Caption = "3Com EtherLink Server NIC Installation"
DlgText = "Install VLANs on EtherLink XL Server NIC (Bus = "$(DetectedBusNum)") (Slot = "$(DetectedSlotNum)")?"
Continue = "&Yes"
Exit = "&No"
Help = "&Help"
HelpContext = $(!IDH_DB_OEMNADTE_INS)
[InputMacDlgENG]
DlgTemplate = "NETWORK_NUMBER"
DlgType = "Edit"
Caption = "Total Number of VLANs for Bus:"$(DetectedBusNum)" Slot:"$(DetectedSlotNum)""
Edit1Label = "&Total VLANs:"
HelpContext = $(!IDH_DB_OEMNADTE_INS)
EditTextLim = { 2 }
EditTextIn = $(NumMacs)
EditFocus = "ALL"
RCCtlFocusOn = 403
Continue = "&OK"
[InputDrvDlgENG]
DlgTemplate = "UPGRADE"
DlgType = "Info"
Caption = "3Com EtherLink Server NIC Installation"
DlgText = " Install Driver on EtherLink Server NIC (Bus="$(DetectedBusNum)") (Slot = "$(DetectedSlotNum)")?"
Continue = "&Yes"
Exit = "&No"
Help = "&Help"
HelpContext = $(!IDH_DB_OEMNADTE_INS)
[EtherBoxDRIVER]
DlgTemplate = "ETHERBOX_DRIVER"
DlgType = "Info"
BusLabel = $(DetectedBusNum)
SlotLabel = $(DetectedSlotNum)
[EtherBoxVLANS]
DlgTemplate = "ETHERBOX_ELANS"
DlgType = "Info"
BusLabel = $(DetectedBusNum)
SlotLabel = $(DetectedSlotNum)
[EtherBoxVLANNO]
DlgTemplate = "ETHERBOX_ELANNO"
DlgType = "Edit"
EditTextLim = { 2 }
EditTextIn = $(NumMacs)
BusLabel = $(DetectedBusNum)
SlotLabel = $(DetectedSlotNum)
[CheckForDAServer]
DAServerFound = {} ? $(!LIBHANDLE) FindFileInstances $(!STF_WINDOWSSYSPATH)"\daserver.exe"
Download Driver Pack
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.