OEMSETUP.INF Driver File Contents (knhpci20.exe)

;
; oemsetup.inf for NT 4.0
;
;
;
[Identification]
        OptionType                      = NetAdapter

[LanguagesSupported]
        ENG

[Options]
        bcm42xx

[OptionsTextENG]
        bcm42xx                 = "Kingston EtheRx HomePNA 2.0 PCI Adapter"

[FileConstants]
        UtilityInf                      = "UTILITY.INF"
        subroutineinf                   = "SUBROUTN.INF"
        SoftwareType                    = "driver"
        Exit_Code                       = 0
        NetEventDLL                     = "%SystemRoot%\System32\netevent.dll"

        Manufacturer                    = "Kingston Technology"
        ProductMajorVersion             = "1"
        ProductMinorVersion             = "0"
        ProductVersion                  = $(ProductMajorVersion)"."$(ProductMinorVersion)

        ProductSoftwareName             = "bcm42xx"
        ProductSoftwareImagePath        = "%SystemRoot%\System32\drivers\BCM42XX4.SYS"
        NetRuleSoftwareType             = "bcm42xxSys ndisDriver bcm42xxDriver"
        NetRuleSoftwareUse              = $(SoftwareType)
        NetRuleSoftwareBindForm         = """bcm42xxSys"" yes no container"
        NetRuleSoftwareClass            = {"bcm42xxDriver basic"}
        NetRuleSoftwareBindable         = {"bcm42xxDriver bcm42xxAdapter non exclusive 100"}

        ProductHardwareName             = "bcm42xx"
        NetRuleHardwareBindForm         = " yes yes container"
        NetRuleHardwareType             = "bcm42xx bcm42xxAdapter"
        NetRuleHardwareClass            = {"bcm42xxAdapter basic"}

        ProductKeyName                  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
        ServiceKeyName                  = $(!NTN_ServiceBase)"\"$(ProductSoftwareName)
        ParamKeyName                    = $(!NTN_ServiceBase)"\"$(ProductSoftwareName)"\Parameters"
        LinkageKeyName                  = $(!NTN_ServiceBase)"\"$(ProductSoftwareName)"\Linkage"
        VendorList                      = { 0xfeda, 0x14e4 }
        DeviceList                      = { 0xa0fa, 0x4211 }
        CFIDList                        = { 2700803802, 1108415716 }

[FileConstantsENG]
        ProCaption                      = "Windows NT 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:"
        FunctionTitle                   = "Kingston EtheRx HomePNA 2.0 PCI Adapter Driver"
        ProductSoftwareDescription      = "Kingston EtheRx HomePNA 2.0 PCI Adapter Driver"
        ProductSoftwareDisplayName      = "Kingston EtheRx HomePNA 2.0 PCI Adapter Driver"
        ProductSoftwareTitle            = "Kingston EtheRx HomePNA 2.0 PCI Adapter Driver"
        ProductHardwareDescription      = "Kingston EtheRx HomePNA 2.0 PCI Adapter"
        ProductHardwareDisplayName      = "Kingston EtheRx HomePNA 2.0 PCI Adapter"
        ProductHardwareTitle            = "Kingston EtheRx HomePNA 2.0 PCI Adapter"
        ShellCodeErrorTitle             = "Error: "$(FunctionTitle)
        ShellCodeErrorText              = "Shell Code Error."

        NoAdapterFound                  = "Unable to detect an "$(ProductHardwareDescription)+
                                          ". Install the adapter and try again."

[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

[date]
        Now = {} ? $(!LIBHANDLE) GetSystemDate

[platform]
        STF_PLATFORM = "" ? $(!LIBHANDLE) GetPlatform

[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)
                goto returnoptions
        else
                set Status = STATUS_NOLANGUAGE
                goto finish_ReturnOptions
        endif
returnoptions = +
        set OptionList = ^(Options, 1)
        set OptionTextList = ^(OptionsText$($0), 1)
        set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = +
        Return $(Status) $(OptionList) $(OptionTextList)

[InstallOption]

        set !DebugOutputControl = 1

        set Lang = $($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 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
        detect platform
        set-title $(FunctionTitle)
        set to = Begin
        set from = Begin
        set CommonStatus = STATUS_SUCCESSFUL
        EndWait

Begin = +
        Debug-Output "bcm42xx: Lang= $(Lang)"
        Debug-Output "bcm42xx: Option= $(Option)"
        Debug-Output "bcm42xx: SrcDir= $(SrcDir)"
        Debug-Output "bcm42xx: AddCopy= $(AddCopy)"
        Debug-Output "bcm42xx: DoCopy= $(DoCopy)"
        Debug-Output "bcm42xx: DoConfig= $(DoConfig)"
        Debug-Output "bcm42xx: LanguageList= $(LanguageList)"
        Debug-Output "bcm42xx: DriverPath= $(DriverPath)"
        Debug-Output "bcm42xx: Manufacturer= $(Manufacturer)"
        Debug-Output "bcm42xx: ProductMajorVersion= $(ProductMajorVersion)"
        Debug-Output "bcm42xx: ProductMinorVersion= $(ProductMinorVersion)"
        Debug-Output "bcm42xx: ProductVersion= $(ProductVersion)"
        Debug-Output "bcm42xx: ProductSoftwareName= $(ProductSoftwareName)"
        Debug-Output "bcm42xx: ProductSoftwareImagePath= $(ProductSoftwareImagePath)"
        Debug-Output "bcm42xx: NetRuleSoftwareType= $(NetRuleSoftwareType)"
        Debug-Output "bcm42xx: NetRuleSoftwareUse= $(NetRuleSoftwareUse)"
        Debug-Output "bcm42xx: NetRuleSoftwareBindForm= $(NetRuleSoftwareBindForm)"
        Debug-Output "bcm42xx: NetRuleSoftwareClass= $(NetRuleSoftwareClass)"
        Debug-Output "bcm42xx: NetRuleSoftwareBindable= $(NetRuleSoftwareBindable)"
        Debug-Output "bcm42xx: ProductHardwareName= $(ProductHardwareName)"
        Debug-Output "bcm42xx: NetRuleHardwareBindForm= $(NetRuleHardwareBindForm)"
        Debug-Output "bcm42xx: NetRuleHardwareType= $(NetRuleHardwareType)"
        Debug-Output "bcm42xx: NetRuleHardwareClass= $(NetRuleHardwareClass)"
        Debug-Output "bcm42xx: ProductKeyName= $(ProductKeyName)"
        Debug-Output "bcm42xx: ServiceKeyName= $(ServiceKeyName)"
        Debug-Output "bcm42xx: ParamKeyName= $(ParamKeyName)"
        Debug-Output "bcm42xx: LinkageKeyName= $(LinkageKeyName)"
        Debug-Output "bcm42xx: FunctionTitle= $(FunctionTitle)"
        Debug-Output "bcm42xx: ProductSoftwareDescription= $(ProductSoftwareDescription)"
        Debug-Output "bcm42xx: ProductSoftwareDisplayName= $(ProductSoftwareDisplayName)"
        Debug-Output "bcm42xx: ProductSoftwareTitle= $(ProductSoftwareTitle)"
        Debug-Output "bcm42xx: ProductHardwareDescription= $(ProductHardwareDescription)"
        Debug-Output "bcm42xx: ProductHardwareDisplayName= $(ProductHardwareDisplayName)"
        Debug-Output "bcm42xx: ProductHardwareTitle= $(ProductHardwareTitle)"
        Debug-Output "bcm42xx: Now= $(Now)"
        Debug-Output "bcm42xx: NTN_InfOption= $(!NTN_InfOption)"
        Debug-Output "bcm42xx: NTN_Infname= $(!NTN_Infname)"
        Debug-Output "bcm42xx: NTN_InstallMode= $(!NTN_InstallMode)"
        Debug-Output "bcm42xx: NTN_InstallPhase= $(!NTN_InstallPhase)"
        Debug-Output "bcm42xx: NTN_Origination= $(!NTN_Origination)"
        Debug-Output "bcm42xx: NTN_RegBase= $(!NTN_RegBase)"
        Debug-Output "bcm42xx: NTN_ScUseRegistry= $(!NTN_ScUseRegistry)"
        Debug-Output "bcm42xx: NTN_ServiceBase= $(!NTN_ServiceBase)"
        Debug-Output "bcm42xx: NTN_SoftwareBase= $(!NTN_SoftwareBase)"
        Debug-Output "bcm42xx: STF_BUSTYPE= $(!STF_BUSTYPE)"
        Debug-Output "bcm42xx: STF_BUSTYPELIST= $(!STF_BUSTYPELIST)"
        Debug-Output "bcm42xx: STF_COMPUTERNAME= $(!STF_COMPUTERNAME)"
        Debug-Output "bcm42xx: STF_CONTEXTINFNAME= $(!STF_CONTEXTINFNAME)"
        Debug-Output "bcm42xx: STF_CWDDIR= $(!STF_CWDDIR)"
        Debug-Output "bcm42xx: STF_CWDIR= $(!STF_CWDIR)"
        Debug-Output "bcm42xx: STF_DISPLAYDEBUGOUTPUT= $(!STF_DISPLAYDEBUGOUTPUT)"
        Debug-Output "bcm42xx: STF_ERROR= $(!STF_ERROR)"
        Debug-Output "bcm42xx: STF_FLOPPYLIST= $(!STF_FLOPPYLIST)"
        Debug-Output "bcm42xx: STF_GUI= $(!STF_GUI)"
        Debug-Output "bcm42xx: STF_GUI_UNATTENDED= $(!STF_GUI_UNATTENDED)"
        Debug-Output "bcm42xx: STF_HWND= $(!STF_HWND)"
        Debug-Output "bcm42xx: STF_IDW= $(!STF_IDW)"
        Debug-Output "bcm42xx: STF_INSTALL= $(!STF_INSTALL)"
        Debug-Output "bcm42xx: STF_LANGUAGE= $(!STF_LANGUAGE)"
        Debug-Output "bcm42xx: STF_MB= $(!STF_MB)"
        Debug-Output "bcm42xx: STF_NCDETCARD= $(!STF_NCDETCARD)"
        Debug-Output "bcm42xx: STF_NCDETECT= $(!STF_NCDETECT)"
        Debug-Output "bcm42xx: STF_NCDETINFO= $(!STF_NCDETINFO)"
        Debug-Output "bcm42xx: STF_NCOPTION= $(!STF_NCOPTION)"
        Debug-Output "bcm42xx: STF_NCPA= $(!STF_NCPA)"
        Debug-Output "bcm42xx: STF_NTDRIVE= $(!STF_NTDRIVE)"
        Debug-Output "bcm42xx: STF_NTPATH= $(!STF_NTPATH)"
        Debug-Output "bcm42xx: STF_NTUPGRADE= $(!STF_NTUPGRADE)"
        Debug-Output "bcm42xx: STF_NTWINDOWSSYSPATH= $(!STF_NTWINDOWSSYSPATH)"
        Debug-Output "bcm42xx: STF_OVERWRITE= $(!STF_OVERWRITE)"
        Debug-Output "bcm42xx: STF_PLATFORM= $(!STF_PLATFORM)"
        Debug-Output "bcm42xx: STF_PROCESSOR= $(!STF_PROCESSOR)"
        Debug-Output "bcm42xx: STF_PRODUCT= $(!STF_PRODUCT)"
        Debug-Output "bcm42xx: STF_RANFROM= $(!STF_RANFROM)"
        Debug-Output "bcm42xx: STF_RENAME= $(!STF_RENAME)"
        Debug-Output "bcm42xx: STF_SRCDIR= $(!STF_SRCDIR)"
        Debug-Output "bcm42xx: STF_STANDARDSERVERUPGRADE= $(!STF_STANDARDSERVERUPGRADE)"
        Debug-Output "bcm42xx: STF_SUCCESS= $(!STF_SUCCESS)"
        Debug-Output "bcm42xx: STF_UNATTENDED= $(!STF_UNATTENDED)"
        Debug-Output "bcm42xx: STF_UNUSEDDRIVES= $(!STF_UNUSEDDRIVES)"
        Debug-Output "bcm42xx: STF_USERNAME= $(!STF_USERNAME)"
        Debug-Output "bcm42xx: STF_VITAL= $(!STF_VITAL)"
        Debug-Output "bcm42xx: STF_WINDOWSPATH= $(!STF_WINDOWSPATH)"
        Debug-Output "bcm42xx: STF_WINDOWSSYSPATH= $(!STF_WINDOWSSYSPATH)"

        Ifstr(i) $(!NTN_InstallMode) == deinstall
                set StartLabel = deinstall
        else-Ifstr(i) $(!NTN_InstallMode) == update
                set StartLabel = update
        else-Ifstr(i) $(!NTN_InstallMode) == bind
                set StartLabel = bind
        else-Ifstr(i) $(!NTN_InstallMode) == configure
                set StartLabel = configure
        else
                set StartLabel = installadapter
        endif
        set RadioDefault = 2
        set RadioIn = {$(RadioDefault)}
        set from = $(fatal)
        set to = $(fatal)
        goto $(StartLabel)

installadapter = +
        Debug-Output "bcm42xx: installadapter"
        OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
        Ifstr $(KeyProduct) != $(KeyNull)
                CloseRegKey $(KeyProduct)
                ifstr(i) $(!NTN_RegBase) == $(ProductKeyName)
                        Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle), +
                                $(ProductVersion)
                        ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                        endif
                        goto end
                else
                        Shell $(UtilityInf), CardExistedDlg
                        ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                        endif
                        ifstr(i) $($R1) != "OK"
                                goto end
                        endif
                        set OldVersionExisted = $(TRUE)
                endif
        endif
        CloseRegKey $(KeyProduct)
        goto installproduct

installproduct = +
        Debug-Output "bcm42xx: installproduct"
        StartWait

        set AdapterList = {}
        ForListDo $(DeviceList)
            set-hextodec DeviceId = $($)
            Debug-Output "bcm42xx: DeviceId = $(DeviceId)"
            set-hextodec VendorId = *($(VendorList),$(#))
            Debug-Output "bcm42xx: VendorId = $(VendorId)"
            set AdapterCFID = *($(CFIDList),$(#))
            Debug-Output "bcm42xx: AdapterCFID = $(AdapterCFID)"

            Debug-Output "bcm42xx: Calling GetPCIInformation $(VendorId) $(DeviceId) $(AdapterCFID)"
            Shell $(UtilityInf), GetPCIInformation $(VendorId) $(DeviceId)
            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                Debug-Output "bcm42xx: GetPCIInformation failed."
                goto ShellCodeError
            endif
            ForListDo $($R0)
                set AdapterList = >($(AdapterList), {*($($),1), *($($),2), $(AdapterCFID)})
            EndForListDo
        EndForListDo

        Debug-Output "bcm42xx: AdapterList = $(AdapterList)"
        ifstr(i) $(AdapterList) == {}
                set Error = $(NoAdapterFound)
                set CommonStatus = USER_CANCEL
                set from = end
                goto nonfatal
        endif

        ifint $(OldVersionExisted) == $(FALSE)
                Ifstr(i) $(DoCopy) == "YES"
                        Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
                        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
                                Goto fatal
                        Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
                                Goto successful
                        Endif
                        Set SrcDir = $($R1)
                Endif
                Shell "" StripTrailSlash $(SrcDir)
                set PlatformDir = $($R0)
                set InfDir = $($R0)"\"
                Debug-Output "bcm42xx: SrcDir= $(SrcDir)"
                Debug-Output "bcm42xx: PlatformDir= $(PlatformDir)"
                Debug-Output "bcm42xx: InfDir= $(InfDir)"
                Debug-Output "bcm42xx: UG_Filename= $(!UG_Filename)"
                install "Install-Option"
                ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
                        Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
                        ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                        endif
                        set Error = $($R0)
                        goto fatal
                endif
                set OEM_ABANDON_ON = TRUE


                Debug-Output "bcm42xx: Adding Software Component to Registry"
                Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
                        $(ProductSoftwareName), +
                        $(ProductSoftwareName), +
                        $(ProductSoftwareDisplayName), $(STF_CONTEXTINFNAME), +
                        $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "", +
                        $(NetEventDLL)
                set RegistryErrorIndex = $($R0)
                Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
                        Debug-Output "bcm42xx: Failed to Add Software Component."
                        EndWait
                        CloseRegKey $($R1)
                        CloseRegKey $($R2)
                        CloseRegKey $($R3)
                        CloseRegKey $($R4)
                        CloseRegKey $($R5)
                        goto fatalRegistry
                endif
                Set SoftProductKey = $($R1)
                Set SoftNetRuleKey = $($R2)
                Set SoftServiceKey = $($R3)
                Set SoftParameterKey = $($R4)
                Set SoftLinkageKey = $($R5)
                set NewValueList = { +
                        {SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)}, +
                        {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)}, +
                        {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)}, +
                        {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)}, +
                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)}, +
                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)}, +
                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)} +
                }
                Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
                set RegistryErrorIndex = $($R0)
                Ifstr $(RegistryErrorIndex) != NO_ERROR
                        CloseRegKey $(SoftProductKey)
                        CloseRegKey $(SoftNetRuleKey)
                        CloseRegKey $(SoftServiceKey)
                        CloseRegKey $(SoftParameterKey)
                        CloseRegKey $(SoftLinkageKey)
                        goto fatalRegistry
                endif
                set NewValueList = { +
                        {type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)}, +
                        {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
                        {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
                        {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
                        {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
                        {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)} +
                }
                Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
                set RegistryErrorIndex = $($R0)
                Ifstr $(RegistryErrorIndex) != NO_ERROR
                        CloseRegKey $(SoftProductKey)
                        CloseRegKey $(SoftNetRuleKey)
                        CloseRegKey $(SoftServiceKey)
                        CloseRegKey $(SoftParameterKey)
                        CloseRegKey $(SoftLinkageKey)
                        goto fatalRegistry
                endif

                set NewValueList = { +
                        {DebugLevel,$(NoTitle),$(!REG_VT_DWORD),0}, +
                        {DebugMask,$(NoTitle),$(!REG_VT_DWORD), 0} +
                }
                Shell $(UtilityInf), AddValueList, $(SoftParameterKey), $(NewValueList)
                set RegistryErrorIndex = $($R0)
                Ifstr $(RegistryErrorIndex) != NO_ERROR
                        CloseRegKey $(SoftProductKey)
                        CloseRegKey $(SoftNetRuleKey)
                        CloseRegKey $(SoftServiceKey)
                        CloseRegKey $(SoftParameterKey)
                        CloseRegKey $(SoftLinkageKey)
                        goto fatalRegistry
                endif

                CloseRegKey $(SoftProductKey)
                CloseRegKey $(SoftNetRuleKey)
                CloseRegKey $(SoftServiceKey)
                CloseRegKey $(SoftParameterKey)
                CloseRegKey $(SoftLinkageKey)
        endif

        ForListDo $(AdapterList)
                set BusNumber = *($($),1)
                set SlotNumber = *($($),2)
                set AdapterCFID = *($($),3)
                Debug-Output "bcm42xx: found card at PCI_$(BusNumber)_$(SlotNumber)"
                Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNumber), $(SlotNumber), +
                        $(ProductHardwareDescription), $(ProductHardwareName)
                ifint $($ShellCode) != $(!SHELL_CODE_OK)
                        goto ShellCodeError
                endif
                ifstr $($R0) != "NO_ERROR"
                        set Error = $($R0)
                        goto fatal
                endif
                ifstr(i) $($R1) != "YES"
                        ; Add Adapter Hardware Component
                        Debug-Output "bcm42xx: Adding Adapter Hardware Component to Registry"
                        Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName), +
                                $(STF_CONTEXTINFNAME), $(ProductKeyName)
                        ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                Debug-Output "bcm42xx: ShellCode error."
                                goto ShellCodeError
                        endif
                        set RegistryErrorIndex = $($R0)
                        Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
                                Debug-Output "bcm42xx: Failed to Add Hardware Component"
                                EndWait
                                CloseRegKey $($R1)
                                CloseRegKey $($R2)
                                CloseRegKey $($R3)
                                goto fatalRegistry
                        endif
        
                        set KeyAdapter = $($R1)
                        set KeyAdapterRules = $($R2)
                        set KeyParameters = $($R3)
                        set AdapterNumber = $($R4)
                        set NewValueList = { +
                                {Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)}, +
                                {Title, $(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)}, +
                                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)}, +
                                {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)}, +
                                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)}, +
                                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)} +
                        }
                        Debug-Output "bcm42xx: Populating Hardware Component Value List"
                        Shell $(UtilityInf), AddValueList, $(KeyAdapter), $(NewValueList)
                        ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                Debug-Output "bcm42xx: ShellCode error"
                                goto ShellCodeError
                        endif
                        CloseRegKey $(KeyAdapter)

                        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)} +
                        }
                        Debug-Output "bcm42xx: Populating Adapter NetRules Value List"
                        Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
                        ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                Debug-Output "bcm42xx: ShellCode error."
                                goto ShellCodeError
                        endif
                        set RegistryErrorIndex = $($R0)
                        Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
                                EndWait
                                Debug-Output "bcm42xx: Registry error: add value list."
                                CloseRegKey $(KeyParameters)
                                CloseRegKey $(KeyAdapterRules)
                                goto fatalRegistry
                        endif
                        CloseRegKey $(KeyAdapterRules)

                        set MediaType = 1       ; Ethernet
                        set BusType = 5         ; PCI
                        Set NewValueList = { +
                                {MediaType,$(NoTitle),$(!REG_VT_DWORD),$(MediaType)}, +
                                {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusType)}, +
                                {AdapterCFID,$(NoTitle),$(!REG_VT_DWORD),$(AdapterCFID)}, +
                                {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNumber)}, +
                                {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)}, +
                                {InstanceNumber,$(NoTitle),$(!REG_VT_DWORD),$(AdapterNumber)}, +
                                {DriverDesc,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)} +
                        }
                        Debug-Output "bcm42xx: Populating Adapter Parameters Value List"
                        Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
                        ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                Debug-Output "bcm42xx: ShellCode error"
                                goto ShellCodeError
                        endif
                        CloseRegKey $(KeyParameters)
                endif
        EndForListDo

        EndWait
        goto successful

bind = +
        Debug-Output "bcm42xx: bind"
        set Error = "Binding: Sorry, not yet implemented."
        goto fatal

deinstall = +
        Debug-Output "bcm42xx: deinstall"
        Debug-Output "bcm42xx: ProductKeyName= $(ProductKeyName)"
        Debug-Output "bcm42xx: NTN_RegBase= $(!NTN_RegBase)"
        ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
                Debug-Output "bcm42xx: RemoveSoftwareComponent"
                Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
                        $(ProductSoftwareName)
                ifint $($ShellCode) != $(!SHELL_CODE_OK)
                        Debug-Output "bcm42xx: ShellCode error."
                        gotoShellCodeError
                endif
                set RegistryErrorIndex = $($R0)
                Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
                        goto fatalRegistry
                endif
        else

                Debug-Output "bcm42xx: RemoveHardwareComponent"
                Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
                        $(ProductSoftwareName), $(!NTN_RegBase)
                ifint $($ShellCode) != $(!SHELL_CODE_OK)
                        Debug-Output "bcm42xx: ShellCode error."
                        goto ShellCodeError
                endif
                set RegistryErrorIndex = $($R0)
                Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
                        goto fatalRegistry
                endif
        endif
        goto end

configure = +
        Debug-Output "bcm42xx: configure"
        set Error = "Configuration Not Implemented"
        set from = end
        goto nonfatalinfo

update = +
        Debug-Output "bcm42xx: update"
        OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
        Ifstr $(KeyProduct) != $(KeyNull)
                Debug-Output "bcm42xx: Found ProductKeyName= $(ProductKeyName)"
                Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
                ifint $($ShellCode) != $(!SHELL_CODE_OK)
                        Debug-Output "ShellCode error"
                        goto ShellCodeError
                endif
                set !UG_Filename = $($R0)
                Shell "" StripTrailSlash $(SrcDir)
                set PlatformDir = $($R0)
                set InfDir = $($R0)"\"
                Debug-Output "bcm42xx: SrcDir= $(SrcDir)"
                Debug-Output "bcm42xx: PlatformDir= $(PlatformDir)"
                Debug-Output "bcm42xx: InfDir= $(InfDir)"
                Debug-Output "bcm42xx: UG_Filename= $(!UG_Filename)"
                install "Install-Update"
                ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
                        goto fatal
                endif

                ; Get the Major and Minor version numbers
                GetRegValue $(KeyProduct),MajorVersion,VersionInfo
                Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
                        set CurrentMajorVersion = 0
                else
                        set CurrentMajorVersion = *($(VersionInfo), 4)
                endif
                GetRegValue $(KeyProduct),MinorVersion,VersionInfo
                Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
                        set CurrentMinorVersion = 0
                else
                        set CurrentMinorVersion = *($(VersionInfo), 4)
                endif
                Debug-Output "bcm42xx: CurrentMajorVersion= $(CurrentMajorVersion)"
                Debug-Output "bcm42xx: CurrentMinorVersion= $(CurrentMinorVersion)"

                SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)}
                SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)}
                Debug-Output "bcm42xx: Setting Major/MinorVersion= $(ProductMajorVersion)/$(ProductMinorVersion)"
                CloseRegKey $(KeyProduct)
        else
                goto fatalRegistry
        endif
        goto end

successful = +
        goto end

warning = +
        Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
        ifint $($ShellCode) != $(!SHELL_CODE_OK)
                goto ShellCodeError
        endif
        ifstr(i) $($R1) == "OK"
                goto $(to)
        else-ifstr(i) $($R1) == "CANCEL"
                goto $(from)
        else
                goto "end"
        endif
nonfatalinfo = +
        Set CommonStatus = STATUS_USERCANCEL
        Set Severity = STATUS
        goto nonfatalmsg
nonfatal = +
        Set Severity = NONFATAL
        goto nonfatalmsg
nonfatalmsg = +
        ifstr(i) $(Error) == ""
                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 "end"
        endif
fatalRegistry = +
        Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
        ifint $($ShellCode) != $(!SHELL_CODE_OK)
                goto ShellCodeError
        endif
        set Error = $($R0)
        goto fatal
fatal = +
        ifstr(i) $(Error) == ""
                Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
                ifint $($ShellCode) != $(!SHELL_CODE_OK)
                        goto ShellCodeError
                endif
                set Error = $($R0)
        endif
        Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
        ifint $($ShellCode) != $(!SHELL_CODE_OK)
                goto ShellCodeError
        endif
        goto setfailed
ShellCodeError = +
        set DlgType = "MessageBox"
        set STF_MB_TITLE = $(ShellCodeErrorTitle)
        set STF_MB_TEXT = $(ShellCodeErrorText)
        set STF_MB_TYPE = 1
        set STF_MB_ICON = 3
        set STF_MB_DEF = 1
        ui start "Error Message"
        goto setfailed
setfailed = +
        set CommonStatus = STATUS_FAILED
        ifstr(i) $(OEM_ABANDON_ON) == TRUE
                set OEM_ABANDON_ON = FALSE
                goto deinstall
        endif
        goto end
end = +
        goto term
term = +
        Return $(CommonStatus)

[StripTrailSlash]
        Split-String $($0) "\" InList
        QueryListSize InListSize, $(InList)
        Ifint $(InListSize) <= 1
                Return $($0)
        Endif
        Set NewString = ""
        ForListDo $(InList)
                ifint $(#) < $(InListSize)
                        Set NewString = $(NewString)$($)
                else-ifstr $($) != "\"
                        Set NewString = $(NewString)$($)
                endif
        EndForListDo
        Return $(NewString)

[Install-Option]
        set STF_VITAL = ""
        ifstr(i) $(AddCopy) == "YES"
                AddSectionFilesToCopyList Files-Platform-Drivers $(PlatformDir) $(!STF_WINDOWSSYSPATH)\drivers
                AddSectionFilesToCopyList Files-Platform-Sys32 $(PlatformDir) $(!STF_WINDOWSSYSPATH)

        endif
        ifstr(i) $(DoCopy) == "YES"
                set !STF_NCPA_FLUSH_COPYLIST = TRUE
                CopyFilesInCopyList
        endif
        ifstr(i) $(DoConfig) == "YES"
        endif
        Exit

[Install-Update]
        set STF_VITAL = ""
        set STF_OVERWRITE = "ALWAYS"
        AddSectionFilesToCopyList Files-Platform-Drivers $(PlatformDir) $(!STF_WINDOWSSYSPATH)\drivers
        AddSectionFilesToCopyList Files-Platform-Sys32 $(PlatformDir) $(!STF_WINDOWSSYSPATH)
        AddSectionFilesToCopyList Files-Inf $(InfDir) $(!STF_WINDOWSSYSPATH)
        Debug-Output "bcm42xx: Copying updated files"
        set !STF_NCPA_FLUSH_COPYLIST = TRUE
        CopyFilesInCopyList
        exit

[Source Media Descriptions]
        1 = "Kingston EtheRx HomePNA 2.0 PCI Adapter Driver"

[ProductType]
        STF_PRODUCT = Winnt

[Files-Inf]
        1, OEMSETUP.INF, SIZE=999, RENAME=$(!UG_Filename)

[Files-Platform-Drivers]
        1, BCM42XX4.SYS, SIZE=999
        1, BCM42XHW.sys, SIZE=999

[Files-Platform-Sys32]
        1, BCM42DIA.cpl, SIZE=999
        1, BCM42IOA.DLL, SIZE=999
        1, BCM42DB0.dll, SIZE=999
        1, BCM42CTL.dll, SIZE=999
        1, BCM42RLY.sys, SIZE=999
        1, MFC42.DLL, SIZE=999, OVERWRITE=VERIFYSOURCEOLDER
        1, MSVCRT.DLL, SIZE=999, OVERWRITE=VERIFYSOURCEOLDER

[DialogConstantsENG]
        Help                    = "&Help"
        Exit                    = "Cancel"
        OK                      = "OK"
        HelpContext             = ""
        Continue                = "Continue"
        Cancel                  = "Cancel"

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: ftp, load: 2.34