;***********************************************************************
;
; SMC9000.INF
;
; SMC 91C90 network card and driver SETUP INF file.
;
;
; Copyright (c) 1993 DWB Associates Inc. All Rights Reserved
;
;***********************************************************************
[Identification]
OptionType = NetAdapter
[PlatformsSupported]
ISA
EISA
[LanguagesSupported]
ENG
[Options]
SMC9000
[OptionsTextENG]
SMC9000 = "SMC9000 Ethernet Adapter"
[Source Media Descriptions]
1 = "SMC9000 Install Diskette" , TAGFILE = smc9000.sys
[Files-SMC9000]
1,smc9000.sys, SIZE=40000
[Files-Dll]
1,smc9000.dll, SIZE=40000
1,smc9000.hlp, SIZE=40000
[Files-smcncdet]
1, smcncdet.dll, SIZE=40000
[Files-Inf]
1, oemsetup.inf, SIZE=40000, RENAME=$(!UG_Filename)
[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
[FileConstants]
UtilityInf = "UTILITY.INF"
ParamInf = "NCPARAM.INF"
SubroutnInf = "SUBROUTN.INF"
NetEventDLL = "%SystemRoot%\System32\netevent.dll"
[RegistryConstants]
SoftwareType = "driver"
Manufacturer = "SMC"
ProductMajorVersion = "3"
ProductMinorVersion = "1"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
ProductSoftwareName = "Smc9000"
ProductSoftwareTitle = "Smc9000 Adapter Driver"
ProductSoftwareImagePath = "\SystemRoot\System32\drivers\smc9000.sys"
NetRuleSoftwareType = "smc9000Sys ndisDriver smc9000Driver"
NetRuleSoftwareUse = $(SoftwareType)
NetRuleSoftwareBindForm = """Smc9000Sys"" yes no container"
NetRuleSoftwareClass = {"smc9000Driver basic"}
NetRuleSoftwareBindable = {"smc9000Driver smc9000Adapter non exclusive 100"}
ProductHardwareName = "Smc9000"
ProductHardwareSMC9000Title = "SMC 9000 Adapter"
NetRuleHardwareType = "smc9000 smc9000Adapter"
NetRuleHardwareBindForm = " yes yes container"
NetRuleHardwareClass = {"smc9000Adapter basic"}
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
ProductSoftwareDescription = "SMC9000 Ethernet Adapter Driver"
ProductHardwareSMC9000Description = "SMC9000 Ethernet Adapter"
[GeneralConstants]
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
KeyProduct = ""
KeyParameters = ""
TRUE = 1
FALSE = 0
NoTitle = 0
OldVersionExisted = $(FALSE)
DriverPath = $(!STF_NTPATH)\drivers
[FileConstantsENG]
ProCaption = "Windows NT Setup"
ProCancel = "Cancel"
ProCancelMsg = "The SMC9000 Adapter is not correctly installed. "+
"Are you sure you want to cancel copying files?"
ProCancelCap = "Network Setup Message"
ProText1 = "Copying:"
ProText2 = "To:"
FunctionTitle = "SMC9000 Ethernet Adapter Card Setup"
[SmcIrqs]
IRQ0 = "9",9
IRQ1 = "3",3
IRQ2 = "10",10
IRQ3 = "11",11
[SmcIoBase]
Base0 = "0x300",0x0300
Base1 = "0x280",0x0280
Base2 = "0x2a0",0x02a0
Base3 = "0x2c0",0x02c0
Base4 = "0x2e0",0x02e0
Base5 = "0x320",0x0320
Base6 = "0x340",0x0340
Base7 = "0x360",0x0360
Base8 = "0x380",0x0380
Base9 = "0x3a0",0x03a0
[SmcMedia]
Media0 = "10BaseT"
Media1 = "AUI"
[HexDigits]
Hex0 = 0
Hex1 = 1
Hex2 = 2
Hex3 = 3
Hex4 = 4
Hex5 = 5
Hex6 = 6
Hex7 = 7
Hex8 = 8
Hex9 = 9
HexA = A
HexB = B
HexC = C
HexD = D
HexE = E
HexF = F
[DialogConstantsENG]
Help = "Help"
Exit = "Cancel"
OK = "OK"
HelpContext = 30100
Continue = "Continue"
Cancel = "Cancel"
BadAddr1 = "Network Address must be 12 hexadecimal digits"
BadAddr2 = "Network Address contains invalid hexadecimal digit: "
BadAddr3 = "Network Address invalid, group bit must be 0"
[FileDependentDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "SMC9000"
Caption = "SMC9000 Ethernet Adapter Card Setup"
Combo1Label = "IRQ Level:"
Combo2Label = "I/O Base:"
Combo3Label = "Media Type:"
Label3 = "Network Address"
IrqList = ^(SmcIrqs, 1)
IoBaseList = ^(SmcIoBase, 1)
MediaList = ^(SmcMedia, 1)
MediaValue = 0
Combo1List = $(IrqList)
Combo1Out = $(InterruptNumber)
Combo2List = $(IoBaseList)
Combo2Out = $(IoBaseAddress)
Combo3List = $(MediaList)
Combo3Out = $(Media)
ComboListItemsIn = {Combo1List, Combo2List, Combo3List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
CBOptionsGreyed = {}
RCCtlFocusOn = 403
[Identify]
read-syms Identification
set Status = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)
[ReturnOptions]
set !DebugOutputControl = 1
set OptionList = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status = STATUS_SUCCESSFUL
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
ifstr(i) $($0) == ""
set Status = STATUS_NOLANGUAGE
goto ExitReturnOptions
endif
else
set Status = STATUS_NOLANGUAGE
goto ExitReturnOptions
endif
set PlatformList = ^(PlatformsSupported, 1)
Ifcontains(i) $($1) in $(PlatformList)
ifstr(i) $($1) == ""
set Status = STATUS_NOTSUPPORTED
endif
else
set Status = STATUS_NOTSUPPORTED
endif
ExitReturnOptions = +
Return $(Status) $(OptionList) $(OptionTextList)
[InstallOption]
set !DebugOutputControl = 1
Shell "NCPARAM.INF" Param_DetectCard
StartWait
set Option = $($1)
set SrcDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)
set LanguageList = ^(LanguagesSupported, 1)
read-syms GeneralConstants
read-syms FileConstants
read-syms RegistryConstants
read-syms FileDependentDlg$(!STF_LANGUAGE)
read-syms DialogConstants$(!STF_LANGUAGE)
read-syms FileConstants$(!STF_LANGUAGE)
Ifstr(i) $(!NTN_InstallMode) == deinstall
set SubFunction = RemoveAdapter
else-Ifstr(i) $(!NTN_InstallMode) == install
set SubFunction = InstallAdapter
else-Ifstr(i) $(!NTN_InstallMode) == update
set SubFunction = UpgradeSoftware
else-Ifstr(i) $(!NTN_InstallMode) == configure
set SubFunction = ConfigureAdapter
else
set SubFunction = NoWay
endif
Shell "" $(SubFunction)
EndWait
return $($R0)
[InstallAdapter]
read-syms GeneralConstants
read-syms RegistryConstants
read-syms FileConstants
detect date
set CurrentTime = *($(Now),1)
set SrcDir = $(!p:SrcDir)
set Option = $(!p:Option)
set DoCopy = $(!p:DoCopy)
set AddCopy = $(!p:AddCopy)
set KeyProduct = $(KeyNull)
set DoSetup = $(TRUE)
Set DetectedCard = $(FALSE)
Ifstr(i) $(!STF_NCDETECT) == YES
Ifstr(i) $(!STF_NCOPTION) == $(Option)
Set DetectedCard = $(TRUE)
Endif
Endif
ifint $(DetectedCard) == $(TRUE)
Set TypeList = {{IRQ,IRQ_List,IRQLevel},+
{IOADDR, IOBaseAddressDecList, IOBaseValue},+
{TRANSCEIVER, MediaList, MediaTypeValue}}
Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
Set Status = $($R0)
ifstr(i) $(Status) != STATUS_SUCCESSFUL
Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
Shell "" FatalError $($R0)
Return STATUS_FAILED
Endif
Shell $(ParamInf) Param_SetDefaults {}
Endif
set OldVersionExisted = $(FALSE)
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
ifstr(i) $(!NTN_RegBase) == $(ProductKeyName)
Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle), +
$(ProductVersion)
ifstr(i) $($R1) != "OK"
Return STATUS_FAILED
endif
else
Shell $(UtilityInf), CardExistedDlg
ifstr(i) $($R1) != "OK"
Return STATUS_FAILED
endif
set OldVersionExisted = $(TRUE)
endif
endif
ifint $(DetectedCard) == $(TRUE)
shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
ifstr(i) $($R0) == STATUS_SUCCESSFUL
set DetectedParams = $($R1)
shell $(ParamInf) Param_SetDefaults $(DetectedParams)
endif
endif
ifint $(DoSetup) == $(TRUE)
set TempList = ^(SmcIrqs, 1)
set InterruptNumber = *($(TempList), 1)
set TempList = ^(SmcIoBase, 1)
set IoBaseAddrValue = *($(TempList), 1)
set SetAddress = 0
set NetworkAddress = ""
ifint $(DetectedCard) == $(TRUE)
set InterruptNumber = $(IRQLevel)
set-dectohex IoBaseAddrValue = $(IOBaseValue)
set MediaValue = $(MediaTypeValue)
endif
set DLLPATH = ""
ifstr(i) $(DoCopy) == "YES"
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
set DLLPATH = $(!STF_CWDDIR)
else
set BuiltIn = "YES"
ifstr(i) $(!NTN_Origination) == "NCPA"
Set BuiltIn = "NO"
endif
Shell $(UtilityInf) DoAskSource $(!STF_CWDDIR) $(SrcDir) $(BuiltIn)
set DLLPATH = $($R1)
set SrcDir = $($R1)
endif
endif
dowind =+
Shell "" AdapterSetup
ifint $($R0) != $(TRUE)
Return STATUS_USERCANCEL
endif
set IRQLevel = $(InterruptNumber)
set IOBaseValue = $(IoBaseAddrValue)
set MediaTypeValue = $(MediaValue)
Shell $(ParamInf) Param_SaveValues
Set NewParamSettings = $($R0)
Shell $(ParamInf) Param_VerifyResources $(NewParamSettings)
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
Shell "" VerifyError $($R0)
ifstr(i) $($R0) != "OK"
goto dowind
endif
endif
ifint $(OldVersionExisted) == $(FALSE)
Shell "" SetCopy $(DoCopy) $(AddCopy) $(SrcDir)
ifint $($R0) == $(TRUE)
Shell "" SetSoftware $(CurrentTime)
ifint $($R0) != $(TRUE)
Return STATUS_FAILED
endif
endif
endif
Shell "" SetHardware $(CurrentTime)
ifint $($R0) == $(TRUE)
Shell "" WriteParameters
endif
endif
ifint $($R0) == $(TRUE)
Return STATUS_SUCCESSFUL
else
Return STATUS_FAILED
endif
[ConfigureAdapter]
read-syms GeneralConstants
read-syms FileConstants
read-syms RegistryConstants
read-syms FileDependentDlg$(!STF_LANGUAGE)
set Option = $(!p:Option)
ifstr(i) $(!NTN_RegBase) == $(ProductKeyName)
Shell $(UtilityInf) RegistryErrorString CANNOT_CONFIGURE_SOFTWARE
Shell "" ShellError $($R0)
Return STATUS_FAILED
endif
Set DetectedCard = $(FALSE)
Set TypeList = {{IRQ,IRQ_List,IRQLevel},+
{IOADDR, IOBaseAddressDecList, IOBaseValue},+
{TRANSCEIVER, MediaList, MediaTypeValue}}
Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
Set Status = $($R0)
ifstr(i) $(Status) != STATUS_SUCCESSFUL
Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
Shell "" FatalError $($R0)
Return STATUS_FAILED
Endif
Shell $(ParamInf) Param_SetDefaults {}
Ifstr(i) $(!STF_NCDETECT) == YES
Ifstr(i) $(!STF_NCOPTION) == $(Option)
Set DetectedCard = $(TRUE)
Endif
Endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) == $(KeyNull)
Shell $(UtilityInf) RegistryErrorString CANNOT_FIND_COMPONENT_SERVICE
Shell "" ShellError $($R0)
Return STATUS_FAILED
endif
Shell $(UtilityInf) FindService, $(KeyProduct)
Ifstr(i) $($R0) != NO_ERROR
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return STATUS_FAILED
endif
Set !KeyParameters = $($R2)
CloseRegKey $($R1)
Ifstr $(!KeyParameters) == $(KeyNull)
Shell $(UtilityInf) RegistryErrorString CANNOT_FIND_COMPONENT_SERVICE
Shell "" FatalError $($R0)
Return STATUS_FAILED
endif
set ValueName = ""
set ValueData = ""
set ValueStr = ""
set ValueList = {}
EnumRegValue $(!KeyParameters) ValueList
ForListDo $(ValueList)
set ValueItem = $($)
set ValueName = *($(ValueItem),1)
set ValueData = *($(ValueItem),4)
Ifstr(i) $(ValueName) == "Media"
set MediaValue = $(ValueData)
else-ifstr(i) $(ValueName) == "InterruptNumber"
set InterruptNumber = $(ValueData)
else-ifstr(i) $(ValueName) == "IoBaseAddress"
set IoBaseAddrValue = $(ValueData)
else-ifstr(i) $(ValueName) == "SetAddress"
set SetAddress = $(ValueData)
else-ifstr(i) $(ValueName) == "NetworkAddress"
set NetworkAddress = $(ValueData)
endif
EndForListDo
set-dectohex IoBaseAddrValue = $(IoBaseAddrValue)
winagn =+
Shell "" AdapterSetup
ifint $($R0) != $(TRUE)
Return STATUS_USERCANCEL
endif
set IRQLevel = $(InterruptNumber)
set IOBaseValue = $(IoBaseAddrValue)
set MediaTypeValue = $(MediaValue)
Shell $(ParamInf) Param_SaveValues
Set NewParamSettings = $($R0)
Shell $(ParamInf) Param_VerifyResources $(NewParamSettings)
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
Shell "" VerifyError $($R0)
ifstr(i) $($R0) != "OK"
goto winagn
endif
endif
Shell "" WriteParameters
ifint $($R0) == $(TRUE)
Return STATUS_SUCCESSFUL
else
Return STATUS_FAILED
endif
[NoWay]
read-syms GeneralConstants
Shell "" ShellError "NoWay"
Return STATUS_FAILED
[RemoveAdapter]
read-syms RegistryConstants
read-syms GeneralConstants
read-syms FileConstants
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductSoftwareName), $(!NTN_RegBase)
ifstr(i) $($R0) != NO_ERROR
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return STATUS_FAILURE
endif
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName)
ifstr(i) $($R0) == REF_COUNT_NOT_ZERO
Return STATUS_SUCCESSFUL
endif
ifstr(i) $($R0) != NO_ERROR
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return STATUS_FAILURE
endif
Return STATUS_SUCCESSFUL
[UpgradeSoftware]
read-syms GeneralConstants
read-syms RegistryConstants
ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) == $(KeyNull)
Return STATUS_FAILED
endif
GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
set Version = *($(VersionInfo), 4)
Split-String $(!NTN_Infname), "\", FilenameList
QueryListSize ListSize $(FilenameList)
set !UG_Filename = *($(FilenameList), $(ListSize))
install "Install-Update"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
Return STATUS_FAILED
endif
SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
CloseRegKey $(KeyProduct)
else
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) NetworkCardKey
Ifstr(i) $(NetworkCardKey) == $(KeyNull)
Return STATUS_FAILED
endif
GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
set ServiceName = *($(ServiceNameInfo), 4)
OpenRegKey $(NetworkCardKey) "" "NetRules" $(MAXIMUM_ALLOWED) NetRuleKey
Ifstr(i) $(NetRuleKey) == $(KeyNull)
Return STATUS_FAILED
endif
CloseRegKey $(NetRules)
CloseRegKey $(NetworkCardKey)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName) $(MAXIMUM_ALLOWED) ServiceKey
Ifstr(i) $(ServiceKey) == $(KeyNull)
Return STATUS_FAILED
endif
CloseRegKey $(ServiceKey)
endif
Return STATUS_SUCCESSFUL
[AdapterSetup]
read-syms FileDependentDlg$(!STF_LANGUAGE)
read-syms DialogConstants$(!STF_LANGUAGE)
read-syms FileConstants$(!STF_LANGUAGE)
read-syms GeneralConstants
set Combo1Out = $(!p:InterruptNumber)
set Combo2Out = $(!p:IoBaseAddrValue)
set MediaValue = $(!p:MediaValue)
set DLLPATH = $(!p:DLLPATH)
set SetAddress = $(!p:SetAddress)
SetHelpFile $(DLLPATH)smc9000.hlp 30100 30100
set AdapterStatus = $(FALSE)
ifint $(SetAddress) == 1
set NetworkAddress = $(!p:NetworkAddress)
else
set NetworkAddress = ""
endif
ifint $(MediaValue) == 0
set Combo3Out = "10BaseT"
else
set Combo3Out = "AUI"
endif
set EditTextIn = {$(NetworkAddress)}
set NotifyFields = {NO}
set EditTextLim = {12}
set EditFocusOn = ""
loadlibrary "SMC9000 Install Diskette" $(DLLPATH)smc9000.dll DllHandle
RetryDialog =+
EndWait
ui start "InputDlg" $(DllHandle)
StartWait
set NewNetworkAddress = *($(EditTextOut), 1)
ifstr(i) $(DLGEVENT) == "CONTINUE"
set AdapterStatus = $(TRUE)
ifstr(i) $(Combo3Out) == "10BaseT"
set MediaType = 0
else
set MediaType = 1
endif
ifstr(i) $(NewNetworkAddress) == ""
set SetAddress = 0
else
set SetAddress = 1
endif
ifint $(SetAddress) == 1
Split-String $(NewNetworkAddress), "0123456789ABCDEFabcdef", TempList
set HexList = ^(HexDigits, 1)
QueryListSize ListSize $(TempList)
ifint $(ListSize) == 12
set Index1 = 1
set Loop = 1
else
Shell "" WarnError $(BadAddr1)
goto RetryDialog
endif
NetAddrLoop =+
set Temp1 = *($(TempList), $(Index1))
ifcontains(i) $(Temp1) not-in $(HexList)
Shell "" WarnError $(BadAddr2)$(Temp1)
goto RetryDialog
endif
ifint $(Index1) == 2
ifcontains(i) $(Temp1) in { 1,3,5,7,9,b,d,f }
Shell "" WarnError $(BadAddr3)
goto RetryDialog
endif
endif
set-add Index1 = $(Index1), 1
set-add Loop = $(Loop), 1
ifint $(Loop) < 13
goto NetAddrLoop
endif
else
set NewNetworkAddress = ""
endif
endif
ui pop 1
freelibrary $(DllHandle)
set-hextodec Base = $(Combo2Out)
set !p:IoBaseAddrValue = $(Base)
set !p:InterruptNumber = $(Combo1Out)
set !p:MediaValue = $(MediaType)
set !p:SetAddress = $(SetAddress)
set !p:NetworkAddress = $(NewNetworkAddress)
return $(AdapterStatus)
[SetCopy]
read-syms GeneralConstants
read-syms FileConstants
set DoCopy = $($0)
set AddCopy = $($1)
set SrcDir = $($2)
set Needcopy = $(FALSE)
Ifstr(i) $(DoCopy) == "YES"
set NeedCopy = $(TRUE)
else-ifstr(i) $(AddCopy) == "YES"
set NeedCopy = $(TRUE)
else
Return $(TRUE)
endif
set BuiltIn = "YES"
ifstr(i) $(!NTN_Origination) == "NCPA"
set BuiltIn = "NO"
endif
Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) $(BuiltIn)
Ifstr(i) $($R0) == STATUS_FAILED
Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
Shell "" FatalError $($R0)
Return $(FALSE)
Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
Return $(FALSE)
Endif
Set SrcDir = $($R1)
install "Install-Option"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
Shell "" FatalError $($R0)
Return $(FALSE)
endif
Shell "" PrepareDetectionDll "SMCNCDET.DLL"
Return $(TRUE)
[SetSoftware]
read-syms RegistryConstants
read-syms GeneralConstants
read-syms FileConstants
read-syms date
Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName), +
$(ProductSoftwareName), +
$(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
$(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
$(NetEventDLL)
Ifstr(i) $($R0) != NO_ERROR
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return $(FALSE)
endif
;
; At this point:
; $R1 contains the product version key handle;
; $R2 contains the NetRules subkey handle;
; $R3 contains the new Services key handle; and
; $R4 contains the Parameters key
; $R5 contains the Linkage Key
;
set KeyProduct = $($R1)
Set SoftNetRulesKey = $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
Ifstr(i) $($R0) != NO_ERROR
CloseRegKey $(KeyProduct)
CloseRegKey $(SoftNetRulesKey)
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return $(FALSE)
endif
set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),$($0)}}
Shell $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
Ifstr(i) $($R0) != NO_ERROR
CloseRegKey $(KeyProduct)
CloseRegKey $(SoftNetRulesKey)
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return $(FALSE)
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),"SMC9000"}}
Shell $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
CloseRegKey $(KeyProduct)
CloseRegKey $(SoftNetRulesKey)
Ifstr(i) $($R0) != NO_ERROR
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return $(FALSE)
endif
return $(TRUE)
[SetHardware]
read-syms RegistryConstants
read-syms GeneralConstants
read-syms FileConstants
read-syms date
Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
Ifstr(i) $($R0) != NO_ERROR
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return $(FALSE)
endif
;
; At this point:
; $R1 Registry key variable for HARDWARE\Netcard\(n)
; $R2 Registry key variable for HARDWARE\Netcard\(n)\\NetRules
; $R3 Registry key handle for <service>\Parameters key
; $R4 Adapter number assigned to adapter
; $R5 Service name generated by combining svc name with adapter number
;
set !KeyParameters = $($R3)
set KeyAdapterRules = $($R2)
set AdapterNumber = $($R4)
set Option = "SMC9000"
set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),$($0)}}
Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList)
Ifstr(i) $($R0) != NO_ERROR
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return $(FALSE)
endif
CloseRegKey $($R1)
set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
Ifstr(i) $($R0) != NO_ERROR
CloseRegKey $(!KeyParameters)
CloseRegKey $(KeyAdapterRules)
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return $(FALSE)
endif
CloseRegKey $(KeyAdapterRules)
return $(TRUE)
[WriteParameters]
read-syms RegistryConstants
read-syms FileConstants
read-syms GeneralConstants
set Base = $(!p:IoBaseAddrValue)
set Irq = $(!p:InterruptNumber)
set Media = $(!p:MediaValue)
set SetAddress = $(!p:SetAddress)
set NetworkAddress = $(!p:NetworkAddress)
Shell $(UtilityInf), GetBusTypeNum
set BusTypeNum = $($R1)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Shell "" ShellError "Cannot get bus number"
Return $(FALSE)
endif
Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
{MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
{BusNumber,$(NoTitle),$(!REG_VT_DWORD),0},+
{Media,$(NoTitle),$(!REG_VT_DWORD),$(Media)},+
{InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(Irq)},+
{IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(Base)},+
{SetAddress,$(NoTitle),$(!REG_VT_DWORD),$(SetAddress)},+
{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)}}
Shell $(UtilityInf), AddValueList, $(!KeyParameters), $(NewValueList)
CloseRegKey $(!KeyParameters)
Ifstr(i) $($R0) != NO_ERROR
Shell $(UtilityInf) RegistryErrorString $($R0)
Shell "" ShellError $($R0)
Return $(FALSE)
endif
Return $(TRUE)
[ShellError]
read-syms DialogConstants$(!STF_LANGUAGE)
read-syms FileConstants$(!STF_LANGUAGE)
set DlgType = "MessageBox"
set STF_MB_TITLE = $(FunctionTitle)
set STF_MB_TEXT = $($0)
set STF_MB_TYPE = 1
set STF_MB_ICON = 3
set STF_MB_DEF = 1
ifstr(i) $(STF_MB_TEXT) == ""
set STF_MB_TEXT = "Unknown Error"
endif
ui start "Error Message"
Return
[Install-Option]
set STF_VITAL = ""
ifstr(i) $(AddCopy) == "YES"
AddSectionFilesToCopyList Files-smcncdet $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-SMC9000 $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
endif
ifstr(i) $(DoCopy) == "YES"
set !STF_NCPA_FLUSH_COPYLIST = $(!TRUE)
CopyFilesInCopyList
endif
Exit
[Install-Update]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-SMC9000 $(!SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-Inf $(!SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Dll $(!SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
exit
[PrepareDetectionDll]
Set NewDllName = $($0)
Set Status = STATUS_FAILED
read-syms GeneralConstants
Set DllValueName = "NetcardDlls"
OpenRegKey $(!REG_H_LOCAL) "" "System\Setup" $(MAXIMUM_ALLOWED) KeySetup
Ifstr(i) $(KeySetup) == $(KeyNull)
Goto PDD_Return
Endif
Set DllFound = 0
GetRegValue $(KeySetup) $(DllValueName) DllNamesValue
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Goto PDD_Return
Endif
Set DllNames = *($(DllNamesValue),4)
ForListDo $(DllNames)
Ifstr(i) $($) == $(NewDllName)
Set DllFound = 1
Endif
EndForListDo
Ifint $(DllFound) == 0
Set DllNames = >($(DllNames),$(NewDllName))
Set ValueInfo = {$(DllValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(DllNames)}
SetRegValue $(KeySetup) $(ValueInfo)
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set Status = STATUS_SUCCESSFUL
Endif
Else
Set Status = STATUS_USERCANCEL
Endif
CloseRegKey $(KeySetup)
PDD_Return = +
Return $(Status)
[FatalError]
read-syms FileConstants
ifstr(i) $($0) == ""
set Message = "Unknown Error"
else
set Message = $($0)
endif
Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) FATAL $(Message)
Return
[VerifyError]
read-syms FileConstants
ifstr(i) $($0) == ""
set Message = "Unknown Error"
else
set Message = $($0)
endif
Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) WARNING $(Message)
Return $($R1)
[WarnError]
read-syms FileConstants
ifstr(i) $($0) == ""
set Message = "Unknown Error"
else
set Message = $($0)
endif
Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) NONFATAL $(Message)
Return
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.