[IntstallOptions]
Install_3NIC_Diag = "NO"
Install_Shortcuts = "NO"
Install_Installer = "NO"
Install_On_Server = "YES"
[Identification]
OptionType = NetAdapter
[PlatformsSupported]
ISA
EISA
PCI
"Jazz-Internal Bus"
[Options]
3C90X
3C980
[DriverConstantsNDIS3]
ND3NetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el98xn3.sys"
ND3ProdSWImagePath = "%SystemRoot%\System32\drivers\el98xn3.sys"
ND3ProdSWUpgradePath = "\SystemRoot\System32\drivers\el98xn3.sys"
[DriverConstantsNDIS4]
ND4NetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el98xn4.sys"
ND4ProdSWImagePath = "%SystemRoot%\System32\drivers\el98xn4.sys"
ND4ProdSWUpgradePath = "\SystemRoot\System32\drivers\el98xn4.sys"
;**************************************************************************************************
[FileConstants]
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
SWType = "driver"
Exit_Code = 0
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
NetworkCardsKey = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"
FunctionTitle = "3Com 3C980x Adapter Card Setup"
; *** 3CNUMBER = "3C90X"
3CNUMBER = "3C980X"
GROUP_NAME = "3Com EtherLink PCI NIC"
ProdHWXXXXXTitle = "3Com EtherLink PCI NIC "
ProdHWXXXXXDesc = "3Com EtherLink PCI NIC "
Manufacturer = "3Com"
EtherDiskVersion = "2.1"
ProdMajorVer = "2"
ProdMinorVer = "1"
ProdReview = "1"
ProdVer = $(ProdMajorVer)"."$(ProdMinorVer)
ProdSWDesc = "3Com 3C98x 10/100 Server NIC Driver"
ProdSWTitle = "3Com 3C98x 10/100 Server NIC Driver"
ProdSWName = "EL980N4"
NetRuleSWType = "EL980N4Sys ndisDriver EL980N4Driver"
NetRuleSWUse = $(SWType)
NetRuleSWBindForm = """EL980N4Sys"" yes no container"
NetRuleSWClass = {"El98xDriver basic"}
NetRuleSWBindable = {"EL980N4Driver El98xAdapter non exclusive 100"}
ProdHWName = "EL980N4"
NetRuleHWBindForm = " yes yes container"
NetRuleHWType = "EL980N4 El98xAdapter"
NetRuleHWClass = {"EL980N4Adapter basic"}
ProdKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProdSWName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProdHWName)"\Parameters"
Hardware_Default = "HardwareDefault"
DiagExe = TCAUDIAG
NICPROP = NICPROP
; *** ??? next line
DIAGCARDTYPE = "TCAUM90X"
TrayIconExe = TCAUDIAG
InstallerExe = TCAUDIAG
UnInstallerEXE = UN3C90XA
;--------------------these NICs use old NDIS4 driver --------------------------------
ProdHW38912Title = "3Com EtherLink Server 10/100 PCI NIC (3C980B-TX)"
ProdHW38912Desc = "3Com EtherLink Server 10/100 PCI NIC (3C980B-TX)"
ProdHW38917Title = "3Com EtherLink Server 10/100 PCI NIC (3C980C-TXM)"
ProdHW38917Desc = "3Com EtherLink Server 10/100 PCI NIC (3C980C-TXM)"
ProdHW38917HydraATitle = "3Com EtherLink Server 10/100 Dual Port A"
ProdHW38917HydraBTitle = "3Com EtherLink Server 10/100 Dual Port B"
ProdHW38917HydraDescription = "3Com EtherLink Server 10/100 PCI Dual Port Network Interface Card featuring DynamicAccess technology with Advanced Server Features."
;------------------------------------------------------------------------------------------------
; List of NICs
CFIDList = {38912, 38917}
AdapterType = 5
[GeneralConstants]
from = ""
to = ""
ExitCodeOk = 0
ExitCodeCancel = 1
ExitCodeFatal = 2
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
RegistryErrorIndex = NO_ERROR
KeyProduct = ""
KeyParameters = ""
TRUE = 1
FALSE = 0
NoTitle = 0
ExitState = "Active"
OldVersionExisted = $(FALSE)
DriverPath = $(!STF_NTPATH)\drivers
NT350VersionConstant = "3.50"
NT310VersionConstant = "3.10"
NT400VersionConstant = "(4.0)"
INF_PROCESSER = "I386"
PythonPresent = "FALSE"
LastCardRemoved = "TRUE"
[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
[Identify]
read-syms Identification
set Status = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)
[ReturnOptions]
set Status = STATUS_FAILED
set OptionList = {}
set OptionTextList = {}
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
ifstr(i) $($1) == ""
goto returnoptions
endif
set PlatformList = ^(PlatformsSupported, 1)
Ifcontains(i) $($1) in $(PlatformList)
goto returnoptions
else
set Status = STATUS_NOTSUPPORTED
goto finish_ReturnOptions
endif
else
set Status = STATUS_NOLANGUAGE
goto finish_ReturnOptions
endif
returnoptions = +
set OptionList = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = +
Return $(Status) $(OptionList) $(OptionTextList)
[checkFileExist]
DiagFound = {} ? $(!LIBHANDLE) FindFileInstances $(!STF_WINDOWSSYSPATH)"\tcaudiag.exe"
OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\NetworkCards" $(!REG_KEY_ALL_ACCESS) SWNWCardsKey
ifstr(i) $(SWNWCardsKey) != ""
EnumRegKey $(SWNWCardsKey) DriverList
ForListDo $(DriverList)
set Driver = *($($), 1)
OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(Driver) +
$(!REG_KEY_ALL_ACCESS) DriverRootKey
Ifstr(i) $(DriverRootKey) != "" ; key exists
GetRegValue $(DriverRootKey) "ProductName" CurrentProductName
ifstr(i) (*($(CurrentProductName),4)) == "(El980n4)"
OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(Driver)"\NetRules" +
$(!REG_KEY_ALL_ACCESS) DriverNetRulesKey
Ifstr(i) $(DriverNetRulesKey) != "" ; key exists
SetRegValue $(DriverNetRulesKey) {"InfName" , 0, $(!REG_VT_SZ), $(NewINFFileName)}
Endif
;;; Change to support I.B.M. hot plug
SetRegValue $(DriverRootKey) {"ProductName" , 0, $(!REG_VT_SZ), "EL980N4"}
GetRegValue $(DriverRootKey) "ServiceName" CurrentServiceNameString
set CurrentServiceName = *($(CurrentServiceNameString), 4)
Split-String "$(CurrentServiceName)" "n" ServiceNameTokens
set ServiceSuffix = *($(ServiceNameTokens), 3)
set FullServiceName = "EL980N"$(ServiceSuffix)
SetRegValue $(DriverRootKey) {"ServiceName", 0, $(!REG_VT_SZ), $(FullServiceName)}
;;; End of changes to support hot plug
;;; Change the description and title fields
GetRegValue $(DriverRootKey) "Description" CurrentDescriptionString
GetRegValue $(DriverRootKey) "Title" CurrentTitleString
set CurrentDescription = *($(CurrentDescriptionString), 4)
set CurrentTitle = *($(CurrentTitleString), 4)
ifstr(i) $(CurrentDescription) == "10/100Mb PCI"
SetRegValue $(DriverRootKey) {"Description", 0, $(!REG_VT_SZ), "3C980B-TX Adapter w/ Server Software ver. 2.0"}
Split-String "$(CurrentTitle)" "m" TitleTokens
set TitlePrefix = *($(TitleTokens), 1)
set FullTitle = $(TitlePrefix)"m EtherLink Server 10/100 PCI NIC"
SetRegValue $(DriverRootKey) {"Title", 0, $(!REG_VT_SZ), $(FullTitle)}
Endif
Endif
Endif
CloseRegKey $(DriverRootKey)
CloseRegKey $(DriverNetRulesKey)
EndForListDo
endif
CloseRegKey $(SWNWCardsKey)
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
ifstr(i) $(ServicesKey) != ""
EnumRegKey $(ServicesKey) DriverList
ForListDo $(DriverList)
set Driver = *($($), 1)
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\"$(Driver)"\Parameters" +
$(!REG_KEY_ALL_ACCESS) DriverKey
Ifstr(i) $(DriverKey) != "" ; key exists
Split-String "$(Driver)" "n" DriverTokens
set DriverName = *($(DriverTokens), 1)
ifstr(i) $(Driver) != "El980n4"
ifstr(i) $(DriverName) == "El980"
;;; This is a 980-Series 3Com driver. The name must be changed to uppercase
;;; Changes to support hot plug for I.B.M.
;;; First, save the old settings for this driver instance
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\"$(Driver) +
$(!REG_KEY_ALL_ACCESS) DriverInstanceKey
Ifstr(i) $(DriverInstanceKey) != "" ; key exists
GetRegValue $(DriverInstanceKey) "ErrorControl" SavedErrorControl
GetRegValue $(DriverInstanceKey) "Start" SavedStart
GetRegValue $(DriverInstanceKey) "Type" SavedType
OpenRegKey $(DriverInstanceKey) "" "Linkage" $(!REG_KEY_ALL_ACCESS) DriverLinkageKey
Ifstr(i) $(DriverLinkageKey) != "" ; key exists
GetRegValue $(DriverLinkageKey) "Bind" SavedBind
GetRegValue $(DriverLinkageKey) "Export" SavedExport
GetRegValue $(DriverLinkageKey) "Route" SavedRoute
OpenRegKey $(DriverLinkageKey) "" "Disabled" $(!REG_KEY_ALL_ACCESS) DriverLinkageDisabledKey
Ifstr(i) $(DriverLinkageDisabledKey) != "" ; key exists
GetRegValue $(DriverLinkageDisabledKey) "Bind" SavedDisabledBind
GetRegValue $(DriverLinkageDisabledKey) "Export" SavedDisabledExport
GetRegValue $(DriverLinkageDisabledKey) "Route" SavedDisabledRoute
endif
endif
OpenRegKey $(DriverInstanceKey) "" "Parameters" $(!REG_KEY_ALL_ACCESS) DriverParametersKey
Ifstr(i) $(DriverParametersKey) != "" ; key exists
GetRegValue $(DriverParametersKey) "ADAPTERNUMBER" SavedADAPTERNUMBER
GetRegValue $(DriverParametersKey) "AdapterSeq" SavedAdapterSeq
GetRegValue $(DriverParametersKey) "Base_Mac_Address" SavedBaseMacAddress
GetRegValue $(DriverParametersKey) "BusNumber" SavedBusNumber
GetRegValue $(DriverParametersKey) "BusType" SavedBusType
GetRegValue $(DriverParametersKey) "CardType" SavedCardType
GetRegValue $(DriverParametersKey) "ErrorTolerance" SavedErrorTolerance
GetRegValue $(DriverParametersKey) "MediaType" SavedMediaType
GetRegValue $(DriverParametersKey) "Network_Address" SavedNetworkAddress
GetRegValue $(DriverParametersKey) "SamplingRatio" SavedSamplingRatio
GetRegValue $(DriverParametersKey) "SamplingWindow" SavedSamplingWindow
GetRegValue $(DriverParametersKey) "SelfCheckLevel" SavedSelfCheckLevel
GetRegValue $(DriverParametersKey) "Slot" SavedSlot
GetRegValue $(DriverParametersKey) "SlotNumber" SavedSlotNumber
OpenRegKey $(DriverParametersKey) "" "Tcpip" $(!REG_KEY_ALL_ACCESS) DriverTCPIPKey
Ifstr(i) $(DriverTCPIPKey) != "" ; key exists
GetRegValue $(DriverTCPIPKey) "DefaultGateway" SavedDefaultGateway
GetRegValue $(DriverTCPIPKey) "EnableDHCP" SavedEnableDHCP
GetRegValue $(DriverTCPIPKey) "IPAddress" SavedIPAddress
GetRegValue $(DriverTCPIPKey) "IPInterfaceContext" SavedIPInterfaceContext
GetRegValue $(DriverTCPIPKey) "IPInterfaceContextMax" SavedIPInterfaceContextMax
GetRegValue $(DriverTCPIPKey) "LLInterface" SavedLLInterface
GetRegValue $(DriverTCPIPKey) "PPTPFiltering" SavedPPTPFiltering
GetRegValue $(DriverTCPIPKey) "RawIPAllowedProtocols" SavedRawIPAllowedProtocols
GetRegValue $(DriverTCPIPKey) "SubnetMask" SavedSubnetMask
GetRegValue $(DriverTCPIPKey) "TCPAllowedPorts" SavedTCPAllowedPorts
GetRegValue $(DriverTCPIPKey) "UDPAllowedPorts" SavedUDPAllowedPorts
GetRegValue $(DriverTCPIPKey) "UseZeroBroadcast" SavedUseZeroBroadcast
endif
endif
endif
CloseRegKey $(DriverTCPIPKey)
CloseRegKey $(DriverParametersKey)
CloseRegKey $(DriverLinkageDisabledKey)
CloseRegKey $(DriverLinkageKey)
CloseRegKey $(DriverInstanceKey)
;;; Delete this driver instance and recreate it with all caps
DeleteRegTree $(ServicesKey) $(Driver)
;; Convert the driver instance name to all caps
Split-String "$(Driver)" "n" DriverNameTokens
set DriverNameSuffix = *($(DriverNameTokens), 3)
set DriverNameAsCAPS = "EL980N"$(DriverNameSuffix)
CreateRegKey $(ServicesKey) {$(DriverNameAsCAPS), 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewDriverKey
ifstr $(NewDriverKey) != ""
SetRegValue $(NewDriverKey), {ErrorControl, $(NoTitle),$(!REG_VT_DWORD),*($(SavedErrorControl), 4)}
SetRegValue $(NewDriverKey), {Start, $(NoTitle),$(!REG_VT_DWORD),*($(SavedStart), 4)}
SetRegValue $(NewDriverKey), {Type, $(NoTitle),$(!REG_VT_DWORD),*($(SavedType), 4)}
CreateRegKey $(NewDriverKey) {"Linkage", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewDriverLinkageKey
ifstr $(NewDriverLinkageKey) != ""
;;; Add in the values for the Linkage key
SetRegValue $(NewDriverLinkageKey) {Bind,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedBind), 4)}
SetRegValue $(NewDriverLinkageKey) {Export,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedExport), 4)}
SetRegValue $(NewDriverLinkageKey) {Route,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedRoute), 4)}
CreateRegKey $(NewDriverLinkageKey) {"Disabled", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewDriverLinkageDisabledKey
ifstr $(NewDriverLinkageDisabledKey) != ""
;;; Add in the values for the Disabled key
SetRegValue $(NewDriverLinkageDisabledKey) {Bind,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedDisabledBind), 4)}
SetRegValue $(NewDriverLinkageDisabledKey) {Export,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedDisabledExport), 4)}
SetRegValue $(NewDriverLinkageDisabledKey) {Route,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedDisabledRoute), 4)}
endif
endif
CreateRegKey $(NewDriverKey) {"Parameters", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewDriverParamKey
ifstr $(NewDriverParamKey) != ""
SetRegValue $(NewDriverParamKey), {VersionNo, $(NoTitle),$(!REG_VT_DWORD),20}
SetRegValue $(NewDriverParamKey), {shdinformmsgs, $(NoTitle),$(!REG_VT_DWORD),0}
SetRegValue $(NewDriverParamKey), {shdwarnmsgs, $(NoTitle),$(!REG_VT_DWORD),0}
SetRegValue $(NewDriverParamKey), {shderrormsgs, $(NoTitle),$(!REG_VT_DWORD),1}
SetRegValue $(NewDriverParamKey) {"FlowControl", 0, $(!REG_VT_SZ), "YES"}
SetRegValue $(NewDriverParamKey) {"WakeOnMagic", 0, $(!REG_VT_SZ), "YES"}
SetRegValue $(NewDriverParamKey) {"WakeOnLink" , 0, $(!REG_VT_SZ), "NO"}
SetRegValue $(NewDriverParamKey) {"RWUMagic", 0, $(!REG_VT_SZ), "ENABLE"}
SetRegValue $(NewDriverParamKey), {ADAPTERNUMBER, $(NoTitle),$(!REG_VT_DWORD),*($(SavedADAPTERNUMBER), 4)}
SetRegValue $(NewDriverParamKey), {AdapterSeq, $(NoTitle),$(!REG_VT_DWORD),*($(SavedAdapterSeq), 4)}
SetRegValue $(NewDriverParamKey) {"Base_Mac_Address" , 0, $(!REG_VT_SZ), *($(SavedBaseMacAddress), 4)}
SetRegValue $(NewDriverParamKey), {BusNumber, $(NoTitle),$(!REG_VT_DWORD),*($(SavedBusNumber), 4)}
SetRegValue $(NewDriverParamKey), {BusType, $(NoTitle),$(!REG_VT_DWORD),*($(SavedBusType), 4)}
SetRegValue $(NewDriverParamKey), {CardType, $(NoTitle),$(!REG_VT_DWORD),*($(SavedCardType), 4)}
SetRegValue $(NewDriverParamKey) {"ErrorTolerance" , 0, $(!REG_VT_SZ), *($(SavedErrorTolerance), 4)}
SetRegValue $(NewDriverParamKey), {MediaType, $(NoTitle),$(!REG_VT_DWORD),*($(SavedMediaType), 4)}
SetRegValue $(NewDriverParamKey) {"Network_Address" , 0, $(!REG_VT_SZ), *($(SavedNetworkAddress), 4)}
SetRegValue $(NewDriverParamKey), {SamplingRatio, $(NoTitle),$(!REG_VT_DWORD),*($(SavedSamplingRatio), 4)}
SetRegValue $(NewDriverParamKey), {SamplingWindow, $(NoTitle),$(!REG_VT_DWORD),*($(SavedSamplingWindow), 4)}
SetRegValue $(NewDriverParamKey) {"SelfCheckLevel" , 0, $(!REG_VT_SZ), *($(SavedSelfCheckLevel), 4)}
SetRegValue $(NewDriverParamKey), {Slot, $(NoTitle),$(!REG_VT_DWORD),*($(SavedSlot), 4)}
SetRegValue $(NewDriverParamKey), {SlotNumber, $(NoTitle),$(!REG_VT_DWORD),*($(SavedSlotNumber), 4)}
CreateRegKey $(NewDriverParamKey) {"Tcpip", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewDriverTCPIPKey
ifstr $(NewDriverTCPIPKey) != ""
;;; Add in the values for the Tcpip key
SetRegValue $(NewDriverTCPIPKey) {DefaultGateway,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedDefaultGateway), 4)}
SetRegValue $(NewDriverTCPIPKey), {EnableDHCP, $(NoTitle),$(!REG_VT_DWORD),*($(SavedEnableDHCP), 4)}
SetRegValue $(NewDriverTCPIPKey) {IPAddress,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedIPAddress), 4)}
SetRegValue $(NewDriverTCPIPKey), {IPInterfaceContext, $(NoTitle),$(!REG_VT_DWORD),*($(SavedIPInterfaceContext), 4)}
SetRegValue $(NewDriverTCPIPKey), {IPInterfaceContextMax, $(NoTitle),$(!REG_VT_DWORD),*($(SavedIPInterfaceContextMax), 4)}
SetRegValue $(NewDriverTCPIPKey) {"LLInterface" , 0, $(!REG_VT_SZ), *($(SavedLLInterface), 4)}
SetRegValue $(NewDriverTCPIPKey), {PPTPFiltering, $(NoTitle),$(!REG_VT_DWORD),*($(SavedPPTPFiltering), 4)}
SetRegValue $(NewDriverTCPIPKey) {RawIPAllowedProtocols,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedRawIPAllowedProtocols), 4)}
SetRegValue $(NewDriverTCPIPKey) {SubnetMask,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedSubnetMask), 4)}
SetRegValue $(NewDriverTCPIPKey) {TCPAllowedPorts,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedTCPAllowedPorts), 4)}
SetRegValue $(NewDriverTCPIPKey) {UDPAllowedPorts,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedUDPAllowedPorts), 4)}
SetRegValue $(NewDriverTCPIPKey), {UseZeroBroadcast, $(NoTitle),$(!REG_VT_DWORD),*($(SavedUseZeroBroadcast), 4)}
endif
endif
endif
;;; End of key recreation
;;; END OF MASSIVE CHANGES
;;; End of changes for hot plug
Endif
Else
;;; Full driver name = El980n4 -> Change this to uppercase
;;; Changes to support hot plug for I.B.M.
;;; Save all parameters to memory before recreating the keys
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\el980n4" $(!REG_KEY_ALL_ACCESS) RootSvcsKey
Ifstr(i) $(RootSvcsKey) != "" ; key exists
OpenRegKey $(RootSvcsKey) "" "Security" $(!REG_KEY_ALL_ACCESS) RootSvcsSecurityKey
ifstr(i) $(RootSvcsSecurityKey) != ""
GetRegValue $(RootSvcsSecurityKey) "Security" SavedSecurity
CloseRegKey $(RootSvcsSecurityKey)
endif
OpenRegKey $(RootSvcsKey) "" "Linkage" $(!REG_KEY_ALL_ACCESS) RootSvcsLinkageKey
ifstr(i) $(RootSvcsLinkageKey) != ""
GetRegValue $(RootSvcsLinkageKey) "Bind" SavedBind
GetRegValue $(RootSvcsLinkageKey) "Export" SavedExport
GetRegValue $(RootSvcsLinkageKey) "Route" SavedRoute
OpenRegKey $(RootSvcsLinkageKey) "" "Disabled" $(!REG_KEY_ALL_ACCESS) RootSvcsLinkageDisabledKey
ifstr(i) $(RootSvcsLinkageDisabledKey) != ""
GetRegValue $(RootSvcsLinkageDisabledKey) "Bind" SavedDisabledBind
GetRegValue $(RootSvcsLinkageDisabledKey) "Export" SavedDisabledExport
GetRegValue $(RootSvcsLinkageDisabledKey) "Route" SavedDisabledRoute
CloseRegKey $(RootSvcsLinkageDisabledKey)
endif
CloseRegKey $(RootSvcsLinkageKey)
endif
DeleteRegTree $(ServicesKey) "el980n4"
;;; Start of key recreation
CreateRegKey $(ServicesKey) {"EL980N4", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewEL980N4Key
ifstr $(NewEL980N4Key) != ""
SetRegValue $(NewEL980N4Key), {ErrorControl, $(NoTitle),$(!REG_VT_DWORD),0}
SetRegValue $(NewEL980N4Key), {Start, $(NoTitle),$(!REG_VT_DWORD),2}
SetRegValue $(NewEL980N4Key), {Type, $(NoTitle),$(!REG_VT_DWORD),1}
SetRegValue $(NewEL980N4Key) {"DisplayName", 0, $(!REG_VT_SZ), "3Com 3C980C Adapter Driver"}
SetRegValue $(NewEL980N4Key) {"ImagePath", 0, $(!REG_VT_SZ), "\SystemRoot\System32\drivers\el98xn4.sys"}
SetRegValue $(NewEL980N4Key) {"Group", 0, $(!REG_VT_SZ), "NDIS"}
CreateRegKey $(NewEL980N4Key) {"Linkage", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewEL980N4LinkageKey
ifstr $(NewEL980N4LinkageKey) != ""
;;; Add in the values for the Linkage key
SetRegValue $(NewEL980N4LinkageKey) {Bind,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedBind), 4)}
SetRegValue $(NewEL980N4LinkageKey) {Export,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedExport), 4)}
SetRegValue $(NewEL980N4LinkageKey) {Route,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedRoute), 4)}
CreateRegKey $(NewEL980N4LinkageKey) {"Disabled", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewEL980N4LinkageDisabledKey
ifstr $(NewEL980N4LinkageDisabledKey) != ""
;;; Add in the values for the Disabled key
SetRegValue $(NewEL980N4LinkageDisabledKey) {Bind,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedDisabledBind), 4)}
SetRegValue $(NewEL980N4LinkageDisabledKey) {Export,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedDisabledExport), 4)}
SetRegValue $(NewEL980N4LinkageDisabledKey) {Route,$(NoTitle),$(!REG_VT_MULTI_SZ),*($(SavedDisabledRoute), 4)}
endif
endif
CreateRegKey $(NewEL980N4Key) {"Parameters", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewEL980N4ParamKey
ifstr $(NewEL980N4ParamKey) != ""
set WakeOnLan = YES
set WakeOnLink = NO
set ValueEnable = ENABLE
Set NewValueList = {{WakeOnMagic,$(NoTitle),$(!REG_VT_SZ),$(WakeOnLan)},+
{WakeOnLink,$(NoTitle),$(!REG_VT_SZ),$(WakeOnLink)},+
{RWUMagic,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)},+
{FLOWCONTROL,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}}
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\EL980N4\Parameters" +
$(!REG_KEY_ALL_ACCESS) NewSoftParameterKey
ifstr $(NewSoftParameterKey) != ""
Shell $(UtilityInf), AddValueList, $(NewSoftParameterKey), $(NewValueList)
CreateRegKey $(NewSoftParameterKey) {"3CDefault" , 0, GenericClass} "" +
$(!REG_KEY_ALL_ACCESS) "" KeyNt2
Set ThisValueList = {RWUMagic,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\EL980N4" $(!REG_KEY_ALL_ACCESS) NDKeyNt
ifstr $(KeyNt2) != ""
SetRegValue $(KeyNt2 ) $(ThisValueList)
CloseRegKey $(KeyNt2 )
endif
endif
CloseRegKey $(NewSoftParameterKey)
CloseRegKey $(NDKeyNt) ;l
endif
CreateRegKey $(NewEL980N4Key) {"Security", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewEL980N4SecurityKey
ifstr $(NewEL980N4SecurityKey) != ""
;;; Add in the values for the Security key
SetRegValue $(NewEL980N4SecurityKey) {Security,$(NoTitle),$(!REG_VT_BIN),*($(SavedSecurity), 4)}
endif
endif
;;; End of key recreation
endif
endif
;;; End of changes for hot plug
Endif
CloseRegKey $(DriverKey)
EndForListDo
endif
CloseRegKey $(SWel980n4Key)
CloseRegKey $(SWel980n4CVKey)
CloseRegKey $(SWel980n4NRKey)
CloseRegKey $(ServicesKey)
// *** DIAG SECTION USES TCAUM90X AND NOT TCAUM980X THISMAY CAUSE TROUBLE. WATCH FOR IT.
[DiagRegistry]
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(!REG_KEY_WRITE) SOFTKEY
OpenRegKey $(SOFTKEY) "" "3Com" $(!REG_KEY_WRITE) COMKEY
ifstr $(COMKEY) == ""
CreateRegKey $(SOFTKEY) {"3Com", 0, GenericClass} "" $(!REG_KEY_WRITE) "" COMKEY
endif
OpenRegKey $(COMKEY) "" "TCAUDIAG" $(!REG_KEY_WRITE) TCAUDIAGKEY
ifstr $(TCAUDIAGKEY) == ""
CreateRegKey $(COMKEY) {"TCAUDIAG", 0, GenericClass} "" $(!REG_KEY_WRITE) "" TCAUDIAGKEY
endif
OpenRegKey $(TCAUDIAGKEY) "" "TCAUM98X" $(!REG_KEY_WRITE) TCAUM90XKEY
ifstr $(TCAUM90XKEY) == ""
CreateRegKey $(TCAUDIAGKEY) {"TCAUM98X", 0, GenericClass} "" $(!REG_KEY_WRITE) "" TCAUM90XKEY
endif
SetRegValue $(TCAUM90XKEY) {"DriverNames", 0, $(!REG_VT_SZ), "3C90X.COM;EL90X.DOS;SYSTEM\EL98XN3.SYS;SYSTEM\EL98XN4.SYS"}
OpenRegKey $(TCAUM90XKEY) "" "Extensions" $(!REG_KEY_WRITE) ExtensionsKEY
ifstr $(ExtensionsKEY) == ""
CreateRegKey $(TCAUM90XKEY) {"Extensions", 0, GenericClass} "" $(!REG_KEY_WRITE) "" ExtensionsKEY
endif
OpenRegKey $(ExtensionsKEY) "" "DA" $(!REG_KEY_WRITE) DAKEY
ifstr $(DAKEY) == ""
CreateRegKey $(ExtensionsKEY) {"DA", 0, GenericClass} "" $(!REG_KEY_WRITE) "" DAKEY
endif
CloseRegKey $(SOFTKEY)
CloseRegKey $(COMKEY)
CloseRegKey $(TCAUDIAGKEY)
CloseRegKey $(TCAUM90XKEY)
CloseRegKey $(ExtensionsKEY)
CloseRegKey $(DAKEY)
return
[InstallOption]
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 $(FunctionTitle)
set to = Begin
set from = Begin
set CommonStatus = STATUS_SUCCESSFUL
EndWait
Begin = +
;*********** add this to check correct platform supported********
ifstr(i) $(!STF_PLATFORM) == "Alpha"
set CommonStatus = STATUS_USERCANCEL
goto end
else-ifstr(i) $(!STF_PLATFORM) == "Alpha_AXP"
set CommonStatus = STATUS_USERCANCEL
goto end
endif
;*****************************************************************
set CurrentVersionValue = ""
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
Ifstr(i) $(KeyNt) != ""
GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue
Debug-Output "$(InfFile) : WinNT CurrentVersion ="$(CurrentVersionValue)
CloseRegKey $(KeyNt)
Endif
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
set NDIS_VER = NDIS4
else
set NDIS_VER = NDIS3
endif
read-syms DriverConstants$(NDIS_VER)
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT310VersionConstant)
Debug-Output "$(InfFile) : Configureadapter"
set Error = "Windows NT v3.10 is not support by this product"
goto fatal
endif
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)
ifstr(i) $(Install_On_Server) == "YES"
RunProgram ExitCode "Windows Directory" "" srv_conf.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)
else
set CommonStatus = STATUS_USERCANCEL
endif
goto end
else-Ifstr(i) $(ProdKeyName) == $(!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
Debug-Output "$(InfFile) : =================================================="
Debug-Output "$(InfFile) : STF_CWDIR is: "$(!STF_CWDIR)
Debug-Output "$(InfFile) : STF_SRCDIR is: "$(!STF_SRCDIR)
Debug-Output "$(InfFile) : STF_LANGUAGE is: "$(!STF_LANGUAGE)
Debug-Output "$(InfFile) : Option is: "$(Option)
Debug-Output "$(InfFile) : !STF_NCN_InstallMode is:"$(!NTN_InstallMode)
Debug-Output "$(InfFile) : !STF_NCDETECT is: "$(!STF_NCDETECT)
Debug-Output "$(InfFile) : !STF_NCOPTION is: "$(!STF_NCOPTION)
Debug-Output "$(InfFile) : !STF_NCDETCARD is: "$(!STF_NCDETCARD)
Debug-Output "$(InfFile) : !STF_NCDETINFO is: "$(!STF_NCDETINFO)
Debug-Output "$(InfFile) : !STF_GUI_UNATTENDED is: "$(!STF_GUI_UNATTENDED)
Debug-Output "$(InfFile) : !STF_BusType is $(!STF_BUSTYPE)"
Debug-Output "$(InfFile) : !STF_BusTypeList is $(!STF_BUSTYPELIST)"
Debug-Output "$(InfFile) : =================================================="
set from = $(fatal)
set to = $(fatal)
goto $(StartLabel)
installadapter = +
Debug-Output "$(InfFile) : Installadapter"
OpenRegKey $(!REG_H_LOCAL) "" $(ProdKeyName) $(!REG_KEY_READ) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
ifstr(i) !(NTN_RegBase) == $(ProdKeyName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error: cannot get an error string."
goto ShellCodeError
endif
goto end
endif
Endif
Goto adapteroptions
configureadapter = +
Debug-Output "$(InfFile) : Configureadapter"
set Error = "Cannot configure the software component"
goto fatal
adapteroptions = +
Debug-Output "$(InfFile) : Adapteroptions"
set from = adapteroptions
ifstr(i) $(!NTN_InstallMode) == configure
goto updateparameters
endif
installproduct =+
install "Install-OTHER"
Debug-Output "$(InfFile) : installproduct"
StartWait
set AdapterList = $($R1)
Debug-Output "$(InfFile) : About to look for 3Com PCI Cards"
set TargetVersion = *($(CurrentVersionValue),4)
Debug-Output "$(InfFile) : Current Version:"$(TargetVersion)
ifstr $(TargetVersion) == $(NT350VersionConstant)
Debug-Output "Running on WindowsNT 3.50"
set Version350 = $(TRUE)
else
Debug-Output "Running on WindowsNT 3.51 or higher"
set Version350 = $(FALSE)
endif
ifint $(Version350) == $(TRUE)
Debug-Output "Running on WindowsNT v3.50, Not using PCI Detection!!!"
ifstr $(!STF_GUI_UNATTENDED) == "YES"
Debug-Output "$(InfFile) : Running in GUI unattended mode"
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),0, XXXXX}}
Debug-Output "$(InfFile) : BusInterfaceType = $(BusInterfaceType)"
Debug-Output "$(InfFile) : BusNumber = $(BusNumber)"
else ;;; GUI_UNATTENDED=NO
Debug-Output "$(InfFile) : Running 3.50 Bus Dialog"
set BusInterfaceType = 5
set BusNumber = 0
set NTDetected = $(FALSE)
Shell $(UtilityInf),GetBusTypeDialog,$(ProdHWXXXXXDesc) $(BusInterfaceType) $(BusNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error."
goto ShellCodeError
endif
set BusInterfaceType = $($R1)
set BusNumber = $($R2)
set AdapterList = {{$(Option),0, XXXXX}}
Debug-Output "$(InfFile) : BusInterfaceType = $(BusInterfaceType)"
Debug-Output "$(InfFile) : BusNumber = $(BusNumber)"
endif ;;; end check GUI_UNATTENDED
else ;;; Version350=FALSE
Debug-Output "$(InfFile) : Running 3.51 or higher using PCI Dectection"
set NTDetected = $(TRUE)
set Vendor = 4279
set CFIDList = $(CFIDList)
Debug-Output "$(InfFile) : VendorID = $(Vendor)"
Debug-Output "$(InfFile) : CFIDList = $(CFIDList)"
set AdapterList = {}
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) == {}
set Error = $(CANNOT_FIND_ANY_CARD)
set CommonStatus = USER_CANCEL
set from = end
goto nonfatal
endif
endif
set ToInstallList = {}
Debug-Output "$(InfFile) : Adapterlist = $(AdatperList)"
ForListDo $(AdapterList)
ifint $(NTDetected) == $(TRUE)
set DetectedBusNum = *($($),1)
set DetectedSlotNum = *($($),2)
set DeviceID = *($($),3)
; 1.) Call Executable to populate the reg key "SOFTWARE\3Com\PCI_DATA" with the PCI data the current instance of the NIC
RunProgram ExitCode "" "" $(SrcDir)PCI_DATA.EXE /$(DetectedBusNum) /$(DetectedSlotNum)
; 2.) Check open key for the data of interest. *** DeviceID, SubSystemID, SubVendorID, and VendorID are present
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\PCI_DATA" $(!REG_KEY_ALL_ACCESS) PCI_DATA_KEY
GetRegValue $(PCI_DATA_KEY) "DeviceID" Array_DeviceID
GetRegValue $(PCI_DATA_KEY) "VendorID" Array_VendorID
GetRegValue $(PCI_DATA_KEY) "SubSystemID" Array_SubSystemID
GetRegValue $(PCI_DATA_KEY) "SubVendorID" Array_SubVendorID
Set Value_DeviceID = *($(Array_DeviceID),4)
Set Value_VendorID = *($(Array_VendorID),4)
Set Value_SubSystemID = *($(Array_SubSystemID),4)
Set Value_SubVendorID = *($(Array_SubVendorID),4)
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected DeviceID is ("$(Value_DeviceID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected VendorID is ("$(Value_VendorID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubSystemID is ("$(Value_SubSystemID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubVendorID is ("$(Value_SubVendorID)")"
; 3.) Stepthrough logic to determine card type
; 3Com Product
ifstr(i) $(Value_VendorID) == "10B7"
; 3C980B-TX **************************************************************
ifstr(i) $(Value_DeviceID) == "9800"
set Product_Hardware_Title = $(ProdHW38912Title)
set Product_Hardware_Desc = $(ProdHW38912Desc)
endif
; 3C980C-TXM *************************************************************
ifstr(i) $(Value_DeviceID) == "9805"
ifstr(i) $(Detected_SubSystemID) != "1201"
ifstr(i) $(Value_SubSystemID) != "1202"
set Product_Hardware_Title = $(ProdHW38917Title)
set Product_Hardware_Desc = $(ProdHW38917Desc)
endif
endif
endif
; 3C982 Multi Cards
; 3C982-TXM (Port A) ******************************************************
ifstr(i) $(Value_DeviceID) == "9805"
ifstr(i) $(Value_SubSystemID) == "1201"
set Product_Hardware_Title = $(ProdHW38917HydraATitle)
set Product_Hardware_Desc = $(ProdHW38917HydraDescription)
endif
endif
; 3C982-TXM (Port B) *****************************************************
ifstr(i) $(Value_DeviceID) == "9805"
ifstr(i) $(Value_SubSystemID) == "1202"
set Product_Hardware_Title = $(ProdHW38917HydraBTitle)
set Product_Hardware_Desc = $(ProdHW38917HydraDescription)
endif
endif
endif
CloseRegKey $(PCI_DATA_KEY)
; 980X CARD
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), +
$(DetectedSlotNum), $(Product_Hardware_Desc), "EL980N4"
;**** DO THIS BECAUSE WE NOW USE NEW NAMES FOR OUR CARDS, CHECK OLD NAME
ifstr(i) $($R1) != "YES" ;not installed yet, not sure, check oldnames
; Take no action.
else ;already installed with current name on ECD2.1
goto endchecking
endif
AddToNotList=+
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
endif
;ifstr(i) $(ToInstallList) == {} ; COMMENT THIS OUT TO INSTALL MULTIPLE NIC at a time
ifstr(i) $($R1) != "YES"
set ToInstallList = >($(ToInstallList), $($))
endif
;endif
endchecking =+
endif
EndForListDo
ifstr(i) $(ToInstallList) == {}
set Error = $(CANNOT_FIND_ANY_UNINSTALLED_CARD)
set CommonStatus = USER_CANCEL
set from = end
goto nonfatal
endif
ForListDo $(ToInstallList)
set-add AdapterSeq = $(AdapterSeq) , 1
set DetectedBusNum = *($($),1)
set DetectedSlotNum = *($($),2)
set DeviceID = *($($),3)
set BoomDetected = FALSE
set NonBoomDetected = FALSE
; 1.) Call Executable to populate the reg key "SOFTWARE\3Com\PCI_DATA" with the PCI data the current instance of the NIC
RunProgram ExitCode "" "" $(SrcDir)PCI_DATA.EXE /$(DetectedBusNum) /$(DetectedSlotNum)
; 2.) Check open key for the data of interest. *** DeviceID, SubSystemID, SubVendorID, and VendorID are present
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\PCI_DATA" $(!REG_KEY_ALL_ACCESS) PCI_DATA_KEY
GetRegValue $(PCI_DATA_KEY) "DeviceID" Array_DeviceID
GetRegValue $(PCI_DATA_KEY) "VendorID" Array_VendorID
GetRegValue $(PCI_DATA_KEY) "SubSystemID" Array_SubSystemID
GetRegValue $(PCI_DATA_KEY) "SubVendorID" Array_SubVendorID
Set Value_DeviceID = *($(Array_DeviceID),4)
Set Value_VendorID = *($(Array_VendorID),4)
Set Value_SubSystemID = *($(Array_SubSystemID),4)
Set Value_SubVendorID = *($(Array_SubVendorID),4)
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected DeviceID is ("$(Value_DeviceID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected VendorID is ("$(Value_VendorID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubSystemID is ("$(Value_SubSystemID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubVendorID is ("$(Value_SubVendorID)")"
; 3.) Stepthrough logic to determine card type
; 3Com Product
ifstr(i) $(Value_VendorID) == "10B7"
; 3C980B-TX **************************************************************
ifstr(i) $(Value_DeviceID) == "9800"
set Product_Hardware_Title = $(ProdHW38912Title)
set Product_Hardware_Desc = $(ProdHW38912Desc)
endif
; 3C980C-TXM *************************************************************
ifstr(i) $(Value_DeviceID) == "9805"
ifstr(i) $(Detected_SubSystemID) != "1201"
ifstr(i) $(Value_SubSystemID) != "1202"
set Product_Hardware_Title = $(ProdHW38917Title)
set Product_Hardware_Desc = $(ProdHW38917Desc)
endif
endif
endif
; 3C982 Multi Cards
; 3C982-TXM (Port A) ******************************************************
ifstr(i) $(Value_DeviceID) == "9805"
ifstr(i) $(Value_SubSystemID) == "1201"
set Product_Hardware_Title = $(ProdHW38917HydraATitle)
set Product_Hardware_Desc = $(ProdHW38917HydraDescription)
endif
endif
; 3C982-TXM (Port B) *****************************************************
ifstr(i) $(Value_DeviceID) == "9805"
ifstr(i) $(Value_SubSystemID) == "1202"
set Product_Hardware_Title = $(ProdHW38917HydraBTitle)
set Product_Hardware_Desc = $(ProdHW38917HydraDescription)
endif
endif
endif
; The only 2 sequences that scan the PCI_DATA RegKey are done so don't just close the key: destroy the PCI_DATA key
; and the full tree beneath it.
DeleteRegTree $(PCI_DATA_KEY) ""
;3C98X CARD
set CorrectProdSWDesc = $(ProdSWDesc)
set CorrectProdSWTitle = $(ProdSWTitle)
set CorrectProdHWName = $(ProdHWName)
set CorrectProdSWName = $(ProdSWName)
set CorrectNetRuleSWType = $(NetRuleSWType)
set CorrectNetRuleSWBindForm = $(NetRuleSWBindForm)
set CorrectNetRuleSWClass = $(NetRuleSWClass)
set CorrectNetRuleSWBindable = $(NetRuleSWBindable)
set CorrectNetRuleHWBindForm = $(NetRuleHWBindForm)
set CorrectNetRuleHWType = $(NetRuleHWType)
set CorrectNetRuleHWClass = $(NetRuleHWClass)
set CorrectProdKeyName = $(ProdKeyName)
set CorrectParamKeyName = $(ParamKeyName)
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
set CorrectNetEventDLL = $(ND4NetEventDLL)
set CorrectProdSWImagePath = $(ND4ProdSWImagePath)
set CorrectProdSWUpgradePath = $(ND4ProdSWUpgradePath)
else
set CorrectNetEventDLL = $(ND3NetEventDLL)
set CorrectProdSWImagePath = $(ND3ProdSWImagePath)
set CorrectProdSWUpgradePath = $(ND3ProdSWUpgradePath)
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(CorrectProdHWName) $(!REG_KEY_READ) KeyNt
CloseRegKey $(KeyNt)
Ifstr(i) $(KeyNt) == "" ; Begin check Key=null
Debug-Output "$(InfFile) : AddSoftwareComponent"
Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
$(CorrectProdSWName), +
$(CorrectProdSWName), +
$(CorrectProdSWTitle), $(STF_CONTEXTINFNAME), +
$(CorrectProdSWImagePath), "kernel", "NDIS", {}, "",+
$(CorrectNetEventDLL)
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
;DEBUG:
; ifstr(i) $(BoomCard) == TRUE
; Set DlgText = "bOOM CARD"
; else
; Set DlgText = "90xbc CARD"
; endif
; Shell "Done Add Software comp to get keyhandle"
; Set DlgText = "firstDB "$(CorrectProdHWName)" "$(CorrectProdSWName)
;END DEBUG
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
Set SoftServiceKey = $($R3)
Set SoftParameterKey = $($R4)
Set SoftLinkageKey = $($R5)
set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SWType)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMajorVer)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMinorVer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWDesc)},+
{Review,$(NoTitle),$(!REG_VT_DWORD),$(ProdReview)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWName)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)},+
{EDVersion,$(NoTitle),$(!REG_VT_SZ),$(EtherDiskVersion)}}
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),$(CorrectNetRuleSWType)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSWUse)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetRuleSWBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(CorrectNetRuleSWClass)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(CorrectNetRuleSWBindable)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(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
;********** Add parameter for driver *************************
set WakeOnLan = YES
set WakeOnLink = NO
set ValueEnable = ENABLE
Set NewValueList = {{RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)},+
{FLOWCONTROL,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}}
Shell $(UtilityInf), AddValueList, $(SoftParameterKey), $(NewValueList)
CreateRegKey $(SoftParameterKey) {"3CDefault" , 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) +
"" KeyNt2
;;;
Set ThisValueList = {RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProdSWName) $(!REG_KEY_ALL_ACCESS) NDKeyNt
ifstr $(KeyNt2) != ""
SetRegValue $(KeyNt2 ) $("ThisValueList")
CloseRegKey $(KeyNt2 )
endif
;;;
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
goto fatalregistry
endif
;*************************************************************
endif ; end check Key=null
Debug-Output "$(InfFile) : DetectedBusNumber = $(DetectedBusNum)"
Debug-Output "$(InfFile) : DetectedSlotNum = $(DetectedSlotNum)"
Debug-Output "$(InfFile) : Installing Card at $(DetectedBusNum):$(DetectedSlotNum)!"
Shell $(UtilityInf), AddHardwareComponent, $(CorrectProdHWName),$(STF_CONTEXTINFNAME),$(CorrectProdKeyName)
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)"] "$(ProdHW$(DeviceID)Title)},+
; {Description,$(NoTitle),$(!REG_VT_SZ),$(ProdHW$(DeviceID)Desc)},+
; {ProductName,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdHWName)},+
; {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
; {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)},+
; {EDVersion,$(NoTitle),$(!REG_VT_SZ),$(EtherDiskVersion)},+
; }
set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(Product_Hardware_Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(Product_Hardware_Desc)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdHWName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)},+
{EDVersion,$(NoTitle),$(!REG_VT_SZ),$(EtherDiskVersion)},+
}
; Workaround: Sometimes AddHardwareComponent can't return correct handle for HardNetCardKey
; We have to manually open the key using adapter number returned from AddHardwareComponent
; might have to do the same for HardParameterKey
OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKey)$($R4) $(!REG_KEY_SET_VALUE) HardNetCardKey
; end workaround
Shell $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
;set RegistryErrorIndex = $($R0)
;Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
;EndWait
;goto fatalregistry
;endif
set BusTypeNum = 5
set CardType = 2
; Set the card type to Type 2 as none of the device IDs below are supported under this product
; ifstr(i) $(DeviceID) == "36944"
; ;set CardType = 0
; else-ifstr(i) $(DeviceID) == "36945"
; ;set CardType = 0
; else-ifstr(i) $(DeviceID) == "36949"
; set CardType = 0
; else
; set CardType = 2
; endif
ifint $(NTDetected) == $(TRUE)
set BusNumber = $(DetectedBusNum)
set SlotNum = $(DetectedSlotNum)
set BusInterfaceType = $(BusTypeNum)
Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
Set NewValueList = {{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
{ADAPTERNUMBER,$(NoTitle),$(!REG_VT_DWORD),$(AdapterNumber)} +
{AdapterSeq,$(NoTitle),$(!REG_VT_DWORD),$(AdapterSeq)}, +
{shdinformmsgs, $(NoTitle),$(!REG_VT_DWORD),0} +
{shdwarnmsgs, $(NoTitle),$(!REG_VT_DWORD),0} +
{shderrormsgs, $(NoTitle),$(!REG_VT_DWORD),1} +
{"FlowControl", 0, $(!REG_VT_SZ), "YES"} +
{"WakeOnMagic", 0, $(!REG_VT_SZ), "YES"} +
{"WakeOnLink" , 0, $(!REG_VT_SZ), "NO"} +
{"RWUMagic", 0, $(!REG_VT_SZ), "ENABLE"} +
{"SelfCheckLevel" , 0, $(!REG_VT_SZ), "Basic"} +
{SamplingWindow, $(NoTitle),$(!REG_VT_DWORD),1024} +
{SamplingRatio, $(NoTitle),$(!REG_VT_DWORD),50} +
{"ErrorTolerance" , 0, $(!REG_VT_SZ), "Medium"} +
{"Base_Mac_Address" , 0, $(!REG_VT_SZ), ""} +
{"Network_Address" , 0, $(!REG_VT_SZ), ""} +
{VersionNo, $(NoTitle),$(!REG_VT_DWORD),21} +
{Slot,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)}}
Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
Set NewValueList = {{SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)},+
{Media,$(NoTitle),$(!REG_VT_SZ),$(Hardware_Default)}}
Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
else ; NTDetected != TRUE
Set NewValueList = {+
{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
{Media,$(NoTitle),$(!REG_VT_SZ),$(Hardware_Default)}}
Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
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},+
}
Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
Shell $(UtilityInf), AddDefaultNetcardParameters, $(HardParameterKey)
endif
set TempProdName = """"$(CorrectProdHWName)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(CorrectNetRuleHWBindForm)
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetRuleHWType)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(CorrectNetRuleHWClass)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Debug-Output "$(InfFile) : HardwareRuleKey = $(NewValueList)"
Shell $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeEror
endif
;******************************************************************************************************************
;3CDefault
set ValueEnable = ENABLE
Set ThisValueList = {{RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)},+
{FLOWCONTROL,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}}
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(ThisValueList)
CreateRegKey $(HardParameterKey) {"3CDefault" , 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) +
"" KeyNt2
Set ThisValueList = {RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}
SetRegValue $(KeyNt2) $("ThisValueList")
;******************************************************************************************************************
CloseRegKey $(HardNetCardKey)
CloseRegKey $(HardNetRuleKey)
CloseRegKey $(HardParameterKey)
;*******************************************
;* Driver History Information *
;* The following code adds Driver History *
;* Information to the system registry *
;*******************************************
; Driver Information Entries
; These items will be set by IHV...
Set DriverMfgr = "3Com Corporation" ; IHV name
Set DriverVersionID = "2.47.0.0" ; The IHV driver package version
Set BaseDriverFileName = "EL98XN4.SYS" ; Key file for version check
Set BaseDriverFileVersion = "2.47.0.0" ; Version in Key file
; These items will be set to VENDOR values, and then set to OEM-specific by OEM
Set DriverOEM = "3Com Corporation" ; name of the OEM
Set DriverFamily = "NIC" ; device family (NIC, Storage, Video...)
Set DriverProduct = "???" ; Specific Name of device (chipset, for example)
Set DriverDescription = "EtherCD 2.1 Ndis4 Driver set" ; Description of device (product name, OS or system supported)
Set DriverOEMVersion = "2.47.0.0" ; OEM-specified version
; This section is added to all INFs to add registry entries for Driver Info.
set DriverInfoRegList = {"InstalledOptions",$(DriverOEM),$(DriverFamily),$(DriverMfgr),$(DriverProduct)}
set DriverInfoKey = "SOFTWARE"
OpenRegKey $(!REG_H_LOCAL) "" $(DriverInfoKey) $(!REG_KEY_CREATE_SUB_KEY) DriverInfoOldKeyHandle
ifstr $(DriverInfoOldKeyHandle) == ""
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "DriverInfo registry failed. Could not open HKLM\Software ("$(RegLastError)")"
set DriverInfoFailed = "FAIL"
else
ForListDo $(DriverInfoRegList)
Set NewDriverInfoKey = $(DriverInfoKey)"\"$($)
OpenRegKey $(!REG_H_LOCAL) "" $(NewDriverInfoKey) $(!REG_KEY_ALL_ACCESS) DriverInfoKeyHandle
ifstr(i) $(DriverInfoKeyHandle) == ""
CreateRegKey $(DriverInfoOldKeyHandle) {$($),0,GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" DriverInfoKeyHandle
ifstr $(DriverInfoKeyHandle) == ""
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "DriverInfo registry failed. Could not create key:"$($)" ("$(RegLastError)")"
set DriverInfoFailed = "FAIL"
endif
endif
CloseRegKey $(DriverInfoOldKeyHandle)
set DriverInfoOldKeyHandle = $(DriverInfoKeyHandle)
set DriverInfoKey = $(NewDriverInfoKey)
EndForListDo
endif
ifstr $(DriverInfoFailed) != "FAIL"
SetRegValue $(DriverInfoKeyHandle) {"Description",0,$(!REG_VT_SZ),$(DriverDescription)}
SetRegValue $(DriverInfoKeyHandle) {"CurrentVer",0,$(!REG_VT_SZ),$(DriverOEMVersion)}
SetRegValue $(DriverInfoKeyHandle) {"Ver_"$(DriverOEMVersion),0,$(!REG_VT_SZ),$(DriverVersionID)}
SetRegValue $(DriverInfoKeyHandle) {" BaseDriverFileName",0,$(!REG_VT_SZ),$( BaseDriverFileName)}
SetRegValue $(DriverInfoKeyHandle) {" BaseDriverFileVersion",0,$(!REG_VT_SZ),$(BaseDriverFileVersion)}
CloseRegKey $(DriverInfoKeyHandle)
endif
;*******************************************
;* End of Driver History Information *
;*******************************************
;******* CREATE DIAG REGISTRY FOR TOUCHDOWN SINCE WE SUPPORT IT **************
;
; Place an instance in the registry for each instance of the Nic card
;
;*****************************************************************************
set TrayIconList = {TCAUDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)}
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(CorrectProdSWName) $(!REG_KEY_ALL_ACCESS) NDKeyNt
ifstr $(NDKeyNt) != ""
SetRegValue $(NDKeyNt) $(TrayIconList)
CloseRegKey $(NDKeyNt)
endif
EndForListDo
;******* CREATE REGISTRY ENTRIES FOR COMPAQ HOT PLUG SUPPORT IF **************
; HOT PLUG CURRENTLY SUPPORTED ON THIS SERVER
;
; Place an instance in the registry for ONE instance of the Nic card. Not each
; instance
;
;*****************************************************************************
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Compaq\Cpqrcmc\ClassDLLs\NicMiniPort" $(!REG_KEY_WRITE) MiniPortKey
ifstr $(MiniPortKey) != ""
; Hot plug support currently installed on this server
CreateRegKey $(MiniPortKey) {"EL980N4", 0, GenericClass} "" $(!REG_KEY_WRITE) "" HotPlugServiceKey
SetRegValue $(HotPlugServiceKey), {BaseOIDAddress, $(NoTitle),$(!REG_VT_DWORD), 4278322176} ;; 0xFF020400 in Hex
SetRegValue $(HotPlugServiceKey), {SetOIDAddress, $(NoTitle),$(!REG_VT_DWORD), 4278321920} ;; 0xFF020300 in Hex
endif
CloseRegKey $(MiniPortKey)
CloseRegKey $(HotPlugServiceKey)
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\HotSrv\SupportedDevices" $(!REG_KEY_WRITE) SupportedDevicesKey
ifstr $(SupportedDevicesKey) != ""
CreateRegKey $(SupportedDevicesKey) {"10B7-9800-10B7-1000", 0, GenericClass} "" $(!REG_KEY_WRITE) "" 9800HotPlugKey
CreateRegKey $(SupportedDevicesKey) {"10B7-9805-10B7-1000", 0, GenericClass} "" $(!REG_KEY_WRITE) "" 9805HotPlugKey
;CreateRegKey $(SupportedDevicesKey) {"10B7-9805-10B7-1201", 0, GenericClass} "" $(!REG_KEY_WRITE) "" PortAHotPlugKey
;CreateRegKey $(SupportedDevicesKey) {"10B7-9805-10B7-1202", 0, GenericClass} "" $(!REG_KEY_WRITE) "" PortBHotPlugKey
SetRegValue $(9800HotPlugKey) {"FriendlyName", 0, $(!REG_VT_SZ), "3Com EtherLink Server 10/100 PCI NIC (3C980B-TX)"}
SetRegValue $(9800HotPlugKey) {"DriverService", 0, $(!REG_VT_SZ), "EL980N4"}
SetRegValue $(9805HotPlugKey) {"FriendlyName", 0, $(!REG_VT_SZ), "3Com EtherLink Server 10/100 PCI NIC (3C980C-TXM)"}
SetRegValue $(9805HotPlugKey) {"DriverService", 0, $(!REG_VT_SZ), "EL980N4"}
;SetRegValue $(PortAHotPlugKey) {"FriendlyName", 0, $(!REG_VT_SZ), "3Com EtherLink Server 10/100 Dual Port A"}
;SetRegValue $(PortAHotPlugKey) {"DriverService", 0, $(!REG_VT_SZ), "EL980N4"}
;SetRegValue $(PortBHotPlugKey) {"FriendlyName", 0, $(!REG_VT_SZ), "3Com EtherLink Server 10/100 Dual Port B"}
;SetRegValue $(PortBHotPlugKey) {"DriverService", 0, $(!REG_VT_SZ), "EL980N4"}
endif
CloseRegKey $(SupportedDevicesKey)
CloseRegKey $(9800HotPlugKey)
CloseRegKey $(9805HotPlugKey)
;CloseRegKey $(PortAHotPlugKey)
;CloseRegKey $(PortBHotPlugKey)
; End Add Compaq in hot plug support *******************************************
install "Install-SHD"
set TrayIconList = {TCAUDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)}
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG" $(!REG_KEY_ALL_ACCESS) NDKeyNt
ifstr $(NDKeyNt) == ""
CreateRegKey $(!REG_H_LOCAL) {"SOFTWARE\3Com\TCAUDIAG", 0, GenericClass} "" $(!REG_KEY_WRITE) "" NDKeyNt
endif
SetRegValue $(NDKeyNt) $(TrayIconList)
CloseRegKey $(NDKeyNt)
; Paul May - 12/08/99 6:27pm
;;; Add in entries to support the DA/Touchdown integration - REALNICS Key
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG\RealNICs" $(!REG_KEY_ALL_ACCESS) RealNICsKey
Ifstr(i) $(RealNICsKey) == "" ; key doesn't exist so create it
CreateRegKey $(!REG_H_LOCAL) {"SOFTWARE\3Com\TCAUDIAG\RealNICs", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" RealNICsKey
endif
Ifstr(i) $(RealNICsKey) != "" ; key exists
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
Ifstr(i) $(ServicesKey) != "" ; key exists
EnumRegKey $(ServicesKey) DriverList
ForListDo $(DriverList)
;;; Check whether any python driver instances are present still
;;; If not, remove Touchdown and delete some leftover files
set foundPythonInstance = FALSE
set Driver = *($($), 1)
Split-String "$(Driver)" "N" DriverTokens
set DriverName = *($(DriverTokens), 1)
ifstr(i) $(Driver) != "El980n4"
ifstr(i) $(DriverName) == "El980"
;;; We have found a Python-related key
set foundPythonInstance = TRUE
endif
endif
ifstr(i) $(Driver) != "El98xn4"
ifstr(i) $(DriverName) == "El98x"
;;; We have found a Python-related key
set foundPythonInstance = TRUE
endif
endif
Ifstr(i) $(foundPythonInstance) == "TRUE"
;; Add this driver instance name to the list of realNICs
SetRegValue $(RealNICsKey) {$(Driver), 0, $(!REG_VT_SZ), ""}
endif
set found3ComClientInstance = FALSE
Split-String "$(Driver)" "x" DriverTokens
set DriverName = *($(DriverTokens), 1)
ifstr(i) $(Driver) != "El90x"
ifstr(i) $(DriverName) == "El90"
;;; We have found a 3Com client-related key
set found3ComClientInstance = TRUE
endif
endif
Split-String "$(Driver)" "d" DriverTokens
set DriverName = *($(DriverTokens), 1)
ifstr(i) $(Driver) != "El90xnd"
ifstr(i) $(DriverName) == "El90xn"
;;; We have found a 3Com client-related key
set found3ComClientInstance = TRUE
endif
endif
Split-String "$(Driver)" "x" DriverTokens
set DriverName = *($(DriverTokens), 1)
ifstr(i) $(Driver) != "EL99X"
ifstr(i) $(DriverName) == "El99"
;;; We have found a 3Com client-related key
set found3ComClientInstance = TRUE
endif
endif
Ifstr(i) $(found3ComClientInstance) == "TRUE"
;; Add this driver instance name to the list of realNICs
SetRegValue $(RealNICsKey) {$(Driver), 0, $(!REG_VT_SZ), ""}
endif
EndForListDo
CloseRegKey $(ServicesKey)
Endif
Endif
CloseRegKey $(DiagKey)
CloseRegKey $(RealNICsKey)
;End - Add in entries to support the DA/Touchdown integration - REALNICS Key
;;ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(CorrectProdHWName) $(!REG_KEY_ALL_ACCESS) KeyService
Ifstr $(KeyService) != ""
SetRegValue $(KeyService) {ImagePath,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWUpgradePath)}
else
goto fatalregistry
endif
CloseRegKey $(KeyService)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EventLog\System\"$(CorrectProdHWName) $(!REG_KEY_ALL_ACCESS) KeyEventLog
Ifstr $(KeyEventLog) != ""
SetRegValue $(KeyEventLog) {EventMessageFile,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetEventDLL)}
else
goto fatalregistry
endif
CloseRegKey $(KeyEventLog)
;;endif
ifint $(OldVersionExisted) == $(FALSE)
Ifstr(i) $(DoCopy) == "YES"
Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
endif
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
Endif
;******* CREATE DIAG REGISTRY FOR TOUCHDOWN SINCE WE SUPPORT IT **************
set TrayIconList = {TCAUDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)}
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG" $(!REG_KEY_ALL_ACCESS) NDKeyNt
ifstr $(NDKeyNt) != ""
SetRegValue $(NDKeyNt) $(TrayIconList)
CloseRegKey $(NDKeyNt)
endif
;******************************************************************************************
NextCommon =+
;******************************************************************************************
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
Endif
;**************** check if 980XN and copy new NDIS4 driver ********************
install "Install-OptionNewNDIS"
;install "Install-Option"
endcurrent =+
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
EndWait
goto successful
updateparameters =+
Debug-Output "$(InfFile) : Updateparameters"
set HardParameterKey = $($R3)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(KeyParameters)
goto successful
bindingadapter =+
Debug-Output "$(InfFile) : bindingadapter"
Return STATUS_SUCCESSFUL
set Error = "Binding: Sorry, not yet implemented."
goto fatal
removeadapter = +
;****************************************************************************************
; Check if 905BC or Boomerang
;****************************************************************************************
set CurrentCardPath = $(!NTN_RegBase)
set TitleValue = ""
set CardTitle = ""
set NameTokenList = ""
OpenRegKey $(!REG_H_LOCAL) "" $(CurrentCardPath) $(!REG_KEY_READ) CurrentCardKey
Ifstr(i) $(CurrentCardKey) != ""
GetRegValue $(CurrentCardKey) "Title" TitleValue
set CardTitle = *($(TitleValue), 4)
Split-String $(CardTitle) "()" NameTokenList
set NameCode = *($(NameTokenList), 3)
CloseRegKey $(CurrentCardKey)
Endif
;end checking currentCardKey
;****************************************************************************************
set CorrectProdHWName = $(ProdHWName)
set CorrectProdSWName = $(ProdSWName)
set CorrectProdKeyName = $(ProdKeyName)
Debug-Output "$(InfFile) : removeadapter"
Debug-Output "$(InfFile) : ----> $(CorrectProdKeyName), $(!NTN_RegBase)"
Ifstr(i) $(CorrectProdKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(CorrectProdSWName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
else
; Paul May - 12/04/99 10:01am
; Populate Driver Instance
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(!REG_KEY_ALL_ACCESS) CardIndexKey
Ifstr(i) $(CardIndexKey) != "" ; key exists
GetRegValue $(CardIndexKey) "ServiceName" ServiceNameList
;;; The name of the service being removed is stored in DriverInstance
set DriverInstance = *($(ServiceNameList), 4)
endif
CloseRegKey $(CardIndexKey)
; End - Populate Driver Instance
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(CorrectProdSWName), $(!NTN_RegBase)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
; ****************************************************************************************************************************
;
; Check_For_3C98X_Service
;
; The following routine checks for the presense of the Python service in the registry and sets the global flag
; "PythonPresent" accordingly
;
; ****************************************************************************************************************************
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) WindowsServicesKey
Ifstr(i) $(WindowsServicesKey) != "" ; key exists
EnumRegKey $(WindowsServicesKey) ServicesList
; Check whether any 3C98X driver instances are present
; Set Global Flag Accordingly
set Count = "1"
set PythonPresent = "FALSE"
set NICINSTANCE = "0"
; This routine will loop though every key under "SYSTEM\CurrentControlSet\Services" till there are no more entries
ForListDo $(ServicesList)
set CurrentServiceName = *($(ServicesList), $(Count))
set ThisServiceName = *($(CurrentServiceName),1)
; Check to see if the current Service Instance contains the string "EL980n4" case sensitively
Split-String "$(ThisServiceName)" "N4" ParsedServiceNameList
set ParsedServiceName = *($(ParsedServiceNameList),1)
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE), "NONFATAL", "The parsed service name is "$(ParsedServiceName)""
ifstr(i) $(ParsedServiceName) == "EL980"
;Increment the Nic instace counter
set-add NICINSTANCE = $(NICINSTANCE),"1"
endif
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE), "NONFATAL", "PythonPresent variable is "$(PythonPresent)""
; Increment Counter
set-add Count = $(Count),"1"
; Artificial trouble shooting limiting routine
; ifstr $(Count) == "3"
; Halt!
; endif
EndForListDo ;$(ServicesList)
CloseRegKey $(WindowsServicesKey)
; HALT!
BailOut = +
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE), "NONFATAL", "Nicinstance variable is "$(NICINSTANCE)""
ifint $(NICINSTANCE) > "1"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) NONFATAL "3C98X service still present in this machine."
else-ifint $(NICINSTANCE) == "0"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) NONFATAL "No more instances of 3C98X detected so it's time to cleanup!"
install "Clean_Up_Registry"
Set RemoveList = {}
Set DelOnRebootList = {}
set RemoveList = >($(RemoveList), #(Files-RemoveList, srv_confe, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, srv_confh, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, srv_confu, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, pci_fix, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, pci_data, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, oemel98x, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, el98xn4d, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, el98xn4s, 1))
ForListDo $(RemoveList)
Debug-Output "Removing "$($)
LibraryProcedure Status , $(!LIBHANDLE), DelFile $($)
Debug-Output "Status is "$(Status)
EndForListDo
ForListDo $(RemoveList)
Set DelStatus = ""
Debug-Output "Deleting File "$($)
Set FLibraryErrCtl = 1
;LibraryProcedure DelStatus $(!UTILHANDLE), DelFile $($)
ifstr(i) $(DelStatus) == "FAILED"
Set DelOnRebootList = >($(DelOnRebootList), $($))
EndIf
LibraryProcedure DelStatus $(!LIBHANDLE), DelFile $($)
Set FLibraryErrCtl = 0
EndForListDo
ForListDo $(DelOnRebootList)
Debug-Output "File to remove on reboot = "$($)
AddFileToDeleteList $($)
Set FLibraryErrCtl = 1
;LibraryProcedure DelStatus $(!LIBHANDLE), DelFile $($)
Set FLibraryErrCtl = 0
EndForListDo
else-ifint $(NICINSTANCE) == "1"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) NONFATAL "No more instances of 3C98X detected so it's time to cleanup!"
install "Clean_Up_Registry"
Set RemoveList = {}
Set DelOnRebootList = {}
set RemoveList = >($(RemoveList), #(Files-RemoveList, srv_confe, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, srv_confh, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, srv_confu, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, pci_fix, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, pci_data, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, oemel98x, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, el98xn4d, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, el98xn4s, 1))
ForListDo $(RemoveList)
Debug-Output "Removing "$($)
LibraryProcedure Status , $(!LIBHANDLE), DelFile $($)
Debug-Output "Status is "$(Status)
EndForListDo
ForListDo $(RemoveList)
Set DelStatus = ""
Debug-Output "Deleting File "$($)
Set FLibraryErrCtl = 1
;LibraryProcedure DelStatus $(!UTILHANDLE), DelFile $($)
ifstr(i) $(DelStatus) == "FAILED"
Set DelOnRebootList = >($(DelOnRebootList), $($))
EndIf
LibraryProcedure DelStatus $(!LIBHANDLE), DelFile $($)
Set FLibraryErrCtl = 0
EndForListDo
ForListDo $(DelOnRebootList)
Debug-Output "File to remove on reboot = "$($)
AddFileToDeleteList $($)
Set FLibraryErrCtl = 1
;LibraryProcedure DelStatus $(!LIBHANDLE), DelFile $($)
Set FLibraryErrCtl = 0
EndForListDo
endif
; End Check_For_3C98X_Service
; ****************************************************************************************************************************
; Paul May - 12/04/99 9:35am
;;; Remove the Service Name held in DriverInstance from the RealNICs key
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG\RealNICs" $(!REG_KEY_ALL_ACCESS) RealNICsKey
Ifstr(i) $(RealNICsKey) != "" ; key exists
EnumRegValue $(RealNICsKey) RealNICsList
set RealNICsValues = {}
ForListDo $(RealNICsList)
set RealNICsArray = *($($), 1)
ForListDo $(RealNICsArray)
set DriverInstanceName = *($($), 1)
QueryListSize RealNICsValuesSize $(RealNICsValues)
ifstr(i) $(RealNICsValuesSize) == 0
set RealNICsValues = {$(DriverInstanceName)}
else
set RealNICsValues = >($(RealNICsValues), $(DriverInstanceName))
endif
EndForListDo
EndForListDo
set NewRealNICsValues = {}
ForListDo $(RealNICsValues)
ifstr(i) *($($), 1) != $(DriverInstance)
set NewRealNICsValues = >($(NewRealNICsValues), *($($), 1))
endif
EndForListDo
CloseRegKey $(DiagKey)
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG" $(!REG_KEY_ALL_ACCESS) DiagKey
Ifstr(i) $(DiagKey) != "" ; key exists
DeleteRegTree $(DiagKey) "RealNICs"
CreateRegKey $(DiagKey) {"RealNICs", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewRealNICsKey
Ifstr(i) $(NewRealNICsKey) != "" ; key exists
ForListDo $(NewRealNICsValues)
SetRegValue $(NewRealNICsKey) {*($($), 1), 0, $(!REG_VT_SZ), ""}
EndForListDo
Endif
Endif
Endif
CloseRegKey $(NewRealNICsKey)
CloseRegKey $(RealNICsKey)
CloseRegKey $(DiagKey)
; End Remove the Service Name held in DriverInstance from the RealNICs key
goto end
UpgradeSoftware = +
set CurrentCardPath = $(!NTN_RegBase)
set TitleValue = ""
set CardTitle = ""
set NameTokenList = ""
OpenRegKey $(!REG_H_LOCAL) "" $(CurrentCardPath) $(!REG_KEY_READ) CurrentCardKey
Ifstr(i) $(CurrentCardKey) != ""
GetRegValue $(CurrentCardKey) "Title" TitleValue
set CardTitle = *($(TitleValue), 4)
Split-String $(CardTitle) "()" NameTokenList
set NameCode = *($(NameTokenList), 3)
CloseRegKey $(CurrentCardKey)
Endif
; 980X CARD
set CorrectProdHWName = $(ProdHWName)
set CorrectProdSWName = $(ProdSWName)
set CorrectNetRuleSWType = $(NetRuleSWType)
set CorrectNetRuleSWBindForm = $(NetRuleSWBindForm)
set CorrectNetRuleSWClass = $(NetRuleSWClass)
set CorrectNetRuleSWBindable = $(NetRuleSWBindable)
set CorrectNetRuleHWBindForm = $(NetRuleHWBindForm)
set CorrectNetRuleHWType = $(NetRuleHWType)
set CorrectNetRuleHWClass = $(NetRuleHWClass)
set CorrectProdKeyName = $(ProdKeyName)
set CorrectParamKeyName = $(ParamKeyName)
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
set CorrectNetEventDLL = $(ND4NetEventDLL)
set CorrectProdSWImagePath = $(ND4ProdSWImagePath)
set CorrectProdSWUpgradePath = $(ND4ProdSWUpgradePath)
else
set CorrectNetEventDLL = $(ND3NetEventDLL)
set CorrectProdSWImagePath = $(ND3ProdSWImagePath)
set CorrectProdSWUpgradePath = $(ND3ProdSWUpgradePath)
endif
;****************************************************************************************
OpenRegKey $(!REG_H_LOCAL) "" $(CorrectProdKeyName) $(!REG_KEY_ALL_ACCESS) KeyProduct
Ifstr $(KeyProduct) != ""
Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error"
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_DWORD),$(ProdMajorVer)}
SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMinorVer)}
SetRegValue $(KeyProduct) {Review,$(NoTitle),$(!REG_VT_DWORD),$(ProdReview)}
SetRegValue $(KeyProduct) {EDVersion,$(NoTitle),$(!REG_VT_SZ),$(EtherDiskVersion)}
CloseRegKey $(KeyProduct)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(CorrectProdHWName) $(!REG_KEY_ALL_ACCESS) KeyService
Ifstr $(KeyService) != ""
SetRegValue $(KeyService) {ImagePath,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWUpgradePath)}
else
goto fatalregistry
endif
CloseRegKey $(KeyService)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EventLog\System\"$(CorrectProdHWName) $(!REG_KEY_ALL_ACCESS) KeyEventLog
Ifstr $(KeyEventLog) != ""
SetRegValue $(KeyEventLog) {EventMessageFile,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetEventDLL)}
else
goto fatalregistry
endif
CloseRegKey $(KeyEventLog)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(!REG_KEY_ALL_ACCESS) KeyNt
;******************************************************************************************************************
;Paul May 10/8/99
;Update Loop
set ValueEnable = ENABLE
set Count = "0"
set MaxLoop = "128"
Begin_Upgrade_Loop =+
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Count equals "$(Count)
OpenRegKey $(KeyNt) "" $(CorrectProdHWName)$(Count)"\Parameters" $(!REG_KEY_ALL_ACCESS) TestKey
ifstr $(TestKey) != $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKey)$(Count)"\NetRules" $(!REG_KEY_ALL_ACCESS) NetCardKey
ifstr $(NetCardKey) != $(KeyNull)
SetRegValue $(NetCardKey) {"InfName",$(NoTitle),$(!REG_VT_SZ),$(!UG_Filename)}
CloseRegKey $(NetCardKey)
else
goto Emergency_Out
endif
CloseRegKey $(TestKey)
endif
;Increment Loop counter then compare against maximum allowed value
set-add Count = $(Count),"1"
ifstr(i) $(Count) == $(MaxLoop)
goto Emergency_Out
else
goto Begin_Upgrade_Loop
endif
;******************************************************************************************************************
Emergency_Out =+
else
goto fatalregistry
endif
install "Install-OptionNewNDIS"
goto laststep
upgradeOldNDIS =+
ifstr $(!STF_PLATFORM) == $(INF_PROCESSER)
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
;OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +
;$(!REG_KEY_ALL_ACCESS) KeyNt
;set TrayIconList = {TCASUTIEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"}
;SetRegValue $(KeyNt) $(TrayIconList)
;DeleteRegValue $(KeyNt) "COMSMDEXE"
;CloseRegKey $(KeyNt)
ifstr $(Install_3NIC_Diag) == "YES"
Debug-Output "$(InfFile) : (Install_3NIC_Diag) == "YES""
; Shell "", DiagRegistry
; ***
;install "Install-3nicdiag"
set InstallMode_Save = $(!NTN_InstallMode)
set !NTN_InstallMode = install
set SRCDIR_OVERRIDE_Save = $(!STF_SRCDIR_OVERRIDE)
set !STF_SRCDIR_OVERRIDE = $(SrcDir)
Shell $(!STF_WINDOWSSYSPATH)\TCAITDI.INF, InstallOption, $(CurrLang), +
"TCAITDI" ,$(SrcDir), YES, YES, YES, NO
set !NTN_InstallMode = $(InstallMode_Save)
set !STF_SRCDIR_OVERRIDE = $(SRCDIR_OVERRIDE_Save)
ifstr(i) $(Install_Shortcuts) == "YES"
Debug-Output "$(InfFile) : (Install_Shortcuts) == "YES""
; *** Responsilibity of the MasterNavigator ***
; RunProgram ExitCode "Windows Directory" "" $(UnInstallerEXE).EXE "-setup"
;Debug-Output "$(InfFile) : Enabling Tray Icon"
;OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +
;$(!REG_KEY_ALL_ACCESS) KeyNt
;set TrayIconList = {TCASUTIEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"}
;SetRegValue $(KeyNt) $(TrayIconList)
;DeleteRegValue $(KeyNt) "COMSMDEXE"
;CloseRegKey $(KeyNt)
endif
endif
endif
endif
;********************************************************************************
install "Install-Option"
;*********************************************************************************
laststep =+
;*********************************************************************************
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
; *** Responsilibity of the MasterNavigator ***
; RunProgram ExitCode "Windows Directory" "" $(UnInstallerEXE).EXE "-upgrade"
goto end
successful = +
Debug-Output "$(InfFile) : Successful"
goto end
abandon = +
Debug-Output "$(InfFile) : Abandon"
ForListDo $(OEM_ABANDON_OPTIONS)
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(CorrectProdSWName), $($)
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), +
$(CorrectProdSWName), FALSE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
detect checkFileExist
set Uninst = *($(uninstFound), 1)
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
goto end
warning = +
Debug-Output "$(InfFile) : 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 = +
Debug-Output "$(InfFile) : nonfatalinfo"
Set CommonStatus = STATUS_USERCANCEL
Set Severity = STATUS
goto nonfatalmsg
nonfatal = +
Debug-Output "$(InfFile) : nonfatal"
Set Severity = NONFATAL
goto nonfatalmsg
nonfatalmsg = +
Debug-Output "$(InfFile) : 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 = +
Debug-Output "$(InfFile) : fatalregistry"
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
fatal = +
Debug-Output "$(InfFile) : 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)
Debug-Output "$(InfFile) : ShellCodeError - SHELL_CODE_NO_SUCH_INF"
else-ifint $($ShellCode) == $(!SHELL_CODE_NO_SUCH_SECTION)
Debug-Output "$(InfFile) : ShellCodeError - SHELL_CODE_NO_SUCH_SECTION"
else
Debug-Output "$(InfFile) : ShellCodeError - SHELL_CODE_ERROR"
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 = +
Debug-Output "$(InfFile) : 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)
[checkFileExist]
uninstFound = {} ? $(!LIBHANDLE) FindFileInstances $(!STF_WINDOWSSYSPATH)"\un3c90xa.exe"
DiagFound = {} ? $(!LIBHANDLE) FindFileInstances $(!STF_WINDOWSSYSPATH)"\tcaudiag.exe"
[Install-Option]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
Debug-Output $(InfName)"Adding files: Files-$(NDIS_VER), SrcDir=$(SrcDir)"
AddSectionFilesToCopyList Files-$(NDIS_VER) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
; DA installationn is now the responsibility of the Master Navigator
; ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
; AddSectionFilesToCopyList Files-DA $(SrcDir) $(!STF_WINDOWSSYSPATH)
; endif
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
;***********************************************************************************
[Install-OptionNewNDIS]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
Debug-Output $(InfName)"Adding files: Files-$(NDIS_VER), SrcDir=$(SrcDir)"
AddSectionFilesToCopyList Files-980BC$(NDIS_VER) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
;**************************************************************************************
[Install-3nicdiag]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
;AddSectionFilesToCopyList Files-3nicdiag $(SrcDir) $(!STF_WINDOWSSYSPATH)
;AddSectionFilesToCopyList Files-Cpl $(SrcDir) $(!STF_WINDOWSPATH)
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
[Install-Uninstaller]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-Uninstaller $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-OTHER]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-OTHER $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-SHD]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-SHD $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_OVERWRITE = TRUE
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Clean_Up_Registry]
; 1.)
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com" $(!REG_KEY_ALL_ACCESS) THIS_KEY
DeleteRegTree $(THIS_KEY) "EL98X"
CloseRegKey $(THIS_KEY)
; 2.)
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com" $(!REG_KEY_ALL_ACCESS) THIS_KEY
DeleteRegTree $(THIS_KEY) "EL980N4"
CloseRegKey $(THIS_KEY)
; 3.)
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\InstalledOptions" $(!REG_KEY_ALL_ACCESS) THIS_KEY
DeleteRegTree $(THIS_KEY) "3Com Corporation"
CloseRegKey $(THIS_KEY)
; 4.)
;OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\Update" $(!REG_KEY_ALL_ACCESS) THIS_KEY
;DeleteRegTree $(THIS_KEY) "3C980X"
;CloseRegKey $(THIS_KEY)
; 5.) Clean Up Compaq Hot plug support registry entries
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Compaq\Cpqrcmc\ClassDLLs\NicMiniPort" $(!REG_KEY_ALL_ACCESS) THIS_KEY
DeleteRegTree $(THIS_KEY) "EL980N4"
CloseRegKey $(THIS_KEY)
Exit
[Source Media Descriptions]
1 = "ECD210P980X", TAGFILE = 3CDdisk1
[ProductType]
STF_PRODUCT = Winnt
[Files-Inf]
1, oemsetup.inf,SIZE=36000, RENAME=$(!UG_Filename)
[Files-980BCNDIS3]
1,EL98XN3.SYS , SIZE=25001
[Files-980BCNDIS4]
1,EL98XN4.SYS , SIZE=25001
[Files-NDIS3]
1,EL98XN3.SYS , SIZE=25001
[Files-NDIS4]
1,EL98XN4.SYS , SIZE=25001
[Files-Uninstaller]
1,UN3C90XA.EXE, SIZE=6617
[Files-SHD]
1,srv_conf.EXE, SIZE=307
1,srv_conf.HLP, SIZE=500
[Files-Other]
1,pci_fix.sys, SIZE=65
; The file list below was requested by Certification Group team members
[Files-RemoveList]
srv_confe = $(!STF_WINDOWSSYSPATH)\srv_conf.exe
srv_confh = $(!STF_WINDOWSSYSPATH)\srv_conf.hlp
srv_confu = $(!STF_WINDOWSSYSPATH)\srv_conf.ex_
pci_fix = $(!STF_WINDOWSSYSPATH)\pci_fix.sys
pci_data = $(!STF_WINDOWSSYSPATH)\pci_data.exe
oemel98x = $(!STF_WINDOWSSYSPATH)\oemel98x.inf
el98xn4d = $(!STF_WINDOWSSYSPATH)\driver\el98xn4.sys
el98xn4s = $(!STF_WINDOWSSYSPATH)\el98xn4.sys
;3c980x = $(!STF_WINDOWSSYSPATH)\3c980x.ini
;instinfo = $(!STF_WINDOWSSYSPATH)\instinfo.ini
[LanguagesSupported]
ENG
[OptionsTextENG]
3C980X = "3Com 3C98x 10/100 Server NIC"
[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, 1)
ConnectionValues = ^(ConnectionChoices, 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"
CANNOT_FIND_ANY_UNINSTALLED_CARD = "All the NICs supported by this product have already been installed."
[DialogConstantsENG]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"
;(%VER OEMSETUP.INF - Installation file for 3C98X - v2.1.0.57)
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.