OEMSETUP.INF Driver File Contents (HF000X_080.ZIP)

; Filename    : OEMSETUP.INF
;
; Purpose     : Diamond HomeFree Wireless LAN driver setup information file
;
; Supported HW: Diamond Multimedia HomeFree WLAN PCI adapter
;
; Supported OS: Windows NT 3.51, 4.0
;
; Date        : 08/29/2006, V0.80
;
; Author      : Dipl.-Ing. (FH) Werner K.G. Muenchheimer, Aachen, Germany
;
; Mail        : 100.163332@germanynet.de
;
; Copyright   : Free for evaluation


[Identification]
    OptionType = NetAdapter

[Source Media Descriptions]
    1 = "HomeFree Installation Software" , TAGFILE = HF000X.DSK

[LanguagesSupported]
    ENG

[PlatformsSupported]
    PCI

[Options]
    HF0002

[OptionsTextENG]
    HF0002 = "Diamond Multimedia HomeFree PCI Adapter"

;-------------------------------------------------------------------

[FileConstants]
 UtilityInf                       = "UTILITY.INF"
 SubroutineInf                    = "SUBROUTN.INF"
 SoftwareType                     = "driver"
 Exit_Code                        = 0

 NetEventDLL                      = "%SystemRoot%\System32\netevent.dll"
 IoLogMsgDLL                      = "%SystemRoot%\System32\IoLogMsg.dll"

 Manufacturer                     = "Diamond Multimedia"
 ProductMajorVersion              = "0"
 ProductMinorVersion              = "80"
 ProductVersion                   = $(ProductMajorVersion)"."$(ProductMinorVersion)

 ProductSoftwareName              = "Skyline"
 ProductSoftwareImagePath         = "\SystemRoot\System32\drivers\skyline.sys"
 NetRuleSoftwareType              = "skylineSys ndisDriver skylineDriver"
 NetRuleSoftwareUse               = $(SoftwareType)
 NetRuleSoftwareBindForm          = """SkylineSys"" yes no container"
 NetRuleSoftwareClass             = {"skylineDriver basic"}
 NetRuleSoftwareBindable          = {"skylineDriver skylineAdapter non exclusive 100"}

 ProductHardwareName              = "Skyline"
 NetRuleHardwareType              = "skyline skylineAdapter"
 NetRuleHardwareBindForm          = " yes yes container"
 NetRuleHardwareClass             = {"skylineAdapter basic"}

 ProductKeyName                   = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
 ParamKeyName                     = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"

 ProductSoftwareDescription       = "HomeFree Network Driver"
 ProductSoftwareTitle             = "HomeFree Network Driver"
 FunctionTitle                    = "HomeFree Network Driver Setup"

 OptionHelpFile                   = "SKYLINE.HLP"
 HelpId                           = 100

 ProductHardwareHF0002Description = "Diamond Multimedia HomeFree PCI Adapter"
 ProductHardwareHF0002Title       = "Diamond Multimedia HomeFree PCI Adapter"
 ProductHardwareHF0002Ndis        = 5      ; PCI
 AdapterHF0002Type                = 5      ; PCI
 HF0002VendorId                   = 57689  ; 0xE159
 HF0002DeviceId                   = 2      ; 0x0002

;-------------------------------------------------------------------

[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

;-------------------------------------------------------------------

[Identify]
    Read-Syms Identification
    Set Status     = STATUS_SUCCESSFUL
    Set Identifier = $(OptionType)
    Set Media      = #("Source Media Descriptions", 1, 1)
    Return $(Status) $(Identifier) $(Media)

;-------------------------------------------------------------------

[ReturnOptions]
    Set Status         = STATUS_FAILED
    Set OptionList     = {}
    Set OptionTextList = {}

    Set LanguageList = ^(LanguagesSupported, 1)
    IfContains(i) $($0) in $(LanguageList)
        IfStr(i) $($1) == ""
           GoTo returnoptions
        EndIf
        Set PlatformList = ^(PlatformsSupported, 1)
        IfContains(i) $($1) in $(PlatformList)
           GoTo returnoptions
        Else
           Set Status = STATUS_NOTSUPPORTED
           GoTo finish_ReturnOptions
        EndIf
    Else
        Set Status = STATUS_NOLANGUAGE
        GoTo finish_ReturnOptions
    EndIf

returnoptions = +
    Set OptionList     = ^(Options, 1)
    Set OptionTextList = ^(OptionsText$($0), 1)
    Set Status         = STATUS_SUCCESSFUL

finish_ReturnOptions = +
    Return $(Status) $(OptionList) $(OptionTextList)

;-------------------------------------------------------------------

[InstallOption]
    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

    Set-Title $(FunctionTitle)

    Set to           = Begin
    Set from         = Begin
    Set CommonStatus = STATUS_SUCCESSFUL
    EndWait

;-------------------------------------------------------------------

Begin = +
    Set CurrentVersionValue = ""
    OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion" $(!REG_KEY_READ) KeyNt
    IfStr $(KeyNt) != ""
        GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue
        CloseRegKey $(KeyNt)
    EndIf

    Set TargetVersion = *($(CurrentVersionValue),4)
    IfStr $(TargetVersion)     != "3.51"
        IfStr $(TargetVersion) != "4.0"
            Set Error = "Unsupported Windows NT version "$(TargetVersion)" ."
            GoTo fatal
        EndIf
    EndIf

    IfStr(i) $(!NTN_InstallMode)      == deinstall
        Set StartLabel = removeadapter
    Else-IfStr(i) $(!NTN_InstallMode) == update
        Set StartLabel = upgradesoftware
    Else-IfStr(i) $(!NTN_InstallMode) == bind
        Set StartLabel = bindingadapter
    Else-IfStr(i) $(!NTN_InstallMode) == configure
        IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
            Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
            IfInt $($ShellCode) != $(!SHELL_CODE_OK)
                GoTo ShellCodeError
            EndIf
            Set Error = $($R0)
            Set from  = end
            Set to    = end
            GoTo nonfatalinfo
        Else
            Set StartLabel = configureadapter
        EndIf
    Else
        Set StartLabel           = Installadapter
        Set OEM_ABANDON_OPTIONS  = {}
        Set OEM_ABANDON_SOFTWARE = FALSE
        Set OEM_ABANDON_ON       = TRUE
    EndIf

    Set from = $(fatal)
    Set to   = $(fatal)
    GoTo $(StartLabel)

;-------------------------------------------------------------------

Installadapter = +
    OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct

    IfStr $(KeyProduct) != $(KeyNull)
        CloseRegKey $(KeyProduct)

        IfStr(i) !(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"
                Set CommonStatus = STATUS_USERCANCEL
                GoTo end
            EndIf
            Set OldVersionExisted = $(TRUE)
        EndIf
    EndIf

    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
	    Set Error = $($R0)
            GoTo fatal
        Else-IfStr(i) $($R0) == STATUS_USERCANCEL
            GoTo successful
        EndIf
        Set SrcDir = $($R1)
    EndIf

    GoTo Installproduct

;-------------------------------------------------------------------

configureadapter = +
    IfStr $(KeyProduct) == $(KeyNull)
        OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
        IfStr $(KeyProduct) == $(KeyNull)
            Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
            GoTo fatalregistry
        EndIf
    EndIf

    Shell $(UtilityInf) FindService, $(KeyProduct)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        GoTo ShellCodeError
    EndIf

    IfStr(i) $($R0) != NO_ERROR
        GoTo fatalregistry
    EndIf

    Set HardParameterKey = $($R2)
    CloseRegKey $($R1)

    IfStr $(HardParameterKey) == $(KeyNull)
        Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
        GoTo fatalregistry
    EndIf

    Set OldVersionExisted = $(TRUE)
    Set ValueName         = ""
    Set ValueData         = ""
    Set ValueStr          = ""
    Set ValueList         = {}

    EnumRegValue $(HardParameterKey) ValueList

    ForListDo $(ValueList)
        Set ValueItem = $($)
        Set ValueName = *($(ValueItem), 1)
        Set ValueData = *($(ValueItem), 4)
        IfStr(i) $(ValueName)          == "DefaultCoNetId"
            Set DefaultCoNetIdValue     = $(ValueData)
;       Else-IfStr(i) $(ValueName)     == "InterruptNumber"
;           Set InterruptNumberValue    = $(ValueData)
;       Else-IfStr(i) $(ValueName)     == "IoBaseAddress"
;           Set IoBaseAddressValue      = $(ValueData)
        Else-IfStr(i) $(ValueName)     == "MaximumLinkSpeed"
            Set MaximumLinkSpeedIndex   = $(ValueData)
        Else-IfStr(i) $(ValueName)     == "NetworkAddress"
            Set NetworkAddressValue     = $(ValueData)
        Else-IfStr(i) $(ValueName)     == "TxMinimumHoldoff"
            Set TxMinimumHoldoffIndex   = $(ValueData)
        Else-IfStr(i) $(ValueName)     == "VendorDescription"
            Set VendorDescriptionValue  = $(ValueData)
        EndIf
    EndForListDo

    IfStr(i) $(DefaultCoNetIdValue)   == ""
        Set DefaultCoNetIdValue        = "MYNETWORK"
    EndIf

;   IfStr(i) $(InterruptNumberValue)  == ""
;       Set InterruptNumberValue       = 0
;   EndIf

;   IfStr(i) $(IoBaseAddressValue)    == ""
;       Set IoBaseAddressValue         = 0
;   EndIf

    Set MaximumLinkSpeedValue          = *($(MaximumLinkSpeedList), ~($(MaximumLinkSpeedValues),$(MaximumLinkSpeedIndex)))
    IfStr(i) $(MaximumLinkSpeedValue) == ""
        Set MaximumLinkSpeedValue      = *($(MaximumLinkSpeedList), 1)
    EndIf

    IfStr(i) $(NetworkAddressValue)   == ""
        Set NetworkAddressValue        = "000000000000"
    EndIf

    Set TxMinimumHoldoffValue          = *($(TxMinimumHoldoffList), ~($(TxMinimumHoldoffValues),$(TxMinimumHoldoffIndex)))
    IfStr(i) $(TxMinimumHoldoffValue) == ""
        Set TxMinimumHoldoffValue      = *($(TxMinimumHoldoffList), 10)
    EndIf

    IfStr(i) $(VendorDescriptionValue) == ""
        Set VendorDescriptionValue      = "HOMEFREE"
    EndIf

;-------------------------------------------------------------------

adapteroptions = +
    Set from = adapteroptions

    Read-Syms FileDependentDlg$(!STF_LANGUAGE)
    SetHelpFile $(!STF_WINDOWSSYSPATH)"\"$(OptionHelpFile) $(MinHelpId) $(MaxHelpId) $(HelpId)
    UI start "InputDlg"
    IfStr(i) $(DLGEVENT)          == "CONTINUE"
        Set MaximumLinkSpeedIndex  = $(Combo1Out)
        Set TxMinimumHoldoffIndex  = $(Combo2Out)
        UI pop 1
    Else-IfStr(i) $(DLGEVENT) == "BACK"
        Set CommonStatus = STATUS_USERCANCEL
        UI pop 1
        GoTo end
    Else
        UI pop 1
        GoTo end
    EndIf

    Set MaximumLinkSpeedValue = *($(MaximumLinkSpeedValues), ~($(MaximumLinkSpeedList),$(MaximumLinkSpeedIndex)))
    Set TxMinimumHoldoffValue = *($(TxMinimumHoldoffValues), ~($(TxMinimumHoldoffList),$(TxMinimumHoldoffIndex)))

    Read-Syms DefaultCoNetIdDlg$(!STF_LANGUAGE)
    UI start "InputDlg"
    IfStr(i) $(DLGEVENT) == "CONTINUE"
        Set DefaultCoNetIdValue = $(EditTextOut)
        UI pop 1
    Else-IfStr(i) $(DLGEVENT) == "EXIT"
        UI pop 1
    Else
        UI pop 1
        GoTo end
    EndIf

    Read-Syms NetworkAddressDlg$(!STF_LANGUAGE)
    UI start "InputDlg"
    IfStr(i) $(DLGEVENT) == "CONTINUE"
        Set NetworkAddressValue = $(EditTextOut)
        UI pop 1
    Else-IfStr(i) $(DLGEVENT) == "EXIT"
        UI pop 1
    Else
        UI pop 1
        GoTo end
    EndIf

    Read-Syms VendorDescriptionDlg$(!STF_LANGUAGE)
    UI start "InputDlg"
    IfStr(i) $(DLGEVENT) == "CONTINUE"
        Set VendorDescriptionValue = $(EditTextOut)
        UI pop 1
    Else-IfStr(i) $(DLGEVENT) == "EXIT"
        UI pop 1
    Else
        UI pop 1
        GoTo end
    EndIf

    IfStr(i) $(!NTN_InstallMode) == configure
        GoTo updateparameters
    EndIf

;-------------------------------------------------------------------

Installproduct = +
    StartWait

    Shell $(UtilityInf), GetPCIInformation, $($(Option)VendorId) $($(Option)DeviceId)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        GoTo ShellCodeError
    EndIf
    Set AdapterList = $($R0)

    IfStr(i) $(AdapterList) == {}
        Set Error            = $(CANNOT_FIND_ANY_CARD)
        Set CommonStatus     = USER_CANCEL
        Set from             = end
        GoTo nonfatal
    EndIf

    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
            Set Error = $($R0)
            GoTo fatal
        Else-IfStr(i) $($R0) == STATUS_USERCANCEL
            GoTo successful
        EndIf
        Set SrcDir = $($R1)
    EndIf

    Install "Install-Option"

    IfStr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
        Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            GoTo ShellCodeError
        EndIf
        Set Error = $($R0)
        GoTo fatal
    EndIf

    Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
          $(ProductSoftwareName), +
          $(ProductSoftwareName), +
          $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
          $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "", +
          $(NetEventDLL)
    Set OEM_ABANDON_SOFTWARE = TRUE
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        GoTo ShellCodeError
    EndIf

    Set RegistryErrorIndex = $($R0)
    IfStr(i) $(RegistryErrorIndex) != "NO_ERROR"
        EndWait
        CloseRegKey $($R1)
        CloseRegKey $($R2)
        CloseRegKey $($R3)
        CloseRegKey $($R4)
        CloseRegKey $($R5)
        GoTo fatalregistry
    EndIf

    Set SoftProductKey   = $($R1)
    Set SoftNetRuleKey   = $($R2)
    Set SoftServiceKey   = $($R3)
    Set SoftParameterKey = $($R4)
    Set SoftLinkageKey   = $($R5)
    Set NewValueList     = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ)   ,$(SoftwareType)              }, +
                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)       }, +
                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)       }, +
                            {Title       ,$(NoTitle),$(!REG_VT_SZ)   ,$(ProductSoftwareTitle)      }, +
                            {Description ,$(NoTitle),$(!REG_VT_SZ)   ,$(ProductSoftwareDescription)}, +
                            {ServiceName ,$(NoTitle),$(!REG_VT_SZ)   ,$(ProductSoftwareName)       }, +
                            {InstallDate ,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)                  }}
    Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        GoTo ShellCodeError
    EndIf

    Set RegistryErrorIndex = $($R0)
    IfStr(i) $(RegistryErrorIndex) != "NO_ERROR"
        EndWait
        CloseRegKey $(SoftProductKey)
        CloseRegKey $(SoftNetRuleKey)
        CloseRegKey $(SoftServiceKey)
        CloseRegKey $(SoftParameterKey)
        CloseRegKey $(SoftLinkageKey)
        GoTo fatalregistry
    EndIf

    Set NewValueList = {{type     ,$(NoTitle),$(!REG_VT_SZ)      ,$(NetRuleSoftwareType)    }, +
                        {use      ,$(NoTitle),$(!REG_VT_SZ)      ,$(NetRuleSoftwareUse)     }, +
                        {bindform ,$(NoTitle),$(!REG_VT_SZ)      ,$(NetRuleSoftwareBindForm)}, +
                        {class    ,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)   }, +
                        {bindable ,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
                        {InfOption,$(NoTitle),$(!REG_VT_SZ)      ,$(Option)                 }}
    Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        GoTo ShellCodeError
    EndIf

    Set RegistryErrorIndex = $($R0)
    CloseRegKey $(SoftProductKey)
    CloseRegKey $(SoftNetRuleKey)
    CloseRegKey $(SoftServiceKey)
    CloseRegKey $(SoftParameterKey)
    CloseRegKey $(SoftLinkageKey)
    IfStr(i) $(RegistryErrorIndex) != "NO_ERROR"
        EndWait
        GoTo fatalregistry
    EndIf

    ForListDo $(AdapterList)
        Set BusNum      = *($($),1)
        Set DeviceNum   = *($($),2)
        Set FunctionNum = *($($),3)

        Set-Mul SlotNum = $(FunctionNum), 32
        Set-Add SlotNum = $(SlotNum), $(DeviceNum)

        Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNum), $(SlotNum), +
              $(ProductHardware$(Option)Description), $(ProductHardwareName)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            GoTo ShellCodeError
        EndIf

        IfStr(i) $($R0) != "NO_ERROR"
            Set Error = $($R0)
            GoTo fatal
        EndIf

        IfStr(i) $($R1) != "YES"
            Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName), $(STF_CONTEXTINFNAME), $(ProductKeyName)
            IfInt $($ShellCode) != $(!SHELL_CODE_OK)
                GoTo ShellCodeError
            EndIf

            IfInt $($R4) != -1
                Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
            EndIf

            Set RegistryErrorIndex = $($R0)
            IfStr(i) $(RegistryErrorIndex) != "NO_ERROR"
                EndWait
                CloseRegKey $($R1)
                CloseRegKey $($R2)
                CloseRegKey $($R3)
                GoTo fatalregistry
            EndIf

            Set HardNetCardKey   = $($R1)
            Set HardNetRuleKey   = $($R2)
            Set HardParameterKey = $($R3)
            Set AdapterNumber    = $($R4)
            Set NewValueList     = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ)   ,$(Manufacturer)                              }, +
                                    {Title       ,$(NoTitle),$(!REG_VT_SZ)   ,"["$($R4)"] "$(ProductHardware$(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),*($(Now),1)                                  }}
            Shell $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
            IfInt $($ShellCode) != $(!SHELL_CODE_OK)
                GoTo ShellCodeError
            EndIf

            Set BusTypeValue           = $(Adapter$(Option)Type)
            Set DefaultCoNetIdValue    = "MYNETWORK"
            Set DriverDescValue        = $(ProductHardware$(Option)Description)
;           Set InterruptNumberValue   = 0
;           Set IoBaseAddressValue     = 0
            Set MaximumLinkSpeedValue  = *($(MaximumLinkSpeedValues),  1)
            Set MediaTypeValue         = 1
            Set NdisInterfaceValue     = $(ProductHardware$(Option)Ndis)
            Set NetworkAddressValue    = "000000000000"
            Set TxMinimumHoldoffValue  = *($(TxMinimumHoldoffValues), 10)
            Set VendorDescriptionValue = "HOMEFREE"

            Set NewValueList = {{MediaType        ,$(NoTitle),$(!REG_VT_DWORD),$(MediaTypeValue)        }, +
                                {BusType          ,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeValue)          }, +
                                {DefaultCoNetId   ,$(NoTitle),$(!REG_VT_SZ)   ,$(DefaultCoNetIdValue)   }, +
                                {DriverDesc       ,$(NoTitle),$(!REG_VT_SZ)   ,$(DriverDescValue)       }, +
;                               {InterruptNumber  ,$(NoTitle),$(!REG_VT_DWORD),$(InterruptNumberValue)  }, +
;                               {IoBaseAddress    ,$(NoTitle),$(!REG_VT_DWORD),$(IoBaseaddressValue)    }, +
                                {MaximumLinkSpeed ,$(NoTitle),$(!REG_VT_DWORD),$(MaximumLinkSpeedValue) }, +
                                {NdisInterface    ,$(NoTitle),$(!REG_VT_DWORD),$(NdisInterfaceValue)    }, +
                                {NetworkAddress   ,$(NoTitle),$(!REG_VT_SZ)   ,$(NetworkAddressValue)   }, +
                                {TxMinimumHoldoff ,$(NoTitle),$(!REG_VT_DWORD),$(TxMinimumHoldoffValue) }, +
                                {VendorDescription,$(NoTitle),$(!REG_VT_SZ)   ,$(VendorDescriptionValue)}}
            Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
            IfInt $($ShellCode) != $(!SHELL_CODE_OK)
                GoTo ShellCodeError
            EndIf

        EndIf  

        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, $(HardNetRuleKey), $(NewValueList)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            GoTo ShellCodeError
        EndIf

        CloseRegKey $(HardNetCardKey)
        CloseRegKey $(HardNetRuleKey)

        Set NewValueList = {{BusNumber     ,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)     }, +
                            {SlotNumber    ,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)    }, +
                            {FunctionNumber,$(NoTitle),$(!REG_VT_DWORD),$(FunctionNum)}}
        Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            GoTo ShellCodeError
        EndIf

        CloseRegKey $(HardParameterKey)
    EndForListDo

    EndWait
    GoTo successful

;-------------------------------------------------------------------

updateparameters = +
    Set NewValueList = {{DefaultCoNetId   ,$(NoTitle),$(!REG_VT_SZ)   ,$(DefaultCoNetIdValue)   }, +
                        {MaximumLinkSpeed ,$(NoTitle),$(!REG_VT_DWORD),$(MaximumLinkSpeedValue) }, +
                        {NetworkAddress   ,$(NoTitle),$(!REG_VT_SZ)   ,$(NetworkAddressValue)   }, +
                        {TxMinimumHoldoff ,$(NoTitle),$(!REG_VT_DWORD),$(TxMinimumHoldoffValue) }, +
                        {VendorDescription,$(NoTitle),$(!REG_VT_SZ)   ,$(VendorDescriptionValue)}}
    Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        GoTo ShellCodeError
    EndIf
 
    CloseRegKey $(HardParameterKey)
    GoTo successful

;-------------------------------------------------------------------

bindingadapter = +
    Set Error = "Binding: Sorry, not yet implemented."
    GoTo fatal

;-------------------------------------------------------------------

removeadapter = +
    IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
        Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), $(ProductSoftwareName)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            GoTo ShellCodeError
        EndIf

        Set RegistryErrorIndex = $($R0)

        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            GoTo fatalregistry
        EndIf
    Else
        Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), $(ProductSoftwareName), $(!NTN_RegBase)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            GoTo ShellCodeError
        EndIf

        Set RegistryErrorIndex = $($R0)

        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            GoTo fatalregistry
        EndIf
    EndIf

    GoTo end

;-------------------------------------------------------------------

upgradesoftware = +
    OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct

    IfStr $(KeyProduct) != $(KeyNull)
        Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            GoTo ShellCodeError
        EndIf

        Set !UG_Filename = $($R0)

        Install "Install-Update"

        IfStr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
            GoTo fatal
	EndIf

        SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
        SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
        CloseRegKey $(KeyProduct)
    Else
        GoTo fatalregistry
    EndIf

    GoTo end

;-------------------------------------------------------------------

successful = +
    GoTo end

;-------------------------------------------------------------------

abandon = +
    ForListDo $(OEM_ABANDON_OPTIONS)
        Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), $(ProductSoftwareName), $($)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            GoTo ShellCodeError
        EndIf

        Set RegistryErrorIndex = $($R0)

        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            GoTo fatalregistry
        EndIf
    EndForListDo

    IfStr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
        Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), $(ProductSoftwareName), FALSE
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            GoTo ShellCodeError
        EndIf

        Set RegistryErrorIndex = $($R0)

        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            GoTo fatalregistry
        EndIf
    EndIf

    GoTo end

;-------------------------------------------------------------------

warning = +
    Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        GoTo ShellCodeError
    EndIf

    IfStr(i) $($R1) == "OK"
        GoTo $(To)
    Else-IfStr(i) $($R1) == "CANCEL"
        GoTo $(From)
    Else
        GoTo "end"
    EndIf

;-------------------------------------------------------------------

nonfatalinfo = +
    Set CommonStatus = STATUS_USERCANCEL
    Set Severity     = STATUS
    GoTo nonfatalmsg

;-------------------------------------------------------------------

nonfatal = +
    Set Severity = NONFATAL
    GoTo nonfatalmsg

;-------------------------------------------------------------------

nonfatalmsg = +
    IfStr(i) $(Error) == ""
        Set Severity = NONFATAL
        Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            GoTo ShellCodeError
        EndIf
        Set Error = $($R0)
    EndIf

    Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        GoTo ShellCodeError
    EndIf

    IfStr(i) $($R1) == "OK"
        GoTo $(from)
    Else
        GoTo "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 abandon
    EndIf

    GoTo end

;-------------------------------------------------------------------

end = +
    Return $(CommonStatus)

;-------------------------------------------------------------------

[Install-Option]
    Set STF_VITAL = ""

    IfStr(i) $(AddCopy) == "YES"
        AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
        AddSectionFilesToCopyList Files-Drv $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
    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-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
    AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
    AddSectionFilesToCopyList Files-Drv $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers

    Set !STF_NCPA_FLUSH_COPYLIST = TRUE
    CopyFilesInCopyList

    Exit

;-------------------------------------------------------------------

[ProductType]
 STF_PRODUCT                      = Winnt
 STF_PLATFORM                     = I386

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

[Files-Hlp]
 1, SKYLINE.HLP  , SIZE=9999

[Files-Drv]
 1, SKYLINE.SYS  , SIZE=99999

[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:"

 MaximumLinkSpeedList             = ^(MaximumLinkSpeedChoices, 1)
 MaximumLinkSpeedValues           = ^(MaximumLinkSpeedChoices, 2)
 TxMinimumHoldoffList             = ^(TxMinimumHoldoffChoices, 1)
 TxMinimumHoldoffValues           = ^(TxMinimumHoldoffChoices, 2)

 ShellCodeErrorTitle              = "Error: "$(FunctionTitle)
 ShellCodeErrorText               = "Shell Code Error."
 CANNOT_FIND_ANY_CARD             = "Network adapter or card is not present in the system"

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

[FileDependentDlgENG]
 DlgText                          = "Please select values for: "
 DlgTemplate                      = "TWO_COMBO"
 DlgType                          = "Combination"
 Caption                          = $(FunctionTitle)

 Combo1Label                      = "&Maximum Link Speed :"
 Combo1List                       = $(MaximumLinkSpeedList)
 Combo1Out                        = $(MaximumLinkSpeedValue)
 Combo2Label                      = "&Tx Minimum Holdoff :"
 Combo2List                       = $(TxMinimumHoldoffList)
 Combo2Out                        = $(TxMinimumHoldoffValue)

 ComboListItemsIn                 = {Combo1List, Combo2List}
 ComboListItemsOut                = {Combo1Out , Combo2Out }

 EditTextLim                      = ""
 CBOptionsGreyed                  = {} 

 MinHelpId                        = 100
 MaxHelpId                        = 1000
 HelpContext                      = $(HelpId) 

[MaximumLinkSpeedChoices]
 MLS_1                            = "1 Mbps (12MHz)", 1000000
 MLS_2                            = "2 Mbps (24MHz)", 2000000
 MLS_3                            = "4 Mbps (48MHz)", 4000000 

[TxMinimumHoldOffChoices]
 TXMHO_1                          =  "100", 100
 TXMHO_2                          =  "200", 200
 TXMHO_3                          =  "300", 300
 TXMHO_4                          =  "400", 400
 TXMHO_5                          =  "500", 500
 TXMHO_6                          =  "600", 600
 TXMHO_7                          =  "700", 700
 TXMHO_8                          =  "800", 800
 TXMHO_9                          =  "900", 900
 TXMHO_10                         = "1000",1000
 TXMHO_11                         = "1100",1100
 TXMHO_12                         = "1200",1200
 TXMHO_13                         = "1300",1300
 TXMHO_14                         = "1400",1400
 TXMHO_15                         = "1500",1500
 TXMHO_16                         = "1600",1600
 TXMHO_17                         = "1700",1700
 TXMHO_18                         = "1800",1800
 TXMHO_19                         = "1900",1900
 TXMHO_20                         = "2000",2000

[DefaultCoNetIdDlgENG]
 Caption                          = "Input Default CoNetId"
 DlgText                          = "Please input Default CoNetId: "$(!LF)+
                                    "For example: MYNETWORK"$(!LF)$(!LF)
 Edit1Label                       = "&Default CoNetId :"
 Continue                         = "&OK"
 Exit                             = "&Skip"
 Help                             = "&Help"
 DlgType                          = "Edit"
 DlgTemplate                      = "QUERY_COMPUTER_NAME"
 EditTextLim                      = 32
 EditTextIn                       = $(DefaultCoNetIdValue)
 EditFocus                        = "ALL"

[NetworkAddressDlgENG]
 Caption                          = "Input Network Address"
 DlgText                          = "Please input Network Address: "$(!LF)+
                                    "Example ID: 134130220237"$(!LF)$(!LF)
 Edit1Label                       = "&Network Address :"
 Continue                         = "&OK"
 Exit                             = "&Skip"
 Help                             = "&Help"
 DlgType                          = "Edit"
 DlgTemplate                      = "QUERY_COMPUTER_NAME"
 EditTextLim                      = 12
 EditTextIn                       = $(NetworkAddressValue)
 EditFocus                        = "ALL"

[VendorDescriptionDlgENG]
 Caption                          = "Input Vendor Description"
 DlgText                          = "Please input Vendor Description: "$(!LF)+
                                    "For example: HOMEFREE"$(!LF)$(!LF)
 Edit1Label                       = "&Vendor Description :"
 Continue                         = "&OK"
 Exit                             = "&Skip"
 Help                             = "&Help"
 DlgType                          = "Edit"
 DlgTemplate                      = "QUERY_COMPUTER_NAME"
 EditTextLim                      = 32
 EditTextIn                       = $(VendorDescriptionValue)
 EditFocus                        = "ALL"
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: web1, load: 0.91