OEMSETUP.INF Driver File Contents (7000P3-F.zip)

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

How To Update Drivers Manually

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.

server: web3, load: 2.31