;************************************************* ; ; %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.