OEMSETUP.INF Driver File Contents (isa400_2.exe)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; OEMSETNT.INF for WVLAN22.SYS
;
; Copyright (C) 1996 Lucent Technologies
;
; All rights reserved.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Set Adapter Type
;
[Identification]
    OptionType = NetAdapter

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Define platforms supported by this driver.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[PlatformsSupported]
    ISA
    EISA
    "Jazz-Internal Bus"
;!  MCA

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Define strings used in the creation of file, DLL and registry 
; path strings.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[FileConstants]
    UtilityInf              = "UTILITY.INF"
    SubRoutineInf           = "SUBROUTN.INF"
    ParamInf                = "NCPARAM.INF"
    SoftwareType            = "driver"
    Exit_Code               = 0
    NetEventDLL             = "%SystemRoot%\System32\netevent.dll"
    IoLogMsgDLL             = "%SystemRoot%\System32\IoLogMsg.dll"
    Manufacturer            = "Microsoft"
    ProductMajorVersion     = "3"
    ProductMinorVersion     = "1"
    ProductVersion          = $(ProductMajorVersion)"."$(ProductMinorVersion)
    ProductSoftwareName     = "WVLAN22"
    ProductSoftwareTitle    = "WaveLAN Adapter Driver"
    ProductSoftwarePath     = "\SystemRoot\System32\drivers\WVLAN22.sys"
    NetRuleSoftwareType     = "WVLAN22Sys ndisDriver WVLAN22Driver"
    NetRuleSoftwareUse      = $(SoftwareType)
    NetRuleSoftwareBindForm = """WVLAN22Sys"" yes no container"
    NetRuleSoftwareClass    = {"WVLAN22Driver basic"}
    NetRuleSoftwareBindable = {"WVLAN22Driver WVLAN22Adapter non exclusive 100"}
    ProductHardwareName     = "WVLAN22"
    ProductHardwareTitle    = "WaveLAN Adapter"
    NetRuleHardwareType     = "WVLAN22 WVLAN22Adapter"
    NetRuleHardwareBindForm = " yes yes container"
    NetRuleHardwareClass    = {"WVLAN22Adapter basic"}
    ProductKeyName          = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
    ParamKeyName            = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
    PcmciaKeyName           = $(!NTN_ServiceBase)"\Pcmcia\DataBase"
    NCRManufacturerName     = "NCR"
    NCRManufacturerKeyName  = $(PcmciaKeyName)"\"$(NCRManufacturerName)
    ATTManufacturerName     = "AT&T"
    ATTManufacturerKeyName  = $(PcmciaKeyName)"\"$(ATTManufacturerName)
    LTManufacturerName      = "Lucent Technologies"
    LTManufacturerKeyName   = $(PcmciaKeyName)"\"$(LTManufacturerName)
    PcmciaProductName       = "WaveLAN/PCMCIA"
    NCRPcmciaProductName    = $(NCRManufacturerKeyName)"\"$(PcmciaProductName)
    ATTPcmciaProductName    = $(ATTManufacturerKeyName)"\"$(PcmciaProductName)
    LTPcmciaProductName     = $(LTManufacturerKeyName)"\"$(PcmciaProductName)
    ConfigFileName          = "WVLAN22.DLL"
    HelpFileName            = "WVLAN22.HLP"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Define commonly used constant values and strings
;   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[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
    PcmciaDatabaseKey       = ""
    PcmciaMfgKey            = ""
    PcmciaProdKey           = ""


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Define parameters which will be conditionally added as 
; values in the device parameters section.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[DriverParameters]
    DPDebugFlags            = 0
    DPDomainID              = 0000
    DPBeaconKey             = 0000
    DPNWID                  = 0100
    DPEncryptionKey         = ""
    DPStationName           = ""
    DPStationAddress        = ""
    DPPCCARDAttributeMemoryAddress = 884736
    DPPCCARDAttributeMemorySize = 20480
    DPPCMCIA                = 1
    DPRoamingCBState        = "OFF"
    DPEncryptCBState        = "OFF"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Get current date
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[Date]
    Now                     = {} ? $(!LIBHANDLE) GetSystemDate



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Get id string parameters
; Sets Identifier to OptionType string from above.
; Sets Media to installation disk identifier
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[Identify]
    Read-Syms Identification
    Set Status              = STATUS_SUCCESSFUL
    Set Identifier          = $(OptionType)
    Set Media               = #("Source Media Descriptions", 1, 1)
    Return $(Status) $(Identifier) $(Media)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Determine if the language and platform specified is 
; supported by this install file.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[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)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Retrieve Install options
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[InstallOption]
;
; Get parameters from calling routine
;
    Set Option              = $($1)
    Set SrcDir              = $($2)
    Set AddCopy             = $($3)
    Set DoCopy              = $($4)
    Set DoConfig            = $($5)
    Set LanguageList        = ^(LanguagesSupported, 1)
;
; Check that language is supported, and abort if it is not.
;
    IfContains(i) $($0) NOT-IN $(LanguageList)
        Return STATUS_NOLANGUAGE
    EndIf
;
; Turn on debug messages
; 
    Set !DebugOutputControl = 0
;
; Output working directory and language for debugging
;
    Debug-Output "WVLAN22: STF_CWDIR    = "$(!STF_CWDIR)
    Debug-Output "WVLAN22: STF_LANGUAGE = "$(!STF_LANGUAGE)
    Set-Subst LF = "\n"
;
; Get defined strings.
;
    Read-Syms GeneralConstants
    Read-Syms FileConstants
    Read-Syms DriverParameters
    Read-Syms DialogConstants$(!STF_LANGUAGE)
;
; Check if we were invoked by the Network Control Panel Applet
;
    IfStr(i) $(!NTN_Origination) == "NCPA"
        Set Continue = "OK"
    EndIf
;
; Get strings for the current language
;
    Read-Syms FileConstants$(!STF_LANGUAGE)
;
; Get date
;
    Detect Date
;
; Set title for this procedure
;
    Set-Title  $(FunctionTitle)
    Set to   = Begin
    Set from = Begin
    Set CommonStatus = STATUS_SUCCESSFUL
    EndWait
;
; Determine mode selected by user in NCPA
;
Begin = +
    Set ActivateDetection = FALSE
    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
;
; Do configuration functions
;
        Set StartLabel = ConfigureAdapter
;       Set ActivateDetection = TRUE
;
; Check if product key exists in software hive
;
        IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
            Debug-Output "WVLAN22: ProductKeyName="$(ProductKeyName)
            Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
            IfInt $($ShellCode) != $(!SHELL_CODE_OK)
                Debug-Output "WVLAN22:ShellCode: RegistryErrorString: "$($ShellCode)
                Goto ShellCodeError
            EndIf
            Set Error = $($R0)
            Set from = end
            Set to = end
            Goto nonFatalInfo
        EndIf
    Else
        install "Install-Dll"

;       Set ActivateDetection = TRUE
        Set StartLabel = InstallAdapter
        Set OEM_ABANDON_OPTIONS = {}
        Set OEM_ABANDON_SOFTWARE = FALSE
        Set OEM_ABANDON_ON = TRUE
    EndIf
;   Debug-Output "WVLAN22: =================================================="
;   Debug-Output "WVLAN22: Option        = "$(Option)
;   Debug-Output "WVLAN22: STF_CWDIR     = "$(!STF_CWDIR)
;   Debug-Output "WVLAN22: STF_LANGUAGE  = "$(!STF_LANGUAGE)
;   Debug-Output "WVLAN22: STF_NCDETECT  = "$(!STF_NCDETECT)
;   Debug-Output "WVLAN22: STF_NCOPTION  = "$(!STF_NCOPTION)
;   Debug-Output "WVLAN22: STF_NCDETCARD = "$(!STF_NCDETCARD)
;   Debug-Output "WVLAN22: STF_NCDETINFO = "$(!STF_NCDETINFO)
;   Debug-Output "WVLAN22: =================================================="

    Set DebugFlags                      = 1
    Set MaxTransmits                    = 1
    IfStr(i) $(Option) == WaveLAN_ISA
        Set BoardType                   = 1
        Set ProductHardwareTitle        = "WaveLAN ISA Adapter"
    EndIf
;!  IfStr(i) $(Option) == WaveLAN_MCA
;!      Set BoardType                   = 3
;!      Set ProductHardwareTitle        = "WaveLAN MCA Adapter"
;!  EndIf
    IfStr(i) $(Option) == WaveLAN_PCMCIA
        Set BoardType                   = 8
        Set ProductHardwareTitle        = "WaveLAN PCMCIA Adapter"
    EndIf

    Set DetectedCard                    = FALSE
    Set ActivateDetection               = FALSE
    IfStr(i) $(ActivateDetection) != TRUE
        IfInt $(BoardType) == 1
;;;         WaveLAN_ISA
            Debug-Output "WVLAN22: ISA"
            Set IOAddrList              = {768,912,960,992}
            Set IOAddrValue             = 768
            Shell $(ParamInf) HexListFromDecList $(IOAddrList)
            Set IOAddrHexList           = $($R0)
        EndIf
;!      IfInt $(BoardType) == 3
;!;;;           WaveLAN_MCA
;!          Debug-Output "WVLAN22: MCA"
;!          Set IOAddrList              = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
;!          Set IOAddrValue             = 1
;!          Set Combo1Label             = "MCA &Slot:"
;!          Shell $(ParamInf) HexListFromDecList $(IOAddrList)
;!          Set IOAddrHexList           = $($R0)
;!      EndIf
        IfInt $(BoardType) == 8
;;;         WaveLAN_PCMCIA
            Debug-Output "WVLAN22: PCMCIA"
            Set IOAddrList              = {768, 776, 784, 792, 800, 808, 816,+
                                           824, 832, 840, 848, 856, 864, 872,+
                                           880, 888, 896, 904, 912, 920, 928,+
                                           936, 944, 952, 960, 968, 976, 984, 992, 1000, 1008}
            Set IOAddrValue             = 800
            Shell $(ParamInf) HexListFromDecList $(IOAddrList)
            Set IOAddrHexList           = $($R0)
            Set IRQList                 = {3,4,5,7,9,10,11,12,15}
                Set InterruptNumber         = 11
        EndIf
        Goto $(StartLabel)
    EndIf
    Set TypeList = {{IOAddr,        IOAddrList,        IoBaseAddress},+
                    {IRQ,           IRQList,           InterruptNumber}}
    Debug-Output "WVLAN22: Calling Param_BuildTypeLists"
    Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run Param_BuildTypeLists"
        Goto ShellCodeError
    EndIf
    Set Status = $($R0)
    IfStr(i) $(Status) != STATUS_SUCCESSFUL
        Debug-Output "WVLAN22: Param_BuildTypeLists ERROR="$(Status)
        Goto fatalDetect
    EndIf
    Debug-Output "WVLAN22: Calling Param_SetDefaults"
    Shell $(ParamInf) Param_SetDefaults {}
    Shell $(ParamInf) HexListFromDecList $(IOAddrList)
    Set IOAddrHexList = $($R0)
    IfStr(i) $(!STF_NCDETECT) == YES
        IfStr(i) $(!STF_NCOPTION) == $(Option)
            Set DetectedCard = TRUE
            Debug-Output "WVLAN22: Setting DetectedCard = TRUE"
        EndIf
    EndIf
    Shell "" DebugConfiguration "After Parameter Query"
    Set from = $(fatal)
    Set to = $(fatal)
    Goto $(StartLabel)
InstallAdapter = +
    Debug-Output "WVLAN22: InstallAdapter"
    IfStr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
        Debug-Output "WVLAN22: Install Dll ERROR="$(STF_INSTALL_OUTCOME)
        Goto fatal
    EndIf
    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)
                Debug-Output "WVLAN22: Cannot run VerExistedDlg"
                Goto ShellCodeError
            EndIf
            Debug-Output "WVLAN22: Adapter already installed"
            Goto end
        Else
            Shell $(UtilityInf), CardExistedDlg
            IfInt $($ShellCode) != $(!SHELL_CODE_OK)
                Debug-Output "WVLAN22: Cannot run CardExistedDlg"
                Goto ShellCodeError
            EndIf
            IfStr(i) $($R1) != "OK"
                Goto end
            EndIf
            Set OldVersionExisted = $(TRUE)
        EndIf
    EndIf
    IfStr(i) $(DetectedCard) != TRUE
        Goto adapterSetup
    EndIf
    StartWait
    Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
    EndWait
    IfStr(i) $($R0) != STATUS_SUCCESSFUL
        Goto adapterSetup
    EndIf
    Set DetectedParams = $($R1)
    Debug-Output "WVLAN22: Calling Param_SetDefaults to merge detected params"
    Shell $(ParamInf) Param_SetDefaults $(DetectedParams)
    Goto adapterSetup
ConfigureAdapter = +
    Debug-Output "WVLAN22: ConfigureAdapter"
    IfStr $(KeyProduct) == $(KeyNull)
        OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
        IfStr $(KeyProduct) == $(KeyNull)
            Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
            Debug-Output "WVLAN22: Cannot find component product key."
            Goto fatalRegistry
        EndIf
    EndIf
    Debug-Output "WVLAN22: Calling FindService"
    Shell $(UtilityInf) FindService, $(KeyProduct)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run FindService"
        Goto ShellCodeError
    EndIf
    IfStr(i) $($R0) != NO_ERROR
        Debug-Output "WVLAN22: FindService ERROR="$($R0)
        Goto fatalRegistry
    EndIf
    Set KeyParameters = $($R2)
    CloseRegKey $($R1)
    IfStr $(KeyParameters) == $(KeyNull)
        Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
        Debug-Output "WVLAN22: Cannot find component service"
        Goto fatalRegistry
    EndIf
    Set OldVersionExisted = $(TRUE)
    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) == "SlotNumber"
            IfInt $(BoardType) == 3
                Set IOAddrValue = $(ValueData)
            EndIf
        Else-IfStr(i) $(ValueName) == "IoBaseAddress"
            IfInt $(BoardType) == 1
                Set IOAddrValue = $(ValueData)
            EndIf
            IfInt $(BoardType) == 8
                Set IOAddrValue = $(ValueData)
            EndIf
        Else-IfStr(i) $(ValueName) == "DomainID"
            Set-DecToHex DPDomainID = $(ValueData)
            Split-String $(DPDomainID) "x" SplitHex
            Set DPDomainID = *($(SplitHex),3)
        Else-IfStr(i) $(ValueName) == "BeaconKey"
            Set-DecToHex DPBeaconKey = $(ValueData)
            Split-String $(DPBeaconKey) "x" SplitHex
            Set DPBeaconKey = *($(SplitHex),3)
        Else-IfStr(i) $(ValueName) == "NetworkAddress"
            Set DPStationAddress = $(ValueData)
        Else-IfStr(i) $(ValueName) == "EncryptionKey"
            Set DPEncryptionKey = $(ValueData)
        Else-IfStr(i) $(ValueName) == "StationName"
            Set DPStationName = $(ValueData)
        Else-IfStr(i) $(ValueName) == "RoamingEnable"
            Set DPRoamingCBState = $(ValueData)
        Else-IfStr(i) $(ValueName) == "EncryptionEnable"
            Set DPEncryptCBState = $(ValueData)
        Else-IfStr(i) $(ValueName) == "NWID"
            Set-DecToHex DPNWID = $(ValueData)
            Split-String $(DPNWID) "x" SplitHex
            Set DPNWID = *($(SplitHex),3)
        Else-IfStr(i) $(ValueName) == "DebugFlags"
            Set DPDebugFlags = $(ValueData)
        Else-IfStr(i) $(ValueName) == "InterruptNumber"
            Set InterruptNumber = $(ValueData)
        Else-IfStr(i) $(ValueName) == "PCCARDAttributeMemoryAddress"
            Set DPPCCARDAttributeMemoryAddress = $(ValueData)
        Else-IfStr(i) $(ValueName) == "PCCARDAttributeMemorySize"
            Set DPPCCARDAttributeMemorySize = $(ValueData)
        Else-IfStr(i) $(ValueName) == "PCMCIA"
            Set DPPCMCIA = $(ValueData)
        Endif   
    EndForListDo

    Debug-Output "WVLAN22: Paramters read from registry"
    Debug-Output "WVLAN22: DPRoamingCBState = "$(DPRoamingCBState)
    Debug-Output "WVLAN22: DPEncryptCBState = "$(DPEncryptCBState)
    Debug-Output "WVLAN22: DPDomainID = "$(DPDomainID)
    Debug-Output "WVLAN22: DPBeaconKey = "$(DPBeaconKey)
    Debug-Output "WVLAN22: DPEncryptionKey = "$(DPEncryptionKey)
    Debug-Output "WVLAN22: DPNWID = "$(DPNWID)
    Debug-Output "WVLAN22: DPStationName = "$(DPStationName)
    Debug-Output "WVLAN22: DPStationAddress = "$(DPStationAddress)

adapterSetup = +
    Debug-Output "WVLAN22: adapterSetup"
    Shell "" DebugConfiguration "Before Dialog"
    Set from = adapterOptions
    Set IOAddrHexValue = *($(IOAddrHexList), ~($(IOAddrList),$(IOAddrValue)))
    IfStr $(IOADDRHexValue) == $(KeyNull)
        Set IOADDRList = >($(IOADDRList), $(IoBaseAddress))
        Shell $(ParamInf) HexListFromDecList $(IOADDRList)
        Set IOADDRHexList = $($R0)
        Set IOADDRHexValue = *($(IOADDRHexList), ~($(IOADDRList),$(IoBaseAddress)))
    EndIf
    Set IRQValue = *($(IRQList), ~($(IRQList),$(InterruptNumber)))
    IfStr $(IRQValue) == $(KeyNull)
        Set IRQList = >($(IRQList), $(InterruptNumber))
    EndIf
;;; Debug-Output "WVLAN22: Before Shell param_parameterconfidence"
    Shell $(ParamInf) Param_ParameterConfidence
;;; Debug-Output "WVLAN22: After Shell param_parameterconfidence"
    IfStr(i) $($R0) != STATUS_SUCCESSFUL
        Debug-Output "WVLAN22: Parameter confidence too low to bypass configuration"
        Goto adapterOptions
    EndIf
    IfStr(i) $(DetectedCard) == TRUE
        IfStr(i) $(!STF_INSTALL_MODE) != CUSTOM
            Goto adapterVerify
        EndIf
    EndIf
adapterOptions = +
    Debug-Output "WVLAN22: adapterOptions"
    Set from = adapterOptions
    LoadLibrary "" $(ConfigFileName) LibHandle
    Debug-Output "WVLAN22: LibHandle = "$(LibHandle)

    IfInt $(BoardType) == 8
        Debug-Output "WVLAN22: WVIOIRQDlg Setup"
        Read-Syms WVIOIRQDlg
            UI Start "WVIOIRQDlg" $(LibHandle)
            IfStr(i) $(DLGEVENT) == "CONTINUE"
                Set IOAddrHexValue = $(Combo1Out)
                Set IOAddrValue = *($(IOAddrList), ~($(IOAddrHexList),$(IOAddrHexValue)))
                Set InterruptNumber = $(Combo2Out)
                UI Pop 1
            Else-IfStr(i) $(DLGEVENT) == "BACK"
                Debug-Output "WVLAN22: Action CANCEL"
                Set CommonStatus = STATUS_USERCANCEL
                UI Pop 1
                FreeLibrary $(LibHandle)
                Goto end
            Else
                Debug-Output "WVLAN22: Action UNKNOWN"
                UI Pop 1
                FreeLibrary $(LibHandle)
                Goto end
            EndIf
        Else
        Debug-Output "WVLAN22: WVIODlg Setup"
        Read-Syms WVIODlg
            UI Start "WVIODlg" $(LibHandle)
            IfStr(i) $(DLGEVENT) == "CONTINUE"
                Set IOAddrHexValue = $(Combo1Out)
                Set IOAddrValue = *($(IOAddrList), ~($(IOAddrHexList),$(IOAddrHexValue)))
                UI Pop 1
            Else-IfStr(i) $(DLGEVENT) == "BACK"
                Set CommonStatus = STATUS_USERCANCEL
                Debug-Output "WVLAN22: Action CANCEL"
                UI Pop 1
                FreeLibrary $(LibHandle)
                Goto end
            Else
                Debug-Output "WVLAN22: Action UNKNOWN"
                UI Pop 1
                FreeLibrary $(LibHandle)
                Goto end
            EndIf
    Endif

adapterOptions2 = +
    Debug-Output "WVLAN22: adapterOptions2"
    Set from = adapterOptions2
    Read-Syms WVLAN22Dlg

again = +
    UI Start "WVLAN22Dlg" $(LibHandle)
    Debug-Output "WVLAN22: Returned from dialog."

    IfStr(i) $(DLGEVENT) == "CONTINUE"
        Debug-Output "WVLAN22: Action CONTINUE"

        Set DPRoamingCBState = *($(CheckItemsOut), 1)
        Set DPEncryptCBState = *($(CheckItemsOut), 2)

        Set-HexToDec DPDomainID = *($(EditTextOut),1)
        Set-HexToDec DPBeaconKey = *($(EditTextOut),2)
        Set DPEncryptionKey = *($(EditTextOut),3)
        Set-HexToDec DPNWID = *($(EditTextOut),4)
        Set DPStationName = *($(EditTextOut),5)
        Set DPStationAddress = *($(EditTextOut),6)

        Debug-Output "WVLAN22: DPRoamingCBState = "$(DPRoamingCBState)
        Debug-Output "WVLAN22: DPEncryptCBState = "$(DPEncryptCBState)
        Debug-Output "WVLAN22: DPDomainID = "$(DPDomainID)
        Debug-Output "WVLAN22: DPBeaconKey = "$(DPBeaconKey)
        Debug-Output "WVLAN22: DPEncryptionKey = "$(DPEncryptionKey)
        Debug-Output "WVLAN22: DPNWID = "$(DPNWID)
        Debug-Output "WVLAN22: DPStationName = "$(DPStationName)
        Debug-Output "WVLAN22: DPStationAddress = "$(DPStationAddress)

        FreeLibrary $(LibHandle)
        UI Pop 1    

    Else-IfStr(i) $(DLGEVENT) == "BACK"
        Set CommonStatus = STATUS_USERCANCEL
        Debug-Output "WVLAN22: Action CANCEL"
        UI Pop 1
        FreeLibrary $(LibHandle)
        Goto end

    Else-IfStr(i) $(DLGEVENT) == "FREEBUTTON1"
        Debug-Output "WVLAN22: Action HELP."
        StartDetachedProcess HelpResult "" "" winhlp32.exe $(!STF_WINDOWSSYSPATH)"\"$(HelpFileName)
        goto again
        
    Else
        Debug-Output "WVLAN22: Unknown Dialog Action"
        UI Pop 1
        FreeLibrary $(LibHandle)
        Goto end
    Endif

adapterVerify = +
    Debug-Output "WVLAN22: adapterVerify"
    Shell "" DebugConfiguration "After Dialog"
    IfStr(i) $(DetectedCard) != TRUE
        Goto skipOptions
    EndIf
    Debug-Output "WVLAN22: Calling Param_VerifyCard"
    Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD)
    IfStr(i) $($R0) == STATUS_SUCCESSFUL
        Debug-Output "WVLAN22: Param_VerifyCard succeeded"
        Goto skipOptions
    EndIf
    Set from = adapterOptions
    Set to = skipOptions
    Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run RegistryErrorString"
        Goto ShellCodeError
    EndIf
    Set Error = $($R0)
    Goto Warning
skipOptions = +
    Debug-Output "WVLAN22: skipOptions"
    IfInt $(OldVersionExisted) == $(TRUE)
        IfStr(i) $(!NTN_InstallMode) == configure
            Goto writeParameters
        EndIf
    EndIf
    Debug-Output "WVLAN22: StartWait"
    StartWait
    IfInt $(OldVersionExisted) == $(FALSE)
        IfStr(i) $(!NTN_InstallMode) == "install"
            IfStr(i) $(DoCopy) == "YES"
                Debug-Output "WVLAN22: DoAskSource"
                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
        EndIf
        Debug-Output "WVLAN22: AddSoftwareComponent"
        Debug-Output "WVLAN22: Mfg = "$(Manufacturer)
        Debug-Output "WVLAN22: ProductSoftwareName = "$(ProductSoftwareName)
        Debug-Output "WVLAN22: ProductSoftwareTitle = "$(ProductSoftwareTitle)
        Debug-Output "WVLAN22: STF_CONTEXTINFNAME = "$(STF_CONTEXTINFNAME)
        Debug-Output "WVLAN22: NetEventDLL = "$(NetEventDLL)
        Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
            $(ProductSoftwareName), +
            $(ProductSoftwareName), +
            $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
            $(ProductSoftwarePath), "kernel", "NDIS", {}, "",+
            $(NetEventDLL)
        Set OEM_ABANDON_SOFTWARE = TRUE
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "WVLAN22: Cannot run AddSoftwareComponent"
            Goto ShellCodeError
        EndIf
        Set RegistryErrorIndex = $($R0)
        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            EndWait
            Debug-Output "WVLAN22: AddSoftwareComponent ERROR="$(RegistryErrorIndex)
            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)
            Debug-Output "WVLAN22: Cannot run AddValueList: SoftProductKey"
            Goto ShellCodeError
        EndIf
        Set RegistryErrorIndex = $($R0)
        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            EndWait
            Debug-Output "WVLAN22: AddValueList ERROR="$(RegistryErrorIndex)
            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)
            Debug-Output "WVLAN22: Cannot run AddValueList: SoftNetRuleKey"
            Goto ShellCodeError
        EndIf
        Set RegistryErrorIndex = $($R0)
        CloseRegKey $(SoftProductKey)
        CloseRegKey $(SoftNetRuleKey)
        CloseRegKey $(SoftServiceKey)
        CloseRegKey $(SoftParameterKey)
        CloseRegKey $(SoftLinkageKey)
        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            EndWait
            Debug-Output "WVLAN22: AddValueList ERROR="$(RegistryErrorIndex)
            Goto fatalRegistry
        EndIf
    EndIf
doEachAdapter = +
    Debug-Output "WVLAN22: doEachAdapter"
    IfInt $(BoardType) == 3
        ForListDo $(AdapterList)
            Set BusNum = *($($),1)
            Set SlotNum = *($($),2)
            Debug-Output "WVLAN22: doEachAdapter - BusNum="$(BusNum)" SlotNum="$(SlotNum)
            Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNum), +
                $(SlotNum), $(ProductHardwareDescription), $(ProductHardwareName)
            IfInt $($ShellCode) != $(!SHELL_CODE_OK)
                Debug-Output "WVLAN22: Cannot run IsNetCardAlreadyInstalled"
                Goto ShellCodeError
            EndIf
            IfStr $($R0) != "NO_ERROR"
                Debug-Output "WVLAN22: IsNetCardAlreadyInstalled ERROR="$($R0)
                Set Error = $($R0)
                Goto fatal
            EndIf
            IfStr(i) $($R1) != "YES"
                Debug-Output "WVLAN22: Calling doOneAdapter."
                goto doOneAdapter
doNextAdapter = +
                Debug-Output "WVLAN22: Return from doOneAdapter."
            EndIf
        EndForListDo
        Goto successful
    EndIf
doOneAdapter = +
    Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
    IfInt $($R4) != -1
        Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
    EndIf
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22:Cannot run AddHardwareComponent"
        Goto ShellCodeError
    EndIf
    Set RegistryErrorIndex = $($R0)
    IfStr(i) $(RegistryErrorIndex) != NO_ERROR
        EndWait
        Debug-Output "WVLAN22: AddHardwareComponent ERROR="$($R0)
        CloseRegKey $($R1)
        CloseRegKey $($R2)
        CloseRegKey $($R3)
        Goto fatalRegistry
    EndIf
    Set HardNetCardKey  = $($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)}}
    Shell  $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run AddValueList: HardNetCardKey"
        Goto ShellCodeError
    EndIf
    Shell $(UtilityInf), GetBusTypeNum
    Set BusTypeNum = $($R1)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run GetBusTypeNum"
        Goto ShellCodeError
    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, $(KeyAdapterRules), $(NewValueList)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run AddValueList: KeyAdapterRules"
        Goto ShellCodeError
    EndIf
    Set RegistryErrorIndex = $($R0)
    IfStr(i) $(RegistryErrorIndex) != NO_ERROR
        EndWait
        Debug-Output "WVLAN22: AddValueList: KeyAdapterRules ERROR="$(RegistryErrorIndex)
        CloseRegKey $(KeyParameters)
        CloseRegKey $(KeyAdapterRules)
        Goto fatalRegistry
    EndIf
    CloseRegKey $(HardNetCardKey)
    CloseRegKey $(KeyAdapterRules)
    Goto writeParameters
writeParameters = +
    Debug-Output "WVLAN22: writeParameters"
    IfInt $(BoardType) == 1
; ISA
        Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),1},+
                            {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
                            {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOAddrValue)},+
                            {DebugFlags,$(NoTitle),$(!REG_VT_DWORD),$(DPDebugFlags)},+
                            {DomainID,$(NoTitle),$(!REG_VT_DWORD),$(DPDomainID)},+
                            {BeaconKey,$(NoTitle),$(!REG_VT_DWORD),$(DPBeaconKey)},+
                            {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
                            {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(DPStationAddress)},+
                            {EncryptionKey,$(NoTitle),$(!REG_VT_SZ),$(DPEncryptionKey)},+
                            {StationName,$(NoTitle),$(!REG_VT_SZ),$(DPStationName)},+
                            {RoamingEnable,$(NoTitle),$(!REG_VT_SZ),$(DPRoamingCBState)},+
                            {EncryptionEnable,$(NoTitle),$(!REG_VT_SZ),$(DPEncryptCBState)},+
                            {NWID,$(NoTitle),$(!REG_VT_DWORD),$(DPNWID)}}
    EndIf
;!  IfInt $(BoardType) == 3
;!; MCA
;!      Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),3},+
;!                          {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
;!                          {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(IOAddrValue)},+
;!                          {DebugFlags,$(NoTitle),$(!REG_VT_DWORD),$(DPDebugFlags)},+
;!                          {DomainID,$(NoTitle),$(!REG_VT_DWORD),$(DPDomainID)},+
;!                          {BeaconKey,$(NoTitle),$(!REG_VT_DWORD),$(DPBeaconKey)},+
;!                          {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
;!                          {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(DPStationAddress)},+
;!                          {EncryptionKey,$(NoTitle),$(!REG_VT_SZ),$(DPEncryptionKey)},+
;!                          {StationName,$(NoTitle),$(!REG_VT_SZ),$(DPStationName)},+
;!                          {RoamingEnable,$(NoTitle),$(!REG_VT_SZ),$(DPRoamingCBState)},+
;!                          {EncryptionEnable,$(NoTitle),$(!REG_VT_SZ),$(DPEncryptCBState)},+
;!                          {NWID,$(NoTitle),$(!REG_VT_DWORD),$(DPNWID)}}
;!  EndIf
    IfInt $(BoardType) == 8
; PCMCIA
        Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),1},+
                            {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
                            {DebugFlags,$(NoTitle),$(!REG_VT_DWORD),$(DPDebugFlags)},+
                            {DomainID,$(NoTitle),$(!REG_VT_DWORD),$(DPDomainID)},+
                            {BeaconKey,$(NoTitle),$(!REG_VT_DWORD),$(DPBeaconKey)},+
                            {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(InterruptNumber)},+
                            {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOAddrValue)},+
                            {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
                            {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(DPStationAddress)},+
                            {EncryptionKey,$(NoTitle),$(!REG_VT_SZ),$(DPEncryptionKey)},+
                            {StationName,$(NoTitle),$(!REG_VT_SZ),$(DPStationName)},+
                            {RoamingEnable,$(NoTitle),$(!REG_VT_SZ),$(DPRoamingCBState)},+
                            {EncryptionEnable,$(NoTitle),$(!REG_VT_SZ),$(DPEncryptCBState)},+
                            {NWID,$(NoTitle),$(!REG_VT_DWORD),$(DPNWID)},+
                            {PCMCIA,$(NoTitle),$(!REG_VT_DWORD),$(DPPCMCIA)},+
                            {PCCARDAttributeMemoryAddress,$(NoTitle),$(!REG_VT_DWORD),$(DPPCCARDAttributeMemoryAddress)},+
                            {PCCARDAttributeMemorySize,$(NoTitle),$(!REG_VT_DWORD),$(DPPCCARDAttributeMemorySize)}}
    EndIf
    Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)\
    CloseRegKey $(KeyParameters)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run AddValueList: KeyParameters"
        Goto ShellCodeError
    EndIf
    Set RegistryErrorIndex = $($R0)
    IfStr(i) $(RegistryErrorIndex) != NO_ERROR
        Debug-Output "WVLAN22: AddValueList: KeyParameters ERROR="$(RegistryErrorIndex)
        Goto fatalRegistry
    EndIf
;
; If PCMCIA adapter, add keys and values to allow NT to create attribute window
; when the system boots.
    IfInt $(BoardType) == 8
;
; First try to open the PCMCIA registry key 
;   HKey_Local_Machine\Services\CurrentControlSet\PCMCIA\Database
;
        OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaKeyName) $(MAXIMUM_ALLOWED) PcmciaDatabaseKey
        IfStr $(PcmciaDatabaseKey) == $(KeyNull)
            Debug-Output "WVLAN22: cannot open PCMCIA database key"
            Goto fatalRegistry
        EndIf
;;;;;
;;;;; Try to create the manufacturer keys in PCMCIA database, but don't fail if already
;;;;; there.
;;;;;
        CreateRegKey $(PcmciaDatabaseKey) { $(NCRManufacturerName), 0, GenericClass } "" +
            $(MAXIMUM_ALLOWED) "" PcmciaMfgKey
        IfStr $(PcmciaMfgKey) == $(KeyNull)
            OpenRegKey $(PcmciaDatabaseKey) "" $(NCRManufacturerName) $(MAXIMUM_ALLOWED) PcmciaMfgKey
            IfStr $(PcmciaMfgKey) == $(KeyNull)
                Debug-Output "WVLAN22: cannot open PCMCIA\Database\NCR key"
                CloseRegKey $(PcmciaDatabaseKey)
                Goto fatalRegistry
            EndIf
        EndIf
;;;;;
;;;;; Create WaveLAN/PCMCIA key under manufacturer key
;;;;;
        CreateRegKey $(PcmciaMfgKey) { $(PcmciaProductName), 0, GenericClass } "" +
            $(MAXIMUM_ALLOWED) "" PcmciaProdKey
        IfStr $(PcmciaProdKey) == $(KeyNull)
            OpenRegKey $(PcmciaMfgKey) "" $(PcmciaProductName) $(MAXIMUM_ALLOWED) PcmciaProdKey
            IfStr $(PcmciaProdKey) == $(KeyNull)
                Debug-Output "WVLAN22: cannot open PCMCIA\Database\NCR\WaveLAN/PCMCIA key"
                CloseRegKey $(PcmciaMfgKey)
                Goto fatalRegistry
            EndIf
        Endif
        CloseRegKey $(PcmciaMfgKey)
;;;;;
;;;;; Required NCR keys created or opened, now write values to the registry
;;;;;
        Set NewValueList = {{AttributeMemorySize,$(NoTitle),$(!REG_VT_DWORD),$(DPPCCARDAttributeMemorySize)},+
                            {DeviceType,$(NoTitle),$(!REG_VT_SZ),"NET"},+
                            {InfFileName,$(NoTitle),$(!REG_VT_SZ),$(!UG_Filename)},+
                            {Option,$(NoTitle),$(!REG_VT_SZ),"WaveLAN_PCMCIA"},+
                            {Driver,$(NoTitle),$(!REG_VT_SZ), $(ProductSoftwareName)}}
        Shell  $(UtilityInf), AddValueList, $(PcmciaProdKey), $(NewValueList)
        CloseRegKey $(PcmciaProdKey)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "WVLAN22: Cannot run AddValueList: PcmciaProdKey (NCR)"
            Goto ShellCodeError
        EndIf
;;;;; 
;;;;; Repeat above for AT&T cards, but don't need to reopen PCMCIA database key.
;;;;;
;;;;;
;;;;; Try to create the manufacturer keys in PCMCIA database, but don't fail if already
;;;;; there.
;;;;;
        CreateRegKey $(PcmciaDatabaseKey) { $(ATTManufacturerName), 0, GenericClass } "" +
            $(MAXIMUM_ALLOWED) "" PcmciaMfgKey
        IfStr $(PcmciaMfgKey) == $(KeyNull)
            OpenRegKey $(PcmciaDatabaseKey) "" $(ATTManufacturerName) $(MAXIMUM_ALLOWED) PcmciaMfgKey
            IfStr $(PcmciaMfgKey) == $(KeyNull)
                Debug-Output "WVLAN22: cannot open PCMCIA\Database\ATT key"
                CloseRegKey $(PcmciaDatabaseKey)
                Goto fatalRegistry
            EndIf
        EndIf
;;;;;
;;;;; Create WaveLAN/PCMCIA key under manufacturer key
;;;;;
        CreateRegKey $(PcmciaMfgKey) { $(PcmciaProductName), 0, GenericClass } "" +
            $(MAXIMUM_ALLOWED) "" PcmciaProdKey
        IfStr $(PcmciaProdKey) == $(KeyNull)
            OpenRegKey $(PcmciaMfgKey) "" $(PcmciaProductName) $(MAXIMUM_ALLOWED) PcmciaProdKey
            IfStr $(PcmciaProdKey) == $(KeyNull)
                Debug-Output "WVLAN22: cannot open PCMCIA\Database\NCR\WaveLAN/PCMCIA key"
                CloseRegKey $(PcmciaMfgKey)
                Goto fatalRegistry
            EndIf
        Endif
        CloseRegKey $(PcmciaMfgKey)
;;;;;
;;;;; Required AT&T keys created or opened, now write values to the registry
;;;;;
        Set NewValueList = {{AttributeMemorySize,$(NoTitle),$(!REG_VT_DWORD),$(DPPCCARDAttributeMemorySize)},+
                            {DeviceType,$(NoTitle),$(!REG_VT_SZ),"NET"},+
                            {InfFileName,$(NoTitle),$(!REG_VT_SZ),$(!UG_Filename)},+
                            {Option,$(NoTitle),$(!REG_VT_SZ),"WaveLAN_PCMCIA"},+
                            {Driver,$(NoTitle),$(!REG_VT_SZ), $(ProductSoftwareName)}}
        Shell  $(UtilityInf), AddValueList, $(PcmciaProdKey), $(NewValueList)
        CloseRegKey $(PcmciaProdKey)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "WVLAN22: Cannot run AddValueList: PcmciaProdKey (NCR)"
            CloseRegKey $(PcmciaDatabaseKey)
            Goto ShellCodeError
        EndIf
;;;;; 
;;;;; Repeat above for Lucent Technologies cards, but don't need to reopen PCMCIA database key.
;;;;;
;;;;;
;;;;; Try to create the manufacturer keys in PCMCIA database, but don't fail if already
;;;;; there.
;;;;;
        CreateRegKey $(PcmciaDatabaseKey) { $(LTManufacturerName), 0, GenericClass } "" +
            $(MAXIMUM_ALLOWED) "" PcmciaMfgKey
        IfStr $(PcmciaMfgKey) == $(KeyNull)
            OpenRegKey $(PcmciaDatabaseKey) "" $(LTManufacturerName) $(MAXIMUM_ALLOWED) PcmciaMfgKey
            IfStr $(PcmciaMfgKey) == $(KeyNull)
                Debug-Output "WVLAN22: cannot open PCMCIA\Database\LT key"
                CloseRegKey $(PcmciaDatabaseKey)
                Goto fatalRegistry
            EndIf
        EndIf
;;;;;
;;;;; Create WaveLAN/PCMCIA key under manufacturer key
;;;;;
        CreateRegKey $(PcmciaMfgKey) { $(PcmciaProductName), 0, GenericClass } "" +
            $(MAXIMUM_ALLOWED) "" PcmciaProdKey
        IfStr $(PcmciaProdKey) == $(KeyNull)
            OpenRegKey $(PcmciaMfgKey) "" $(PcmciaProductName) $(MAXIMUM_ALLOWED) PcmciaProdKey
            IfStr $(PcmciaProdKey) == $(KeyNull)
                Debug-Output "WVLAN22: cannot open PCMCIA\Database\NCR\WaveLAN/PCMCIA key"
                CloseRegKey $(PcmciaMfgKey)
                Goto fatalRegistry
            EndIf
        Endif
        CloseRegKey $(PcmciaDatabaseKey)
        CloseRegKey $(PcmciaMfgKey)
;;;;;
;;;;; Required LT keys created or opened, now write values to the registry
;;;;;
        Set NewValueList = {{AttributeMemorySize,$(NoTitle),$(!REG_VT_DWORD),$(DPPCCARDAttributeMemorySize)},+
                            {DeviceType,$(NoTitle),$(!REG_VT_SZ),"NET"},+
                            {InfFileName,$(NoTitle),$(!REG_VT_SZ),$(!UG_Filename)},+
                            {Option,$(NoTitle),$(!REG_VT_SZ),"WaveLAN_PCMCIA"},+
                            {Driver,$(NoTitle),$(!REG_VT_SZ), $(ProductSoftwareName)}}
        Shell  $(UtilityInf), AddValueList, $(PcmciaProdKey), $(NewValueList)
        CloseRegKey $(PcmciaProdKey)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "WVLAN22: Cannot run AddValueList: PcmciaProdKey (NCR)"
            CloseRegKey $(PcmciaDatabaseKey)
            Goto ShellCodeError
        EndIf
 
    EndIf
    EndWait
    Goto successful
BindingAdapter =+
    Set Error =  "WVLAN22: Setup does not support binding."
    Debug-Output $(Error)
    Goto fatal
RemoveAdapter = +
    Debug-Output "WVLAN22: RemoveAdapter"
    IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
        Debug-Output "WVLAN22: Calling RemoveSoftwareComponent"
        Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
            $(ProductSoftwareName)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "WVLAN22: Cannot run RemoveSoftwareComponent"
            Goto ShellCodeError
        EndIf
        Set RegistryErrorIndex = $($R0)
        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            Debug-Output "WVLAN22: RemoveSoftwareComponent ERROR="$($R0)
            Goto fatalRegistry
        EndIf
    Else
        Debug-Output "WVLAN22: Calling RemoveHardwareComponent"
        Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
            $(ProductHardwareName), $(!NTN_RegBase)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "WVLAN22: Cannot run RemoveHardwareComponent"
            Goto ShellCodeError
        EndIf
        Set RegistryErrorIndex = $($R0)
        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            Debug-Output "WVLAN22: RemoveHardwareComponent ERROR="$($R0)
            Goto fatalRegistry
        EndIf
    EndIf
    Goto end
UpgradeSoftware = +
    IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
        Debug-Output "WVLAN22: Upgrade Software Component"
        OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
        IfStr $(KeyProduct) != $(KeyNull)
            GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
            Set Version = *($(VersionInfo), 4)
            Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
            IfInt $($ShellCode) != $(!SHELL_CODE_OK)
                Debug-Output "WVLAN22: Cannot run GetInfFileNameFromRegistry"
                Goto ShellCodeError
            EndIf
            Set !UG_Filename = $($R0)
            IfStr(i) $(!UG_Filename) != ""
                install "Install-Update"
                IfStr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
                    Debug-Output "WVLAN22: Install ERROR="$(STF_INSTALL_OUTCOME)
                    Goto fatal
                EndIf
            Else
                Debug-Output "WVLAN22: InfFileName is NULL"
            EndIf
            SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
            SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
            IfInt $(Version) != $(ProductVersion)
            EndIf
            CloseRegKey $(KeyProduct)
        Else
            Debug-Output "WVLAN22: KeyProduct ERROR="$(KeyProduct)
            Goto fatalRegistry
        EndIf
    Else
        Debug-Output "WVLAN22: Upgrade Hardware Component"
        OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
                $(MAXIMUM_ALLOWED) NetworkCardKey
        IfStr(i) $(NetworkCardKey) != $(KeyNull)
            GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
            Set ServiceName = *($(ServiceNameInfo), 4)
            OpenRegKey $(NetworkCardKey) "" "NetRules" +
                $(MAXIMUM_ALLOWED) NetRuleKey
            IfStr(i) $(NetRuleKey) != $(KeyNull)
            Else
                Debug-Output "WVLAN22: NetKeyRule ERROR="$(NetKeyRule)
                Goto fatalRegistry
            EndIf
            CloseRegKey $(NetRules)
            CloseRegKey $(NetworkCardKey)
        Else
            Debug-Output "WVLAN22: NetworkCardKey ERROR="$(NetworkCardKey)
            Goto fatalRegistry
        EndIf
        OpenRegKey $(!REG_H_LOCAL) "" +
                $(!NTN_ServiceBase)"\"$(ServiceName) +
                $(MAXIMUM_ALLOWED) ServiceKey
        IfStr(i) $(ServiceKey) != $(KeyNull)
            CloseRegKey $(ServiceKey)
        Else
            Debug-Output "WVLAN22: ServiceKey ERROR="$(ServiceKey)
            Goto fatalRegistry
        EndIf
    EndIf
    Goto end
successful = +
    Goto end
abandon = +
    ForListDo $(OEM_ABANDON_OPTIONS)
        Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
            $(ProductSoftwareName), $($)
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "WVLAN22: Cannot run RemoveHardwareComponent"
            Goto ShellCodeError
        EndIf
        Set RegistryErrorIndex = $($R0)
        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            Debug-Output "WVLAN22: RemoveHardwareComponent ERROR="$(RegistryErrorIndex)
            Goto fatalRegistry
        EndIf
    EndForListDo
    IfStr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
        Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
            $(ProductSoftwareName), FALSE
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "WVLAN22: Cannot run RemoveSoftwareComponent"
            Goto ShellCodeError
        EndIf
        Set RegistryErrorIndex = $($R0)
        IfStr(i) $(RegistryErrorIndex) != NO_ERROR
            Debug-Output "WVLAN22: RemoveSoftwareComponent ERROR="$(RegistryErrorIndex)
            Goto fatalRegistry
        EndIf
    EndIf
    Goto end
warning = +
    Shell $(SubRoutineInf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run SetupMessage"
        Goto ShellCodeError
    EndIf
    IfStr(i) $($R1) == "OK"
        Debug-Output "WVLAN22: WARNING goto "$(to)
        Goto $(to)
    Else-IfStr(i) $($R1) == "CANCEL"
        Debug-Output "WVLAN22: WARNING goto "$(from)
        Goto $(from)
    Else
        Debug-Output "WVLAN22: WARNING goto end"
        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)
            Debug-Output "WVLAN22: Cannot run RegistryErrorString"
            Goto ShellCodeError
        EndIf
        Set Error = $($R0)
    EndIf
    Shell $(SubRoutineInf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run SetupMessage"
        Goto ShellCodeError
    EndIf
    IfStr(i) $($R1) == "OK"
        Debug-Output "WVLAN22: NONFATAL goto "$(from)
        Goto $(from)
    Else
        Debug-Output "WVLAN22: NONFATAL goto end"
        Goto end
    EndIf
fatalRegistry = +
    Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run RegistryErrorString"
        Goto ShellCodeError
    EndIf
    Set Error = $($R0)
    Goto fatal
fatalDetect = +
    Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run RegistryErrorString"
        Goto ShellCodeError
    EndIf
    Set Error = $($R0)
    Goto fatal
fatal = +
    IfStr(i) $(Error) == ""
        Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
        IfInt $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "WVLAN22: Cannot run RegistryErrorString"
            Goto ShellCodeError
        EndIf
        Set Error = $($R0)
    EndIf
    Shell $(SubRoutineInf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
    IfInt $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "WVLAN22: Cannot run SetupMessage"
        Goto ShellCodeError
    EndIf
    Goto SetFailed
ShellCodeError = +
    Set DlgType      = "MessageBox"
    Set STF_MB_TITLE = "Error: "$(FunctionTitle)
    Set STF_MB_TEXT  = "Shell Code Error"
    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 - All done, return to setup program
;
end = +
    Goto term
term = +
    Set !DebugOutputControl = 0
    Return $(CommonStatus)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Dump configuration information to debug output
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[DebugConfiguration]
    Debug-Output "WVLAN22: CONFIGURATION:     "$($0)
    Debug-Output "WVLAN22: IOAddrValue        "$(!p:IOAddrValue)
    Return

[Install-Option]
    Debug-Output "WVLAN22: Install-Option"
    Set STF_VITAL = ""
    IfStr(i) $(AddCopy) == "YES"
        AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
    EndIf
    IfStr(i) $(DoCopy) == "YES"
        Set !STF_NCPA_FLUSH_COPYLIST = TRUE
        CopyFilesInCopyList
    EndIf
    IfStr(i) $(DoConfig) == "YES"
    EndIf
    Exit

[Install-Update]
    Debug-Output "WVLAN22: Install-Update"
    Set STF_VITAL        = ""
    Set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
    Set !STF_NCPA_FLUSH_COPYLIST = TRUE
    CopyFilesInCopyList
    exit

[Install-Dll]
    Debug-Output "WVLAN22: Install-Dll"
    Set STF_VITAL        = ""
    Set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
    Set !STF_NCPA_FLUSH_COPYLIST = TRUE
    CopyFilesInCopyList
    exit

[Source Media Descriptions]
    1 = "WaveLAN Setup Disk", TAGFILE = WVLAN22.sys

[Files-Inf]
    1, oemsetnt.inf, SIZE=32768, RENAME=$(!UG_Filename)

[Files-Dll]
    1, $(ConfigFileName),SIZE=65536
    1, $(HelpFileName),SIZE=65536
     
[Files-WaveLAN_ISA]
    1, WVLAN22.sys , SIZE=65536

;![Files-WaveLAN_MCA]
;!  1, WVLAN22.sys , SIZE=65536

[Files-WaveLAN_PCMCIA]
    1, WVLAN22.sys , SIZE=65536

[ProductType]
    STF_PRODUCT                 = winNT
    STF_PLATFORM                = i386

[Options]
    WaveLAN_ISA
;!  WaveLAN_MCA
    WaveLAN_PCMCIA

[LanguagesSupported]
    ENG

[OptionsTextENG]
    WaveLAN_ISA                 = "WaveLAN ISA Adapter"
;!  WaveLAN_MCA                 = "WaveLAN MC Adapter"
    WaveLAN_PCMCIA              = "WaveLAN PCMCIA Adapter"

[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               = "WaveLAN Adapter Setup"
    ProductSoftwareDescription  = "WaveLAN NDIS 3.1 Miniport Driver"
    ProductHardwareDescription  = "WaveLAN Wireless Network Adapter"

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

[WVIODlg]
    DlgTemplate                 = "WVIODLG"
    DlgType                     = "Combination"
    Combo1List                  = $(IOAddrHexList)
    Combo1Out                   = $(IOAddrHexValue)
    ComboListItemsIn            = {Combo1List}
    ComboListItemsOut           = {Combo1Out}
    NotifyFields                = {NO, NO, NO, NO}
    HelpContext                 = $(!IDH_DB_OEMSETUP_INS)

[WVIOIRQDlg]
    DlgTemplate                 = "WVIOIRQDLG"
    DlgType                     = "Combination"
    Combo1List                  = $(IOAddrHexList)
    Combo1Out                   = $(IOAddrHexValue)
    Combo2List                  = $(IRQList)
    Combo2Out                   = $(InterruptNumber)
    ComboListItemsIn            = {Combo1List, Combo2List}
    ComboListItemsOut           = {Combo1Out, Combo2Out}
    NotifyFields                = {NO, NO, NO, NO}
    HelpContext                 = $(!IDH_DB_OEMSETUP_INS)

[WVLAN22Dlg]
    DlgTemplate                 = "WVLAN22DLG"
    DlgType                     = "RadioCombination"
    EditTextIn                  = {$(DPDomainID),$(DPBeaconKey),$(DPEncryptionKey),$(DPNWID),$(DPStationName),$(DPStationAddress)}
    EditTextLim                 = {4,4,16,4,31,12}
    NotifyFields                = {NO, NO, NO, NO, NO, NO}
    CheckItemsIn                = { $(DPRoamingCBState), $(DPEncryptCBState) }
    HelpContext                 = ""
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: 1.05