Oemsetnt.inf Driver File Contents (ad800rfb.zip)

;***********************************************************************
;
;  Module Name: OEMSETNT.INF
;  Author: Huntsville Development Center
;  $Archive: /Projects/Tigris and Derivatives Branches/Branch099/Reference Designs/Tigris/Install Files/INF/WAN/NT4/Oemsetnt.inf $
;  $Date: 11/08/02 11:05a $
;
;  Copyright © Conexant Systems Inc. 1999 - 2002.  All rights reserved
;
;  Module Description:
;     WinNT4 installation file for the
;     Conexant AccessRunner PCI ADSL WAN Adapter
;
;***********************************************************************

;***********************************************************************
; OPTION TYPE
; -----------
; This identifies the Option type we are dealing with.  The different
; possible types are:
;
; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
;
;  Types specific to networking:
;
; NetAdapter,        a netcard / adapter combination or just a netcard
; NetDriver,         just a netcard driver
; NetTransport,      a complete NDIS-compliant TDI transport stack
; NetService,        an NT networking service
; NetWork,           a complete network ensemble.
; NetProvider        a complete network which supports NT MPR protocol
;***********************************************************************

[Identification]
OptionType = NetAdapter

;***********************************************************************
; PlatformsSupported
; ------------------
; This identifies the platforms supported by the adapter card.
; Possible types are:
;
; ISA, EISA, MCA, and PCI
;***********************************************************************

[PlatformsSupported]
PCI

;***********************************************************************
; OPTION LIST
; -----------
; This section lists the OEM Option key names.  These keys are locale
; independent and used to represent the option in a locale independent
; manner.
;
;***********************************************************************
[Options]
Conexant_PCI_ADSL_WAN_Driver

;***********************************************************************
;
;***********************************************************************
;ToDo  Add new registry entry default values here

[FileConstants]
; LED/Relay Enable.
; Set LED_RELAY_ENABLE = LED_HW if hardware supports LEDs.
; Otherwise set LED_RELAY_ENABLE = RELAY_HW

RELAY_HW		 			= 0
LED_HW			 			= 1
LED_RELAY_ENABLE 			= $(RELAY_HW)

InfName                 	= "Conexant_PCI_ADSL_WAN_Driver.INF"
UtilityInf              	= "UTILITY.INF"
ParamInf                	= "NCPARAM.INF"
subroutineinf           	= "SUBROUTN.INF"
SoftwareType            	= "driver"
Exit_Code               	= 0
NetEventDLL             	= "%SystemRoot%\System32\netevent.dll"
IoLogMsgDLL             	= "%SystemRoot%\System32\IoLogMsg.dll"
Manufacturer            	= "Conexant"
ProductCode   				= "4"
HardwareCode   		 		= "1"
ProductMajorVersion     	= "2"
ProductMinorVersion     	= "099"
ProductVersion          	= $(ProductCode)"."$(HardwareCode)"."$(ProductMajorVersion)"."$(ProductMinorVersion)

; This description is displayed in the "Add RAS Device" dialog box as a "Ras Capable Device"
ProductSoftwareName     	= "CnxTgN"
ProductSoftwareImagePath 	= "\SystemRoot\System32\drivers\CnxTgN.sys"
NetRuleSoftwareType     	= "Conexant_PCI_ADSL_WAN_DriverSys Conexant_PCI_ADSL_WAN_DriverDriver"
NetRuleSoftwareUse      	= $(SoftwareType)
NetRuleSoftwareBindForm 	= """Conexant_PCI_ADSL_WAN_DriverSys"" yes no container"
NetRuleSoftwareClass    	= {"Conexant_PCI_ADSL_WAN_DriverDriver basic"}
NetRuleSoftwareBindable 	= {"Conexant_PCI_ADSL_WAN_DriverDriver Conexant_PCI_ADSL_WAN_DriverAdapter non exclusive 100"}
NetRuleHardwareBindForm 	= " yes yes container"
NetRuleHardwareType 		= "Conexant_PCI_ADSL_WAN_Driver Conexant_PCI_ADSL_WAN_DriverAdapter"
NetRuleHardwareClass 		= {"Conexant_PCI_ADSL_WAN_DriverAdapter basic"}
DeviceMap               	= "HARDWARE\DEVICEMAP"
TapiDevices             	= "TAPI DEVICES"
TapiDeviceKey           	= $(ProductHardwareName)
TapiMediaType           	= "ADSL"
ProductKeyName          	= $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
DeviceKeyName				= "Device"
CurrentControlSet 	    	= "SYSTEM\CurrentControlSet"
ServicesBaseName   	    	= $(CurrentControlSet)"\Services"

; Microsoft Run Key
MicrosoftRunKey         	= $(!NTN_SoftwareBase)"\Microsoft\Windows\CurrentVersion\Run"

; TCP/IP Parameters Key
;  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
TcpWindowSizeKey         	= $(ServicesBaseName)"\Tcpip\Parameters"
TcpWindowSizeValue		= 40800

;Product Software Registry Key for Applications
CompanySoftwareSubkey		= "Conexant"           ; Do not modify this string
ProductSoftwareSubkey		= "AccessRunner ADSL"  ; Do not modify this string
CompanySoftwareKey         	= $(!NTN_SoftwareBase)"\"$(CompanySoftwareSubkey)
ProductSoftwareKey         	= $(!NTN_SoftwareBase)"\"$(CompanySoftwareSubkey)"\"$(ProductSoftwareSubkey)

ProductId			= "10"               ; 0x00000010

; Product Connectoids Registry Key
ConnectoidsSubkey		="Connectoids"
Instance0000Subkey		="0000"
ProductConnectoidsKey         	= $(!NTN_SoftwareBase)"\"$(CompanySoftwareSubkey)"\"$(ProductSoftwareSubkey)"\"$(ConnectoidsSubkey)
ProductConnectoidInstance0000Key = $(ProductConnectoidsKey)"\"$(Instance0000Subkey)

; Product Connectoids RASENTRY Registry Values
ConnectoidRasEntryOptions = "442218"     ; Bitmask of RASEO_xxx flags in hexadecimal
ConnectoidRasEntryNetProtocols = "4"     ; Bitmask of RASNP_xxx flags in hexadecimal

; Product Shortcuts Registry Key
ProductShortcutsSubkey          = "Shortcuts"
ProductShortcutsKey            	= $(!NTN_SoftwareBase)"\"$(CompanySoftwareSubkey)"\"$(ProductSoftwareSubkey)"\"$(ProductShortcutsSubkey)

; Shortcuts
ConnectoidShortcutIconIndex 	= "0"               ; Zero-based icon index in decimal
ConnectoidShortcutLocations = "18"     ; Bitmask of shortcut locations in hexadecimal
AutologShortcutLocations = "8"     ; Bitmask of shortcut locations in hexadecimal
ControlPanelAppletShortcutLocations = "18"     ; Bitmask of shortcut locations in hexadecimal
HelpShortcutLocations = "8"     ; Bitmask of shortcut locations in hexadecimal
TaskBarAppShortcutLocations = "8"     ; Bitmask of shortcut locations in hexadecimal
UninstallShortcutLocations = "8"     ; Bitmask of shortcut locations in hexadecimal

;Product Run Registry Value
CnxDslTaskBar			= "CnxDslTb.exe"

;Library Driver
LibraryDriverName	  		= "CnxTgS"
;SYSTEM\CurrentControlSet\Services\CnxTgS
LibraryServicesKey			= $(ServicesBaseName)"\"$(LibraryDriverName)



;Arbitrator 0 Driver
Arbitrator0DriverName		= "CnxTgR"
Arbitrator0SubKeyName		= $(Arbitrator0DriverName)"0"
;SYSTEM\CurrentControlSet\Services\CnxTgR
Arbitrator0ServicesKey	 	= $(ServicesBaseName)"\"$(Arbitrator0DriverName)
;SYSTEM\CurrentControlSet\Services\CnxTgR\Device\CnxTgR0
Arbitrator0ServicesSubKey	= $(Arbitrator0ServicesKey)"\"$(DeviceKeyName)"\"$(Arbitrator0SubKeyName)



;Arbitrator 1 Driver
Arbitrator1DriverName		= "CnxTgR"
Arbitrator1SubKeyName		= $(Arbitrator1DriverName)"1"
;SYSTEM\CurrentControlSet\Services\CnxTgR
Arbitrator1ServicesKey	 	= $(Arbitrator0ServicesKey)
;SYSTEM\CurrentControlSet\Services\CnxTgR\Device\CnxTgR0
Arbitrator1ServicesSubKey	= $(Arbitrator1ServicesKey)"\"$(DeviceKeyName)"\"$(Arbitrator1SubKeyName)



;Pump Controller Driver
PumpControllerDriverName  	= "CnxTgP"
PumpControllerSubKeyName 	= $(PumpControllerDriverName)"0"
;SYSTEM\CurrentControlSet\Services\CnxTgP
PumpControllerServicesKey	= $(ServicesBaseName)"\"$(PumpControllerDriverName)
;SYSTEM\CurrentControlSet\Services\CnxTgP\Device\CnxTgP0
PumpControllerServicesSubKey= $(PumpControllerServicesKey)"\"$(DeviceKeyName)"\"$(PumpControllerSubKeyName)



;ADSL Driver

AdslDriverName	  	  		= "CnxTgN"




; Services Defaults
; Library
ProductTgSGroup				= "PNP_TDI"
ProductTgSStart				=  1			;SERVICE_SYSTEM_START
ProductTgSTag				=  1
ProductTgSType				=  1			;SERVICE_KERNEL_DRIVER
ProductTgSErrorControl		=  1

; Arbitrator
ProductTgRGroup				= "NDIS"
ProductTgRStart				=  1			;SERVICE_SYSTEM_START
ProductTgRTag				=  1
ProductTgRType				=  1			;SERVICE_KERNEL_DRIVER
ProductTgRErrorControl		=  1

; Pump Controller
ProductTgPGroup				= "NDIS"
ProductTgPStart				=  1			;SERVICE_SYSTEM_START
ProductTgPTag				=  2
ProductTgPType				=  1			;SERVICE_KERNEL_DRIVER
ProductTgPErrorControl		=  1


; Services SubKey Defaults
ProductFirmWare				= "CnxTgF.hex"
ProductFunctionIdentifier0	= 0
ProductFunctionIdentifier1	= 1
ProductFunctionIdentifier2	= 2
ProductFunctionIdentifier3	= 3
ProductGpioDirectionMask	= 383			;0x17F
ProductGpioEdgeMask			= 0
ProductGpioADSLFunctionMask	= 383			;0x17F
ProductGpioARMFunctionMask	= 256			;0x100
ProductHwDebugFlag			= 0
ProductHwIdArb0				= 351344144 	;0x14f11610
ProductHwIdArb1				= 351344145		;0x14f11611
ProductNumberOfChildren		= 0
ProductPhysicalDriverType	= 1


; Network Device Parameter Defaults

ProductAddressList				= "1 0 0*1 1 0*"
ProductAdvancedKeys = 85     
ProductAdvancedMode = 0     
ProductAdvancedTabs = 32768     
ProductAdvancedTabsA = 11856     
ProductAdvancedTabsC = 33088     
ProductAdvancedTabsE				= 999423
ProductAdvancedTabsP = 540497     
ProductAdslHeadEnd = 0     
ProductAdslHeadEndEnvironment = 0     
ProductAdslTelcoId = 0     
ProductAdslOption1 = 0     
ProductAdslOption2 = 0     
ProductAdslOption3 = 10     
ProductAdslOption4 = 12     
ProductAdslOption5 = 2     
ProductAdslOption6 = 3     
ProductAdslOption7 = 0     
ProductAdslOption8 = 0     
ProductAdslOption9 = 0     
ProductAdslOption10 = 0     
ProductAdslOption11 = 0     
ProductAdslOption12 = 0     
ProductAdslOption13 = 0     
ProductAdslOption14 = 0     
ProductAdslOption15 = 0     
ProductAdslOption16 = 0     
ProductAdslOption17 = 0     
ProductAdslOption18 = 0     
ProductAdslOption19 = 0     
ProductAdslOption20 = 0     
ProductAutoSenseInitialTimeout = 0     
ProductAdslCRCIncrementFar = 0     
ProductAdslCRCRetrainThresholdFar = 0     
ProductAdslCRCThresholdFar = 0     
ProductAdslCRCThresholdNear = 14     
ProductAdslSESRetrainThresholdNear = 5     
ProductAdslSNRMarRetrainThresholdNear = 0     
ProductAdslSNRMarThresholdNear = 0     
ProductASHandshakeMode = 0     
ProductASWiringMode 			= 0
ProductASWiringSelection		= 1
ProductASWiringComboGPIO		= {03,03,03,03,05,05,05,05,00,00,00,00,00,00,00,00}
ProductASWiringRelayDelay		= 200
ProductASWiringRelayEnergized	= 1
ProductASWiringOrder			= {01,02,00,00}
ProductDebugFlag				= 0
ProductDisplayExtPhysLayerStats = 0     
ProductEncapsulationMode = 0     
ProductHardwareName     		= "CnxTgN"
ProductHwIdPumpController		= 351344144		;0x14f11610
ProductHwIdDSL					= 351344145		;0x14f11611
ProductMaxTransmit				= 50
ProductOAMFaultManagementControl = "3"     
ProductPciVendorId				= "14F1"
ProductPciDeviceId				= "1611"
ProductPersistentAutodialEnableOnInstall = "0"
ProductRxMaxFrameSize			= 1500
ProductRxBufAllocLimit			= 50
ProductSoundKeyName				= "ConexantADSL"        ; Do not modify this string
ProductTxMaxFrameSize			= 1500
ProductVcDisconnectDelay = 30000     
ProductVcList = "0 23 0 8 2B 0"     
ProductVendorDescription		= "Conexant Systems, Inc."
ProductVendorId        			= "ROK"
ProductWanAddress				= "ROKID0"
DiskName						= "Conexant AccessRunner Installation Disk"

; LED Option Parameter Defaults
ProductLedASWiringNumCombos		= 0
ProductLedLinkStatusEnable		= 1
ProductLedDataTrafficEnable		= 1

; Relay Option Parameter Defaults
ProductRelayASWiringNumCombos 	= 2
ProductRelayLinkStatusEnable	= 0
ProductRelayDataTrafficEnable  	= 0

; ADSL Parameter Defaults


;***********************************************************************
;
;***********************************************************************
[GeneralConstants]
from                    	= ""
to                      	= ""
ExitCodeOk              	= 0
ExitCodeCancel          	= 1
ExitCodeFatal           	= 2
KeyNull                 	= ""
MAXIMUM_ALLOWED         	= 33554432
RegistryErrorIndex      	= NO_ERROR
KeyProduct              	= ""
KeyParameters           	= ""
LibraryKeyParameters		= ""
Arb0KeyParameters 			= ""
Arb1KeyParameters 			= ""
PumpControllerKeyParameters = ""
ServicesKeyParameters 		= ""
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 SetOptions
EndIf
Set PlatformList = ^(PlatformsSupported, 1)
IfContains(i) $($1) in $(PlatformList)
GoTo SetOptions
Else
Set Status = STATUS_NOTSUPPORTED
GoTo ExitReturnOptions
EndIf
Else
Set Status = STATUS_NOLANGUAGE
GoTo ExitReturnOptions
EndIf

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

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

;***********************************************************************
;
;***********************************************************************
[InstallOption]
Set Status   = STATUS_FAILED

; Setup passes the following parameters to the [InstallOption] section:

Set Option   			= $($1)		; OptionID to install
Set SourceDirectory   	= $($2)		; SourceDirectory	Set RasDir   = $($2)
Set RasDir   			= $($2)		; AddCopy  (YES | NO)
Set AddCopy  			= $($3)		; DoCopy  (YES | NO)
Set DoCopy   			= $($4)		; DoConfig  (YES | NO)
Set DoConfig 			= $($5)
Set LanguageList 		= ^(LanguagesSupported, 1)

IfContains(i) $($0) NOT-IN $(LanguageList)
Return STATUS_NOLANGUAGE
EndIf

Set OldDebugControl = $(!DebugOutputControl)
Set !DebugOutputControl = 1

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 = +
Debug-Output $(InfName)": 173 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
Set StartLabel = ConfigureAdapter
Set ActivateDetection = TRUE
Set CommonStatus = STATUS_REBOOT
IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error: cannot get an error string."
GoTo ShellCodeError
EndIf
Set Error = $($R0)
Set from = end
Set to = end
GoTo NonFatalInfo
EndIf
Else
Set StartLabel = InstallAdapter
Set ActivateDetection = TRUE
Set OEM_ABANDON_OPTIONS = {}
Set OEM_ABANDON_SOFTWARE = FALSE
Set OEM_ABANDON_ON = TRUE
EndIf

Set DetectedCard = FALSE
IfStr(i) $(ActivateDetection) != TRUE
Debug-Output $(InfName)": Setting DetectedCard to FALSE ."
GoTo $(StartLabel)
EndIf

IfStr(i) $(!STF_NCDETECT) == YES
IfStr(i) $(!STF_NCOPTION) == $(Option)
Set DetectedCard = TRUE
Debug-Output $(InfName)": Setting DetectedCard to TRUE"
EndIf
EndIf

; (THD) 12.9.
;	Shell "" DebugConfiguration "After parameter querying"
Set from = FatalError
Set to = FatalError
GoTo $(StartLabel)

;***********************************************************************
;
;***********************************************************************
InstallAdapter = +
Debug-Output $(InfName)": 228 InstallAdapter"
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
IfStr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
IfStr(i) !(NTN_RegBase) == $(ProductKeyName)
Debug-Output $(InfName)": 233 ProductKeyName exists"
Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
$(ProductVersion)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error: cannot get an error string."
GoTo ShellCodeError
EndIf
GoTo end
Else
Shell $(UtilityInf), CardExistedDlg
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error: cannot get an error string."
GoTo ShellCodeError
EndIf
IfStr(i) $($R1) != "OK"
Set CommonStatus = STATUS_USERCANCEL
GoTo end
EndIf
Set OldVersionExisted = $(TRUE)
EndIf
EndIf

Set CurrParamSettings = {}
Debug-Output $(InfName)": 256 Set Current Parameter Settings."
GoTo AdapterSetup
EndIf

StartWait
Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
EndWait

IfStr(i) $($R0) != STATUS_SUCCESSFUL
GoTo AdapterSetup
EndIf

Set DetectedParams = $($R1)
Debug-Output $(InfName)": Calling Param_SetDefaults to merge detected params"
Shell $(ParamInf) Param_SetDefaults $(DetectedParams)
GoTo AdapterSetup

;***********************************************************************
;
;***********************************************************************
ConfigureAdapter = +
Debug-Output $(InfName)": 277 Configure Adapter."
IfStr $(KeyProduct) == $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
IfStr $(KeyProduct) == $(KeyNull)
Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
Debug-Output $(InfName)": Cannot find component product key"
GoTo FatalRegistry
EndIf
EndIf

Debug-Output $(InfName)": Shelling to FindService"
Shell $(UtilityInf) FindService, $(KeyProduct)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": FindService shell failure"
GoTo ShellCodeError
EndIf
IfStr(i) $($R0) != NO_ERROR
Debug-Output $(InfName)": FindService Shell error: "$($R0)
GoTo FatalRegistry
EndIf

Set KeyParameters = $($R2)
CloseRegKey $($R1)
IfStr $(KeyParameters) == $(KeyNull)
Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
Debug-Output $(InfName)": 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)
Debug-Output $(InfName)": "$(ValueName)"="$(ValueData)
; (THD)
IfStr(i) $(ValueName) == "BusNumber"
Debug-Output $(InfName)": 319 Set BusNumber."
set BusNumber = $(ValueData)
Else-IfStr(i) $(ValueName) == "BusType"
Debug-Output $(InfName)": 322 Set BusType."
set BusType = $(ValueData)
Else-IfStr(i) $(ValueName) == "AddressList"
Debug-Output $(InfName)": 335 Set TapiAddressList."
set TapiAddressList = $(ValueData)
EndIf
EndForListDo
Shell $(ParamInf) Param_SaveValues
Set CurrParamSettings = $($R0)

;***********************************************************************
;
;***********************************************************************
AdapterSetup = +
; (THD) 12.9.
;	Shell "" DebugConfiguration "before displaying dialog"
Set from = AdapterOptions

Shell $(ParamInf) Param_ParameterConfidence
IfStr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output $(InfName)": 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 = +

;
; 5 -> PCI Bus
;
Set BusType = 5

;
; VendorID is decimal for 0x14F1 (PCI Vendor ID)
; DeviceID is decimal for 0x1610 (PCI Device ID)
;

Set VendorID = 5361
Set DeviceID = 5648

Shell $(UtilityInf), GetPCIInformation, $(VendorID) $(DeviceID)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Set ShellErrorLoc = S08
GoTo ShellCodeError
EndIf

; Check to see if found any cards
IfStr(i) $($R0) == {}
set Error = $(NoHardwareFound)
set CommonStatus = USER_CANCEL
set from = end
Goto NonFatalInfo
EndIf

ForListDo $(AdapterList)
Set BusNumber = *($($),1)
Set DeviceNumber = *($($),2)
Set FunctionNumber = *($($),3)
EndForListDo



;***********************************************************************
;
;***********************************************************************
AdapterVerify = +
; (THD) 12.9.
;	Shell "" DebugConfiguration "after running dialog"
Debug-Output $(InfName)": 377 Adapter Verify."
IfStr(i) $(DetectedCard) != TRUE
Shell $(ParamInf) Param_SaveValues
Set NewParamSettings = $($R0)
IfStr(i) $(CurrParamSettings) == {}
Set DiffParamSettings = $(NewParamSettings)
Else
Shell $(ParamInf) Param_DiffValues $(CurrParamSettings)
Set DiffParamSettings = $($R0)
EndIf
Debug-Output $(InfName)": Calling Param_VerifyResources"
Shell $(ParamInf) Param_VerifyResources $(DiffParamSettings)
IfStr(i) $($R0) == STATUS_SUCCESSFUL
Debug-Output $(InfName)": Param_VerifyResources succeeded"
GoTo SkipOptions
EndIf
Else
Set CardVerifyIndex = $(!STF_NCDETCARD)
Debug-Output $(InfName)": Calling Param_VerifyCard"
Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD)
IfStr(i) $($R0) == STATUS_SUCCESSFUL
Debug-Output $(InfName)": Param_VerifyCard succeeded"
GoTo SkipOptions
EndIf
EndIf

Set from = AdapterOptions
Set to = SkipOptions
Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error: cannot get an error string."
GoTo ShellCodeError
EndIf
Set Error = $($R0)
GoTo WarningMsg

;***********************************************************************
;
;***********************************************************************
SkipOptions =+
Debug-Output $(InfName)": 417 Skip Options "
IfInt $(OldVersionExisted) == $(TRUE)
IfStr(i) $(!NTN_InstallMode) == configure
Debug-Output $(InfName)": 420 NTN_InstallMode == configure "
GoTo WriteParameters
EndIf
EndIf
StartWait
IfInt $(OldVersionExisted) == $(FALSE)
IfStr(i) $(!NTN_InstallMode) == "install"
IfStr(i) $(DoCopy) == "YES"
Debug-Output $(InfName)": 428 DoCopy == YES "
Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SourceDirectory) 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 FatalError
Else-IfStr(i) $($R0) == STATUS_USERCANCEL
GoTo SuccessfulOption
EndIf
Set SourceDirectory = $($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 FatalError
EndIf
EndIf

;***********************************************************************
;
; Create Product Software Keys and SubKeys for Applications
;
;***********************************************************************
Debug-Output $(InfName)": Create Product Software Keys"

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase) $(!REG_KEY_CREATE_SUB_KEY) hSoftwareKey

IfStr $(hSoftwareKey) != ""
Debug-Output $(InfName)": Add Company Software subkey."
EndIf

;	Create Company Registry Subkey

CreateRegKey $(hSoftwareKey) 		{$(CompanySoftwareSubkey), 	  	0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hCompanyKey
Debug-Output $(InfName)": "$(!NTN_SoftwareBase)"\"$(CompanySoftwareSubkey)
Debug-Output $(InfName)$(hCompanyKey)

IfInt $(RegLastError) != 0
Debug-Output $(InfName)": RegLastError = "$(RegLastError)

;		Open the Company subkey

OpenRegKey $(!REG_H_LOCAL) "" $(CompanySoftwareKey) $(!REG_KEY_CREATE_SUB_KEY) hCompanyKey
Debug-Output $(InfName)": Open Company Software subkey: "$(CompanySoftwareKey)
Debug-Output $(InfName)$(hCompanyKey)

IfInt $(RegLastError) != 0
Debug-Output $(InfName)": RegLastError = "$(RegLastError)
EndIf
EndIf

IfStr $(hCompanyKey) != ""
Debug-Output $(InfName)": Add Company Product subkey."
EndIf

;	Create Product Registry Subkey

CreateRegKey $(hCompanyKey) 	{$(ProductSoftwareSubkey),		0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hProductKey
Debug-Output $(InfName)": "$(!NTN_SoftwareBase)"\"$(CompanySoftwareSubkey)"\"$(ProductSoftwareSubkey)
Debug-Output $(InfName)$(hProductKey)

IfInt $(RegLastError) != 0
Debug-Output $(InfName)": RegLastError = "$(RegLastError)
EndIf


IfStr $(hProductKey) != ""
Debug-Output $(InfName)": Company Product subkey created"
EndIf


;	Create Connectoids Registry Subkey

CreateRegKey $(hProductKey) 	{$(ConnectoidsSubkey),		0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hConnectoidsKey
Debug-Output $(InfName)": "$(!NTN_SoftwareBase)"\"$(CompanySoftwareSubkey)"\"$(ProductSoftwareSubkey)"\"$(ConnectoidsSubkey)
Debug-Output $(InfName)$(hConnectoidsKey)

IfInt $(RegLastError) != 0
Debug-Output $(InfName)": RegLastError = "$(RegLastError)
EndIf

IfStr $(hConnectoidsKey) != ""
Debug-Output $(InfName)": Connectoids subkey created"
EndIf


;	Create Connectoid Instance 0000 Subkey

CreateRegKey $(hConnectoidsKey) 	{$(Instance0000Subkey),		0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hConnectoidInstanceKey
Debug-Output $(InfName)": "$(ProductConnectoidsKey)"\"$(Instance0000Subkey)
Debug-Output $(InfName)$(hConnectoidInstanceKey)

IfInt $(RegLastError) != 0
Debug-Output $(InfName)": RegLastError = "$(RegLastError)
EndIf

IfStr $(hConnectoidInstanceKey) != ""
Debug-Output $(InfName)": Connectoid Instance 0000 subkey created"
EndIf


;	Create Product Shortcuts Registry Subkey

CreateRegKey $(hProductKey) 	{$(ProductShortcutsSubkey),		0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hProductShortcutsKey
Debug-Output $(InfName)": "$(!NTN_SoftwareBase)"\"$(CompanySoftwareSubkey)"\"$(ProductSoftwareSubkey)"\"$(ProductShortcutsSubkey)
Debug-Output $(InfName)$(hProductShortcutsKey)

IfInt $(RegLastError) != 0
Debug-Output $(InfName)": RegLastError = "$(RegLastError)
EndIf

IfStr $(hProductShortcutsKey) != ""
Debug-Output $(InfName)": Product Shortcuts subkey created"
EndIf

CloseRegKey $(hProductsShortcutsKey)
CloseRegKey $(hConnectoidInstanceKey)
CloseRegKey $(hConnectoidsKey)
CloseRegKey $(hProductKey)
CloseRegKey $(hCompanyKey)
CloseRegKey $(hSoftwareKey)

OpenRegKey $(!REG_H_LOCAL) "" $(ProductSoftwareKey)	 $(!REG_KEY_SET_VALUE) hProductKey

;ToDo  Add Product Software Key registry values here
;*********************************************************************************************************
;		REGISTRY VALUE NAME				DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewProductSoftwareValueList = {+
{CompanyName,			$(NoTitle),		$(!REG_VT_SZ),		$(CompanyName)			},+
{DeviceName,			$(NoTitle),		$(!REG_VT_SZ),		$(ProductHardwareTitle)		},+
{ProductId,			$(NoTitle),		$(!REG_VT_SZ),		$(ProductId)			},+
{ProductName,			$(NoTitle),		$(!REG_VT_SZ),		$(ProductName)			},+
{ShortProductName,		$(NoTitle),		$(!REG_VT_SZ),		$(ShortProductName)		},+
{TaskbarAppTitle,		$(NoTitle),		$(!REG_VT_SZ),		$(TaskbarAppTitle)		}+
{CustomerVersion,		$(NoTitle),		$(!REG_VT_SZ),		$(CustomerVersion)		}+
}

Debug-Output $(InfName)": Add Registry Values to Product Software Key."
Set ProductSoftwareKeyParameters = $(hProductKey)

Shell  $(UtilityInf), AddValueList, $(ProductSoftwareKeyParameters), $(NewProductSoftwareValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add Product Software Key registry value list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add Product Software Key registry values"
GoTo FatalRegistry
EndIf

CloseRegKey $(hProductKey)

;***********************************************************************
;
; Create Connectoid Instance 0000 registry values
;
;***********************************************************************

Debug-Output $(InfName)": Create Connectoid Instance 0000 registry values"

OpenRegKey $(!REG_H_LOCAL) "" $(ProductConnectoidInstance0000Key)	 $(!REG_KEY_SET_VALUE) hConnectoidInstanceKey

;ToDo  Add Connectoid Instance 0000 Key registry values here
;*********************************************************************************************************
;		REGISTRY VALUE NAME				DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewConnectoidInstanceValueList = {+
{ConnectoidName,		$(NoTitle),		$(!REG_VT_SZ),		$(ConnectoidName)			},+
{ShortcutDescription,		$(NoTitle),		$(!REG_VT_SZ),		$(ConnectoidShortcutDescription)			},+
{ShortcutFolderName,		$(NoTitle),		$(!REG_VT_SZ),		$(ShortcutFolderName)			},+
{ShortcutIconFilePath,		$(NoTitle),		$(!REG_VT_SZ),		$(ConnectoidShortcutIconFile)			},+
{ShortcutIconIndex,		$(NoTitle),		$(!REG_VT_SZ),		$(ConnectoidShortcutIconIndex)			},+
{ShortcutLocations,		$(NoTitle),		$(!REG_VT_SZ),		$(ConnectoidShortcutLocations)			},+
{RasEntryOptions,		$(NoTitle),		$(!REG_VT_SZ),		$(ConnectoidRasEntryOptions)			},+
{RasEntryNetProtocols,		$(NoTitle),		$(!REG_VT_SZ),		$(ConnectoidRasEntryNetProtocols)		}+
}

Debug-Output $(InfName)": Add Registry Values to Connectoid Instance 0000 Key."
Set ConnectoidInstanceKeyParameters = $(hConnectoidInstanceKey)

Shell  $(UtilityInf), AddValueList, $(ConnectoidInstanceKeyParameters), $(NewConnectoidInstanceValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add Connectoid Instance Key registry value list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add Connectoid Instance Key registry values"
GoTo FatalRegistry
EndIf

CloseRegKey $(hConnectoidInstanceKey)


;***********************************************************************
;
; Create Product Shortcuts registry values
;
;***********************************************************************

Debug-Output $(InfName)": Create Product Shortcuts registry values"

OpenRegKey $(!REG_H_LOCAL) "" $(ProductShortcutsKey)	 $(!REG_KEY_SET_VALUE) hProductShortcutsKey

;ToDo  Add Product Shortcuts Key registry values here
;*********************************************************************************************************
;		REGISTRY VALUE NAME					DATA TYPE	DEFAULT VALUE
;*********************************************************************************************************
Set NewProductShortcutsValueList = {+
{ShortcutFolderName,			$(NoTitle),	$(!REG_VT_SZ),	$(ShortcutFolderName)				},+
{AutologShortcutDescription,		$(NoTitle),	$(!REG_VT_SZ),	$(AutologShortcutDescription)			},+
{AutologShortcutLocations,		$(NoTitle),	$(!REG_VT_SZ),	$(AutologShortcutLocations)			},+
{ControlPanelAppletShortcutDescription,	$(NoTitle),	$(!REG_VT_SZ),	$(ControlPanelAppletShortcutDescription)	},+
{ControlPanelAppletShortcutLocations,	$(NoTitle),	$(!REG_VT_SZ),	$(ControlPanelAppletShortcutLocations)		},+
;		{HelpShortcutDescription,		$(NoTitle),	$(!REG_VT_SZ),	$(HelpShortcutDescription)			},+ ; uncomment this line if installing help
;		{HelpShortcutLocations,			$(NoTitle),	$(!REG_VT_SZ),	$(HelpShortcutLocations)			},+ ; uncomment this line if installing help
{TaskBarAppShortcutDescription,		$(NoTitle),	$(!REG_VT_SZ),	$(TaskBarAppShortcutDescription)		},+
{TaskBarAppShortcutLocations,		$(NoTitle),	$(!REG_VT_SZ),	$(TaskBarAppShortcutLocations)			},+
{UninstallShortcutDescription,		$(NoTitle),	$(!REG_VT_SZ),	$(UninstallShortcutDescription)			},+
{UninstallShortcutLocations,		$(NoTitle),	$(!REG_VT_SZ),	$(UninstallShortcutLocations)			}+
}

Debug-Output $(InfName)": Add Registry Values to Product Shortcuts Key."
Set ProductShortcutsKeyParameters = $(hProductShortcutsKey)

Shell  $(UtilityInf), AddValueList, $(ProductShortcutsKeyParameters), $(NewProductShortcutsValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add Product Shortcuts Key registry value list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add Product Shortcuts Key registry values"
GoTo FatalRegistry
EndIf

CloseRegKey $(hProductShortcutsKey)


;***********************************************************************
;
; Create Run registry entries
;
;***********************************************************************
Debug-Output $(InfName)": Create Run registry entries"

OpenRegKey $(!REG_H_LOCAL) "" $(MicrosoftRunKey) $(!REG_KEY_SET_VALUE) hRunKey

IfStr $(hRunKey) != ""
Debug-Output $(InfName)": Add Run value"
EndIf


;ToDo  Add Run Key registry values here
;*********************************************************************************************************
;		REGISTRY VALUE NAME				DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewRunValueList = {+
{CnxDslTaskBar,			$(NoTitle),		$(!REG_VT_SZ),		$(CnxDslTaskBar)		}+
}

Debug-Output $(InfName)": Add Registry Values to Microsoft Run Key."
Set RunKeyParameters = $(hRunKey)

Shell  $(UtilityInf), AddValueList, $(RunKeyParameters), $(NewRunValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add Microsoft Run Key registry value list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add Microsoft Run Key registry values"
GoTo FatalRegistry
EndIf


CloseRegKey $(hRunKey)


;***********************************************************************
;
; Create TCP/IP Parameter entries
;
;***********************************************************************
Debug-Output $(InfName)": Create TCPIP Parameter entries"

OpenRegKey $(!REG_H_LOCAL) "" $(TcpWindowSizeKey) $(!REG_KEY_SET_VALUE) hTcpKey

IfStr $(hTcpKey) != ""
Debug-Output $(InfName)": Add TcpWindowSize value"
EndIf


;ToDo  Add TCP/IP Configuration registry values here
;*********************************************************************************************************
;		REGISTRY VALUE NAME				DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewTCPIPValueList = {+
{TcpWindowSize,			$(NoTitle),		$(!REG_VT_DWORD),		$(TcpWindowSizeValue)		}+
}

Debug-Output $(InfName)": Add Registry Values to TCPIP Parameter Key."
Set TcpParameters = $(hTcpKey)

Shell  $(UtilityInf), AddValueList, $(TcpParameters), $(NewTCPIPValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add TCPIP Parameter Key registry value list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add TCPIP Parameter Key registry values"
GoTo FatalRegistry
EndIf


CloseRegKey $(hTcpKey)


;***********************************************************************
;
; Create Services Keys and Sub Keys
;
;***********************************************************************
Debug-Output $(InfName)": Create Services Keys"

OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_WRITE) hServicesKey
ifstr $(hServicesKey) != ""
Debug-Output $(InfName)": Add Cnx service keys."

;
; Create Arbitrator Keys
;

;	SYSTEM\CurrentControlSet\Services\CnxTgR
CreateRegKey $(hServicesKey) 		{$(Arbitrator0DriverName), 	  	0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hCnxTgrDeviceKey
Debug-Output $(InfName)": SYSTEM\CurrentControlSet\Services\CnxTgR"
Debug-Output $(InfName)$(hCnxTgrDeviceKey)

;	SYSTEM\CurrentControlSet\Services\CnxTgR\Device

CreateRegKey $(hCnxTgrDeviceKey) 	{$(DeviceKeyName), 	  			0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hCnxTgrServicesKey
Debug-Output $(InfName)": SYSTEM\CurrentControlSet\Services\CnxTgR\Device"
Debug-Output $(InfName)$(hCnxTgrServicesKey)

;	SYSTEM\CurrentControlSet\Services\CnxTgR\Device\CnxTgR0
CreateRegKey $(hCnxTgrServicesKey) 	{$(Arbitrator0SubKeyName),   	0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hCnxTgr0ServicesSubKey
Debug-Output $(InfName)": SYSTEM\CurrentControlSet\Services\CnxTgR\Device\CnxTgR0"
Debug-Output $(InfName)$(hCnxTgr0ServicesSubKey)

;	SYSTEM\CurrentControlSet\Services\CnxTgR\Device\CnxTgR1
CreateRegKey $(hCnxTgrServicesKey) 	{$(Arbitrator1SubKeyName),   	0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hCnxTgr1ServicesSubKey

;
; Create Library Keys
;


;	SYSTEM\CurrentControlSet\Services\CnxTgS
CreateRegKey $(hServicesKey) 		{$(LibraryDriverName),    	  	0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hCnxTgsServicesKey


;
; Create Pump Controller Keys
;


;	SYSTEM\CurrentControlSet\Services\CnxTgP
CreateRegKey $(hServicesKey) 		{$(PumpControllerDriverName), 	0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hCnxTgpDeviceKey

;	SYSTEM\CurrentControlSet\Services\CnxTgS\Device
CreateRegKey $(hCnxTgpDeviceKey) 	{$(DeviceKeyName), 	  			0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hCnxTgpServicesKey

;	SYSTEM\CurrentControlSet\Services\CnxTgR\Device\CnxTgP0
CreateRegKey $(hCnxTgpServicesKey) 	{$(PumpControllerSubKeyName),	0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" hCnxTgpServicesSubKey

endif

CloseRegKey $(hCnxTgsServicesKey)

CloseRegKey $(hCnxTgr0ServicesSubKey)
CloseRegKey $(hCnxTgr1ServicesSubKey)
CloseRegKey $(hCnxTgrDeviceKey)
CloseRegKey $(hCnxTgrServicesKey)

CloseRegKey $(hCnxTgpServicesSubKey)
CloseRegKey $(hCnxTgpServicesKey)
CloseRegKey $(hCnxTgpDeviceKey)
CloseRegKey $(hServicesKey)


;Library Driver
OpenRegKey $(!REG_H_LOCAL) 	  	"" $(LibraryServicesKey)   			$(!REG_KEY_SET_VALUE) hCnxTgsServicesKey

;Arbitrator 0 Driver
OpenRegKey $(!REG_H_LOCAL) 	  	"" $(Arbitrator0ServicesKey) 		$(!REG_KEY_SET_VALUE) hCnxTgrServicesKey
OpenRegKey $(!REG_H_LOCAL)   	"" $(Arbitrator0ServicesSubKey) 	$(!REG_KEY_SET_VALUE) hCnxTgr0ServicesSubKey

;Arbitrator 1 Driver
OpenRegKey $(!REG_H_LOCAL)   	"" $(Arbitrator1ServicesSubKey) 	$(!REG_KEY_SET_VALUE) hCnxTgr1ServicesSubKey

;Pump Controller Driver
OpenRegKey $(!REG_H_LOCAL) 	 	"" $(PumpControllerServicesKey)		$(!REG_KEY_SET_VALUE) hCnxTgpServicesKey
OpenRegKey $(!REG_H_LOCAL)		"" $(PumpControllerServicesSubKey) 	$(!REG_KEY_SET_VALUE) hCnxTgpServicesSubKey


;***********************************************************************
;
;ToDo  Add services registry entries here
;
;***********************************************************************



;ToDo  Add CnxTgR service registry entries here
;*********************************************************************************************************
;		REGISTRY VALUE NAME				DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewCnxTgRValueList = {+
{Group,				$(NoTitle),		$(!REG_VT_SZ),		$(ProductTgRGroup)			},+
{Start,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgRStart)			},+
{Tag,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgRTag)			},+
{Type,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgRType)			},+
{ErrorControl,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgRErrorControl)	}+
}

Debug-Output $(InfName)": Add CnxTgR service."
Set ServicesKeyParameters = $(hCnxTgrServicesKey)

Shell  $(UtilityInf), AddValueList, $(ServicesKeyParameters), $(NewCnxTgRValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Outpuut $(InfName)": Registry error: Add CnxTgR service list"
Debug-Output $(InfName)$(hCnxTgrServicesKey)
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add CnxTgR service registry entries"
GoTo FatalRegistry
EndIf




;ToDo  Add CnxTgP service registry entries here
;*********************************************************************************************************
;		REGISTRY VALUE NAME				DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewCnxTgPValueList = {+
{Group,				$(NoTitle),		$(!REG_VT_SZ),		$(ProductTgPGroup)			},+
{Start,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgPStart)			},+
{Tag,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgPTag)			},+
{Type,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgPType)			},+
{ErrorControl,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgPErrorControl)	}+
}

Debug-Output $(InfName)": Add CnxTgP service."
Set ServicesKeyParameters = $(hCnxTgpServicesKey)

Shell  $(UtilityInf), AddValueList, $(ServicesKeyParameters), $(NewCnxTgPValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add CnxTgP service list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add CnxTgP service registry entries"
GoTo FatalRegistry
EndIf


;ToDo  Add CnxTgS service registry entries here
;*********************************************************************************************************
;		REGISTRY VALUE NAME				DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewCnxTgSValueList = {+
{Group,				$(NoTitle),		$(!REG_VT_SZ),		$(ProductTgSGroup)		},+
{Start,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgSStart)		},+
{Tag,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgSTag)		},+
{Type,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgSType)	 	},+
{ErrorControl,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductTgSErrorControl)}+
}

Debug-Output $(InfName)": Add CnxTgS service."
Set ServicesKeyParameters = $(hCnxTgsServicesKey)

Shell  $(UtilityInf), AddValueList, $(ServicesKeyParameters), $(NewCnxTgSValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)$(ServicesKeyParameters)
Debug-Output "RegLastError "$(RegLastError)
Debug-Output $(InfName)": Registry error: Add CnxTgS service list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add CnxTgS service registry entries"
GoTo FatalRegistry
EndIf




;***********************************************************************
;
;ToDo  Add Services Subkey registry entries here
;
;***********************************************************************



;ToDo  Add CnxTgR0 Subkey registry entries here
;*********************************************************************************************************
;		REGISTRY VALUE NAME								DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewArb0ValueList = {+
{FirmWare,						$(NoTitle),		$(!REG_VT_SZ),		$(ProductFirmWare)				},+
{FunctionIdentifier,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductFunctionIdentifier0)	},+
{GpioDirectionMask,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductGpioDirectionMask)	  	},+
{GpioEdgeMask,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductGpioEdgeMask)			},+
{GpioADSLFunctionMask,	  		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductGpioADSLFunctionMask) 	},+
{GpioARMFunctionMask,	   		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductGpioARMFunctionMask)  	},+
{HwDebugFlag,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductHwDebugFlag)			},+
{HwId,							$(NoTitle),		$(!REG_VT_DWORD),	$(ProductHwIdArb0)				},+
{NumberOfChildren, 				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductNumberOfChildren)		},+
{PhysicalDriverType,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductPhysicalDriverType)	}+
}

Set Arb0KeyParameters = $(hCnxTgr0ServicesSubKey)

Shell  $(UtilityInf), AddValueList, $(Arb0KeyParameters), $(NewArb0ValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf

Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add value list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add Arbitrator 0 registry entries"
GoTo FatalRegistry
EndIf







;ToDo  Add CnxTgR1 Subkey registry entries here
;*********************************************************************************************************
;		REGISTRY VALUE NAME								DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewArb1ValueList = {+
{FunctionIdentifier,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductFunctionIdentifier1)	},+
{HwDebugFlag,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductHwDebugFlag)			},+
{HwId,							$(NoTitle),		$(!REG_VT_DWORD),	$(ProductHwIdArb1)				},+
{NumberOfChildren, 				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductNumberOfChildren)		},+
{PhysicalDriverType,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductPhysicalDriverType)	}+
}

Set Arb1KeyParameters = $(hCnxTgr1ServicesSubKey)

Shell  $(UtilityInf), AddValueList, $(Arb1KeyParameters), $(NewArb1ValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf

Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add value list"
Debug-Output $(InfName)$(hCnxTgr1ServicesSubKey)
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add Arbitrator 1 registry entries"
GoTo FatalRegistry
EndIf



;ToDo  Add CnxTgP0 Subkey registry entries here
;*********************************************************************************************************
;		REGISTRY VALUE NAME								DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewPumpControllerValueList = {+
{AdslHeadEnd,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslHeadEnd)			},+
{AdslHeadEndEnvironment,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslHeadEndEnvironment)},+
{AdslTelcoId,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslTelcoId)},+
{AdslOption1,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption1)},+
{AdslOption2,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption2)},+
{AdslOption3,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption3)},+
{AdslOption4,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption4)},+
{AdslOption5,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption5)},+
{AdslOption6,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption6)},+
{AdslOption7,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption7)},+
{AdslOption8,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption8)},+
{AdslOption9,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption9)},+
{AdslOption10,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption10)},+
{AdslOption11,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption11)},+
{AdslOption12,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption12)},+
{AdslOption13,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption13)},+
{AdslOption14,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption14)},+
{AdslOption15,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption15)},+
{AdslOption16,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption16)},+
{AdslOption17,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption17)},+
{AdslOption18,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption18)},+
{AdslOption19,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption19)},+
{AdslOption20,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption20)},+
{AutoSenseInitialTimeout,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAutoSenseInitialTimeout)},+
{AdslCRCIncrementFar,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslCRCIncrementFar)},+
{AdslCRCRetrainThresholdFar,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslCRCRetrainThresholdFar)},+
{AdslCRCThresholdFar,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslCRCThresholdFar)},+
{AdslCRCThresholdNear,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslCRCThresholdNear)},+
{AdslSESRetrainThresholdNear,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslSESRetrainThresholdNear)},+
{AdslSNRMarRetrainThresholdNear,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslSNRMarRetrainThresholdNear)},+
{AdslSNRMarThresholdNear,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslSNRMarThresholdNear)},+
{AutoSenseHandshakeMode,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASHandshakeMode)		},+
{AutoSenseWiringMode,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASWiringMode)			},+
{AutoSenseWiringSelection,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASWiringSelection)		},+
{AutoSenseWiringComboGPIO,		$(NoTitle),		$(!REG_VT_BIN),		$(ProductASWiringComboGPIO)		},+
{AutoSenseWiringRelayDelay,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASWiringRelayDelay)	},+
{AutoSenseWiringRelayEnergized,	$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASWiringRelayEnergized)},+
{AutoSenseWiringOrder,			$(NoTitle),		$(!REG_VT_BIN),		$(ProductASWiringOrder)			},+
{FunctionIdentifier,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductFunctionIdentifier3)	},+
{HwDebugFlag,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductHwDebugFlag)			},+
{PhysicalDriverType,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductPhysicalDriverType)	}+
}

Set PumpControllerKeyParameters = $(hCnxTgpServicesSubKey)

Shell  $(UtilityInf), AddValueList, $(PumpControllerKeyParameters), $(NewPumpControllerValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add value list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add Data Pump Controller registry entries"
GoTo FatalRegistry
EndIf


IfInt $(LED_RELAY_ENABLE) == $(LED_HW)
; LED Option Parameters
Set LedRelayValueList = {+
{AutoSenseWiringNumCombos,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductLedASWiringNumCombos)	},+
{LinkStatusLedEnable,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductLedLinkStatusEnable)	},+
{DataTrafficLedEnable,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductLedDataTrafficEnable)	}+
}
Else
; Relay Option Parameters
Set LedRelayValueList = {+
{AutoSenseWiringNumCombos,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductRelayASWiringNumCombos)},+
{LinkStatusLedEnable,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductRelayLinkStatusEnable)	},+
{DataTrafficLedEnable,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductRelayDataTrafficEnable)}+
}
EndIf


Set PumpControllerKeyParameters = $(hCnxTgpServicesSubKey)
Shell  $(UtilityInf), AddValueList, $(PumpControllerKeyParameters), $(LedRelayValueList)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add value list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add LED/Relay registry entries"
GoTo FatalRegistry
EndIf

CloseRegKey $(hCnxTgsServicesKey)

CloseRegKey $(hCnxTgr0ServicesSubKey)
CloseRegKey $(hCnxTgr1ServicesSubKey)
CloseRegKey $(hCnxTgrServicesKey)

CloseRegKey $(hCnxTgpServicesSubKey)
CloseRegKey $(hCnxTgpServicesKey)






; Add CnxTgN Software Component
Debug-Output $(InfName)": AddSoftwareComponent CnxTgN."

Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName), +
$(ProductSoftwareName), +
$(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
$(ProductSoftwareImagePath), "kernelautostart", "NDIS", {}, "",+
$(NetEventDLL)
Set OEM_ABANDON_SOFTWARE = TRUE
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error"
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
Set KeyProduct      = $($R1)
Set SoftNetRulesKey = $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)

IfStr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output $(InfName)": Registry error: add software components"
CloseRegKey $(KeyProduct)
CloseRegKey $(SoftNetRulesKey)
GoTo FatalRegistry
EndIf

Debug-Output $(InfName)": 483 Set NewValueList"
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, $(KeyProduct), $(NewValueList)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output $(InfName)": Registry error: add value list."
CloseRegKey $(KeyProduct)
CloseRegKey $(SoftNetRulesKey)
GoTo FatalRegistry
EndIf

Debug-Output $(InfName)": 505 Set NewValueList"
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, $(SoftNetRulesKey), $(NewValueList)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
CloseRegKey $(KeyProduct)
CloseRegKey $(SoftNetRulesKey)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output $(InfName)": Registry error: add value list."
GoTo FatalRegistry
EndIf
EndIf

Debug-Output $(InfName)": 527 AddHardwareComponent"
Debug-Output $(InfName)$(ProductKeyName)
Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
IfInt $($R4) != -1
Debug-Output $(InfName)": 984 Set OEM_ABANDON_OPTIONS"
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
EndIf
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": Cannot add hardware component"
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output $(InfName)": Registry error: add hardware component"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
GoTo FatalRegistry
EndIf

Debug-Output $(InfName)": 546 Set NewValueList"
Set KeyParameters = $($R3)
Set KeyAdapterRules = $($R2)
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, $($R1), $(NewValueList)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error"
GoTo ShellCodeError
EndIf
CloseRegKey $($R1)

Debug-Output $(InfName)": 563 Add Value List"
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 $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output $(InfName)": Resgitry error: add value list."
CloseRegKey $(KeyParameters)
CloseRegKey $(KeyAdapterRules)
GoTo FatalRegistry
EndIf
CloseRegKey $(KeyAdapterRules)


;*************************************************************************
;
;*************************************************************************
WriteParameters = +
;(THD)
Debug-Output $(InfName)": 592 Write Parameters"
IfStr $(AdapterNumber) != ""

;		Use the following for 1 TAPI line

Set TapiAddressList = {$(AdapterNumber)" 0 0"}

Set TapiCnxtAddressList = $(AdapterNumber)" 0 0"

EndIf

;ToDo  Add ADSL registry entries here
;*********************************************************************************************************
;		REGISTRY VALUE NAME								DATA TYPE			DEFAULT VALUE
;*********************************************************************************************************
Set NewValueList = {+
{AddressList,					$(NoTitle),		$(!REG_VT_SZ),		$(TapiCnxtAddressList) 			},+
{AdslHeadEnd,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslHeadEnd)			},+
{AdslHeadEndEnvironment,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslHeadEndEnvironment)},+
{AdslTelcoId,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslTelcoId)			},+
{AdslOption1,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption1)},+
{AdslOption2,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption2)},+
{AdslOption3,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption3)},+
{AdslOption4,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption4)},+
{AdslOption5,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption5)},+
{AdslOption6,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption6)},+
{AdslOption7,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption7)},+
{AdslOption8,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption8)},+
{AdslOption9,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption9)},+
{AdslOption10,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption10)},+
{AdslOption11,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption11)},+
{AdslOption12,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption12)},+
{AdslOption13,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption13)},+
{AdslOption14,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption14)},+
{AdslOption15,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption15)},+
{AdslOption16,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption16)},+
{AdslOption17,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption17)},+
{AdslOption18,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption18)},+
{AdslOption19,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption19)},+
{AdslOption20,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdslOption20)},+
{AdvancedKeys,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdvancedKeys)			},+
{AdvancedMode,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdvancedMode)			},+
{AdvancedTabs,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdvancedTabs)			},+
{AdvancedTabsA,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdvancedTabsA)			},+
{AdvancedTabsC,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdvancedTabsC)			},+
{AdvancedTabsE,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdvancedTabsE)			},+
{AdvancedTabsP,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductAdvancedTabsP)			},+
{AutoSenseHandshakeMode,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASHandshakeMode)		},+
{AutoSenseWiringMode,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASWiringMode)			},+
{AutoSenseWiringSelection,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASWiringSelection)		},+
{AutoSenseWiringComboGPIO,		$(NoTitle),		$(!REG_VT_BIN),		$(ProductASWiringComboGPIO)		},+
{AutoSenseWiringRelayDelay,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASWiringRelayDelay)	},+
{AutoSenseWiringRelayEnergized,	$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASWiringRelayEnergized)},+
{AutoSenseWiringOrder,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductASWiringOrder)			},+
{BoardName,						$(NoTitle),		$(!REG_VT_SZ),		$(ProductHardwareTitle)			},+
{DebugFlag,						$(NoTitle),		$(!REG_VT_DWORD),	$(ProductDebugFlag)				},+
{DeviceName,					$(NoTitle),		$(!REG_VT_SZ),		$(ProductHardwareTitle)			},+
{DisplayExtPhysLayerStats, 		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductDisplayExtPhysLayerStats) 	},+
{DriverDesc,					$(NoTitle),		$(!REG_VT_SZ),		$(ProductHardwareTitle)			},+
{HwId,							$(NoTitle),		$(!REG_VT_DWORD),	$(ProductHwIdDSL)  				},+
{MaxTransmit,					$(NoTitle),		$(!REG_VT_DWORD),	$(ProductMaxTransmit)			},+
{OAMFaultManagementControl,			$(NoTitle),		$(!REG_VT_SZ),		$(ProductOAMFaultManagementControl)	},+
{PciVendorId,					$(NoTitle),		$(!REG_VT_SZ),		$(ProductPciVendorId)			},+
{PciDeviceId,					$(NoTitle),		$(!REG_VT_SZ),		$(ProductPciDeviceId)			},+
{PersistentAutodialEnableOnInstall,	$(NoTitle),		$(!REG_VT_SZ),		$(ProductPersistentAutodialEnableOnInstall)	},+
{RFCEncapsulationMode,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductEncapsulationMode)		},+
{RxMaxFrameSize,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductRxMaxFrameSize)		},+
{RxBufAllocLimit,				$(NoTitle),		$(!REG_VT_DWORD),	$(ProductRxBufAllocLimit)		},+
{SoundKeyName,					$(NoTitle),		$(!REG_VT_SZ),		$(ProductSoundKeyName)			},+
{TxMaxFrameSize,				$(NoTite),		$(!REG_VT_DWORD),	$(ProductTxMaxFrameSize)		},+
{VcDisconnectDelay, 			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductVcDisconnectDelay) 	},+
{VcList,		 				$(NoTitle),		$(!REG_VT_SZ),		$(ProductVcList)		  		},+
{VendorDescription,				$(NoTitle),		$(!REG_VT_SZ),		$(ProductVendorDescription)		},+
{VendorId,						$(NoTitle),		$(!REG_VT_SZ),		$(ProductVendorId)				},+
{VendorNearId,					$(NoTitle),		$(!REG_VT_SZ),		$(ProductNearVendorId) 			},+
{WanAddress,					$(NoTitle),		$(!REG_VT_SZ),		$(ProductWanAddress)			}+
}



Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
Debug-Output $(InfName)" AddValueList"
Debug-Output $(InfName)$(KeyParameters)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
CloseRegKey $(KeyParameters)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
CloseRegKey $(KeyParameters)
Debug-Output $(InfName)": Registry error: Add value list"
GoTo FatalRegistry
EndIf




IfInt $(LED_RELAY_ENABLE) == $(LED_HW)
; LED Option Parameters
Set LedRelayValueList = {+
{AutoSenseWiringNumCombos,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductLedASWiringNumCombos)	},+
{LinkStatusLedEnable,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductLedLinkStatusEnable)	},+
{DataTrafficLedEnable,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductLedDataTrafficEnable)	}+
}
Else
; Relay Option Parameters
Set LedRelayValueList = {+
{AutoSenseWiringNumCombos,		$(NoTitle),		$(!REG_VT_DWORD),	$(ProductRelayASWiringNumCombos)},+
{LinkStatusLedEnable,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductRelayLinkStatusEnable)	},+
{DataTrafficLedEnable,			$(NoTitle),		$(!REG_VT_DWORD),	$(ProductRelayDataTrafficEnable)}+
}
EndIf


Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(LedRelayValueList)
CloseRegKey $(KeyParameters)

IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add value list"
Shell $(subroutineinf), SetupMessage $(!STF_LANGUAGE) WARNING +
"Could not Add LED/Relay registry entries"
GoTo FatalRegistry
EndIf






;
; Skip TAPI/RAS setup if already installed.
;
IfStr(i) $(!NTN_InstallMode) == configure
Debug-Output $(InfName)": 669 NTN_InstallMode == configure"
GoTo SuccessfulOption
EndIf
;
; Create the HARDWARE\DEVICEMAP\TAPI DEVICES\Conexant PCI ADSL WAN Driver key
;
Debug-Output $(InfName)": 675 HARDWARE\DEVICEMAP\TAPI DEVICES\Conexant PCI ADSL WAN Driver key"
OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DEVICEMAP" $(MAXIMUM_ALLOWED) BaseKey
shell "" HtCreateRegKey $(BaseKey) "TAPI DEVICES\"$(ProductHardwareName)

IfStr(i) $($R0) != NO_ERROR
Debug-Output $(InfName)": Error creating registry key!"
GoTo FatalRegistry
EndIf
Set TapiDeviceKey = $($R1)
Set NewValueList = {+
{Address,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TapiAddressList)},+
{"Media Type",$(NoTitle),$(!REG_VT_SZ),$(TapiMediaType)}}
Shell  $(UtilityInf), AddValueList, $(TapiDeviceKey), $(NewValueList)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error."
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(InfName)": Registry error: Add value list"
GoTo FatalRegistry
EndIf
CloseRegKey $(TapiDeviceKey)
CloseRegKey $(BaseKey)
;
; if RAS is not installed, then shell ras setup INF file to install RAS
; else invoke RAS to allow user to configure RAS for the Conexant PCI ADSL WAN Driver.
;
Read-Syms InvokeRasDlg$(!STF_LANGUAGE)
Shell "oemnsvra.inf" CheckRasInstalled
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": Error Shelling the RAS INF file oemnsvra.inf"
Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE),  +
"STATUS", $(InvokeRasError)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
GoTo ShellCodeError
EndIf
GoTo SuccessfulOption
EndIf
Set RasInstalled = $($R0)
Debug-Output $(InfName)": Is RAS Installed? "$(RasInstalled)
;
; display a message to the user that RAS setup will now be invoked
;
IfStr(i) $(RasInstalled) == FALSE
Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", +
$(InvokeRasSetupMsg)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
GoTo SuccessfulOption
EndIf
Else
Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", +
$(InvokeRasConfigMsg)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
GoTo SuccessfulOption
EndIf
EndIf
;
; FIXME - RAS INF will not locate the files if it is spawned here.
;
EndWait
GoTo SuccessfulOption

;
; Set the flags based on whether this is an IDW installation
;
IfStr(i) $(!STF_IDW) == TRUE
Set AddCopy  = NO
Set DoCopy   = NO
Set DoConfig = NO
Else
Set AddCopy  = YES
Set DoCopy   = YES
Set DoConfig = YES
EndIf
;
; change the global install mode flag to configure if RAS is already installed
;
IfStr(i) $(RasInstalled) == TRUE
Set SaveNTN_InstallMode = $(!NTN_InstallMode)
Set !NTN_InstallMode = configure
EndIf
;
; now invoke RAS setup to do the right thing
;
Shell "oemnsvra.inf" InstallOption $(!STF_LANGUAGE) "RAS" $(RasDir) $(AddCopy) $(DoCopy) $(DoConfig)
;
; restore the global instal mode flag if it was changed
;
IfStr(i) $(RasInstalled) == TRUE
Set !NTN_InstallMode = $(SaveNTN_InstallMode)
EndIf
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": Error Shelling the RAS INF file oemnsvra.inf"
Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS",  +
$(InvokeRasError)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
GoTo ShellCodeError
EndIf
GoTo SuccessfulOption
EndIf

EndWait
GoTo SuccessfulOption

;***********************************************************************
;
;***********************************************************************
BindingAdapter =+
Set Error = "Binding: Sorry, not yet implemented."
GoTo FatalError

;***********************************************************************
;
;***********************************************************************
RemoveAdapter = +
IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error"
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)
Debug-Output $(InfName)": ShellCode error"
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
GoTo FatalRegistry
EndIf
EndIf


; RemoveService Parameters
;    SvcName = $($0)
;    UseDelSvc = $($1)


Debug-Output $(InfName)": RemoveService LibraryDriverName"
Shell $(UtilityInf), RemoveService, $(LibraryDriverName), "YES"

Debug-Output $(InfName)": RemoveService Arbitrator0DriverName"
Shell $(UtilityInf), RemoveService, $(Arbitrator0DriverName), "YES"

Debug-Output $(InfName)": RemoveService Arbitrator1DriverName"
Shell $(UtilityInf), RemoveService, $(Arbitrator1DriverName), "YES"

Debug-Output $(InfName)": RemoveService PumpControllerDriverName"
Shell $(UtilityInf), RemoveService, $(PumpControllerDriverName), "YES"

;
; Delete the Company Product Software Key used by Applications
;

OpenRegKey $(!REG_H_LOCAL) "" $(CompanySoftwareKey)	 $(!REG_KEY_SET_VALUE) hCompanyKey
DeleteRegTree $(hCompanyKey) $(ProductSoftwareSubkey)
CloseRegKey $(hCompanyKey)

;
; Delete the Run entry for the DSL Taskbar Application
;

OpenRegKey $(!REG_H_LOCAL) "" $(MicrosoftRunKey)	 $(!REG_KEY_SET_VALUE) hRunKey
Ifstr(i) $(hRunKey) == $(KeyNull)
Debug-Output $(InfName)": Cannot open Microsoft Run Key"
Endif

DeleteRegValue $(hRunKey) "CnxDslTaskBar"
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output $(InfName)": Cannot delete Taskbar Application Run Value"
Endif

CloseRegKey $(hRunKey)

; AddFileToDeleteList
;
; WARNING!!!
; Do NOT use AddFileToDeleteList if you want to be able to reinstall without rebooting
; If you reinstall without rebooting, the files marked for deletion will still be deleted
; on the next reboot.

AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\CnxTgN.sys"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\CnxTgR.sys"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\CnxTgP.sys"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\CnxTgS.sys"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\CnxTgF.hex"

AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxAdslC.cpl"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxDslWz.dll"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxHwIo.dll"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxAdslL.exe"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxDslTb.exe"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxUnist.exe"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\"$(ConnectoidShortcutIconFile)
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\logo.bmp"

AddFiletoDeleteList $(!STF_WINDOWSPATH)"\Media\CnxDown.wav"
AddFiletoDeleteList $(!STF_WINDOWSPATH)"\Media\CnxUp.wav"

AddFiletoDeleteList $(!STF_WINDOWSPATH)"\Help\CnxAdslH.chm"

GoTo end


;***********************************************************************
;
;***********************************************************************
UpgradeSoftware = +
IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
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 $(InfName)": ShellCode error"
GoTo ShellCodeError
EndIf
Set !UG_Filename = $($R0)
IfStr(i) $(!UG_Filename) != ""
install "Install-Update"
IfStr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
GoTo FatalError
EndIf
EndIf
SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
IfInt $(Version) != $(ProductVersion)
EndIf
CloseRegKey $(KeyProduct)
Else
GoTo FatalRegistry
EndIf
Else
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
GoTo FatalRegistry
EndIf
CloseRegKey $(NetRules)
CloseRegKey $(NetworkCardKey)
Else
GoTo FatalRegistry
EndIf
OpenRegKey $(!REG_H_LOCAL) "" +
$(!NTN_ServiceBase)"\"$(ServiceName) +
$(MAXIMUM_ALLOWED) ServiceKey
IfStr(i) $(ServiceKey) != $(KeyNull)
CloseRegKey $(ServiceKey)
Else
GoTo FatalRegistry
EndIf
EndIf
GoTo end

;***********************************************************************
;
;***********************************************************************
SuccessfulOption = +
GoTo end

;***********************************************************************
;
;***********************************************************************
Abandon = +
ForListDo $(OEM_ABANDON_OPTIONS)
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductSoftwareName), $($)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error"
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)
Debug-Output $(InfName)": ShellCode error"
GoTo ShellCodeError
EndIf
Set RegistryErrorIndex = $($R0)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
GoTo FatalRegistry
EndIf
EndIf


; RemoveService Parameters
;    SvcName = $($0)
;    UseDelSvc = $($1)

Debug-Output $(InfName)": RemoveService LibraryDriverName"
Shell $(UtilityInf), RemoveService, $(LibraryDriverName), "YES"

Debug-Output $(InfName)": RemoveService Arbitrator0DriverName"
Shell $(UtilityInf), RemoveService, $(Arbitrator0DriverName), "YES"

Debug-Output $(InfName)": RemoveService Arbitrator1DriverName"
Shell $(UtilityInf), RemoveService, $(Arbitrator1DriverName), "YES"

Debug-Output $(InfName)": RemoveService PumpControllerDriverName"
Shell $(UtilityInf), RemoveService, $(PumpControllerDriverName), "YES"

;
; Delete the Company Product Software Key used by Applications
;

OpenRegKey $(!REG_H_LOCAL) "" $(CompanySoftwareKey)	 $(!REG_KEY_SET_VALUE) hCompanyKey
DeleteRegTree $(hCompanyKey) $(ProductSoftwareSubkey)
CloseRegKey $(hCompanyKey)

;
; Delete the Run entry for the DSL Taskbar Application
;

OpenRegKey $(!REG_H_LOCAL) "" $(MicrosoftRunKey)	 $(!REG_KEY_SET_VALUE) hRunKey
Ifstr(i) $(hRunKey) == $(KeyNull)
Debug-Output $(InfName)": Cannot open Microsoft Run Key"
Endif

DeleteRegValue $(hRunKey) "CnxDslTaskBar"
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output $(InfName)": Cannot delete Taskbar Application Run Value"
Endif

CloseRegKey $(hRunKey)

; AddFileToDeleteList
;
; WARNING!!!
; Do NOT use AddFileToDeleteList if you want to be able to reinstall without rebooting
; If you reinstall without rebooting, the files marked for deletion will still be deleted
; on the next reboot.

AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\CnxTgN.sys"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\CnxTgR.sys"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\CnxTgP.sys"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\CnxTgS.sys"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\CnxTgF.hex"

AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxAdslC.cpl"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxDslWz.dll"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxHwIo.dll"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxAdslL.exe"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxDslTb.exe"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\CnxUnist.exe"
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\"$(ConnectoidShortcutIconFile)
AddFiletoDeleteList $(!STF_WINDOWSSYSPATH)"\logo.bmp"

AddFiletoDeleteList $(!STF_WINDOWSPATH)"\Media\CnxDown.wav"
AddFiletoDeleteList $(!STF_WINDOWSPATH)"\Media\CnxUp.wav"

AddFiletoDeleteList $(!STF_WINDOWSPATH)"\Help\CnxAdslH.chm"

GoTo end

;***********************************************************************
;
;***********************************************************************
WarningMsg = +
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)
EndIf
GoTo end

;***********************************************************************
;
;***********************************************************************
NonFatalInfo = +
Set Severity = STATUS
Set CommonStatus = STATUS_USERCANCEL
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)
EndIf
GoTo end

;***********************************************************************
;
;***********************************************************************
FatalRegistry = +
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
GoTo ShellCodeError
EndIf
Set Error = $($R0)
GoTo FatalError

;***********************************************************************
;
;***********************************************************************
FatalDetect = +
Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
IfInt $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output $(InfName)": ShellCode error: cannot get an error string."
GoTo ShellCodeError
EndIf
Set Error = $($R0)
GoTo FatalError

;***********************************************************************
;
;***********************************************************************
FatalError = +
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 = +
Set !DebugOutputControl = $(OldDebugControl)
Return $(CommonStatus)

;***********************************************************************
;
;***********************************************************************
[HtCreateRegKey]
Debug-Output $(InfName)": Entering [HtCreateRegKey]"
Set ECR_Result          = NO_ERROR
Set ECR_BaseKeyHandle   = $($0)
Set ECR_NewPath         = $($1)
Set KeyNull             = ""
Set MAXIMUM_ALLOWED     = 33554432

Debug-Output $(InfName)": HtCreateRegKey - ECR_BaseKeyHandle = "$(ECR_BaseKeyHandle)
Debug-Output $(InfName)":                  ECR_NewPath       = "$(ECR_NewPath)
Debug-Output $(InfName)":                  MAXIMUM_ALLOWED   = "$(MAXIMUM_ALLOWED)
Debug-Output $(InfName)":                  KeyNull           = "$(KeyNull)

OpenRegKey $(ECR_BaseKeyHandle) "" $(ECR_NewPath) $(MAXIMUM_ALLOWED) +
ECR_BaseKey
Debug-Output $(InfName)": ECR_BaseKey = "$(ECR_BaseKey)
Debug-Output $(InfName)":     OpenRegKey returned "$($R0)
IfStr $(ECR_BaseKey) == $(KeyNull)
Debug-Output $(InfName)": ECR_BaseKey == KeyNull"
Else
Debug-Output $(InfName)": ECR_BaseKey != KeyNull"
Set ECR_KeyHandle = $(ECR_BaseKey)
GoTo  ECR_Return
EndIf

Set ECR_TmpPath = ""
Split-String $(ECR_NewPath) "\" ECR_PList
Debug-Output $(InfName)": ECR_PList = "$(ECR_PList)
ForListDo $(ECR_PList)
IfStr(i) $($) != "\"
IfInt $(#) == 1
Set ECR_TmpPath = $($)
Else
Set ECR_TmpPath = $(ECR_TmpPath)"\"$($)
EndIf
Debug-Output $(InfName)": Determining if "$(ECR_TmpPath)" exists"
OpenRegKey $(ECR_BaseKeyHandle) "" $(ECR_TmpPath) $(MAXIMUM_ALLOWED) ECR_BaseKey
IfStr $(ECR_BaseKey) == $(KeyNull)
Debug-Output $(InfName)": Creating "$(ECR_TmpPath)
CreateRegKey $(ECR_BaseKeyHandle)  {$(ECR_TmpPath),0,GenericClass} "" $(MAXIMUM_ALLOWED) "" ECR_KeyHandle
IfStr(i) $(ECR_KeyHandle) == $(KeyNull)
Set ECR_Result = $($R0)
GoTo ECR_Return
EndIf
EndIf
EndIf
EndForListDo
ECR_Return = +
Return $(ECR_Result) $(ECR_KeyHandle)

;***********************************************************************
;
;***********************************************************************
[DebugConfiguration]
Return

;***********************************************************************
;
;***********************************************************************
[Install-Option]
Set STF_VITAL = ""
IfStr(i) $(AddCopy) == "YES"
AddSectionFilesToCopyList Files-$(Option) $(SourceDirectory) $(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-Cpl $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-DLL $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Exe $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Ico $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Bmp $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Wav $(SourceDirectory) $(!STF_WINDOWSPATH)\Media
AddSectionFilesToCopyList Files-Chm $(SourceDirectory) $(!STF_WINDOWSPATH)\Help
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-$(Option) $(SourceDirectory) $(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-Inf $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Cpl $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-DLL $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Exe $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Ico $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Bmp $(SourceDirectory) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Wav $(SourceDirectory) $(!STF_WINDOWSPATH)\Media
AddSectionFilesToCopyList Files-Chm $(SourceDirectory) $(!STF_WINDOWSPATH)\Help
Set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit

;***********************************************************************
;
;***********************************************************************
[Source Media Descriptions]
1  = $(DiskName) , TAGFILE = DISK1

;***********************************************************************
;
;***********************************************************************
[ProductType]
STF_PRODUCT         = Winnt
STF_PLATFORM        = I386



;ToDo	Add files to be copied here.
;
;ARG1:  An integer ID that identifies the distribution disk on which the
;		source file is located.
;ARG2:  Specifies the base file name and extension (must be 8.3 FAT format)
;		of the source file
;ARG3:	SIZE = size of file and is used to update progress indicator.

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

;***********************************************************************
;
;***********************************************************************
[Files-Conexant_PCI_ADSL_WAN_Driver]
1, CnxTgN.sys, SIZE=128000
1, CnxTgP.sys, SIZE=501000
1, CnxTgR.sys, SIZE=59000
1, CnxTgS.sys, SIZE=8000
1, CnxTgf.hex, SIZE=42000

; WARNING!!! Be sure to update AddFiletoDeleteList entries when adding files

;***********************************************************************
;
;***********************************************************************

[Files-Cpl]
1, CnxAdslC.CPL, SIZE=596000

; WARNING!!! Be sure to update AddFiletoDeleteList entries when adding files

;***********************************************************************
;
;***********************************************************************

[Files-Exe]
1, CnxAdslL.exe, SIZE=180000
1, CnxDslTb.exe, SIZE=332000
1, CnxUnist.exe, SIZE=136000

; WARNING!!! Be sure to update AddFiletoDeleteList entries when adding files

;***********************************************************************
;
;***********************************************************************

[Files-DLL]
1, CnxDslWz.dll, SIZE=292000
1, CnxHwIo.dll, SIZE=112000

; WARNING!!! Be sure to update AddFiletoDeleteList entries when adding files


;***********************************************************************
;
;***********************************************************************

[Files-Ico]
1, CnxDunI.ico, SIZE=3000

; WARNING!!! Be sure to update AddFiletoDeleteList entries when adding files


;***********************************************************************
;
;***********************************************************************

[Files-Wav]
;	1, CnxDown.wav, SIZE=79000	; uncomment this line if using a custom down wave
;	1, CnxUp.wav, SIZE=79000	; uncomment this line if using a custom up wave

; WARNING!!! Be sure to update AddFiletoDeleteList entries when adding files

;***********************************************************************
;
;***********************************************************************

[Files-Chm]
;	1, CnxAdslH.chm, SIZE=201000	; uncomment this line if installing help

; WARNING!!! Be sure to update AddFiletoDeleteList entries when adding files

;***********************************************************************
;
;***********************************************************************

[Files-Bmp]
;	1, logo.bmp, SIZE=1000	        ; uncomment this line if using a custom logo

; WARNING!!! Be sure to update AddFiletoDeleteList entries when adding files

;***********************************************************************
;
;***********************************************************************

[LanguagesSupported]
ENG

;***********************************************************************
;
;***********************************************************************
[OptionsTextENG]
;  The first argument is what will show up in the Select OEM Option dialog
;  box when installing new hardware.

"MC8000P ADSL" = "MC8000P PCI ADSL WAN 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 = "MC8000P PCI ADSL WAN Adapter Card Setup"
ProductSoftwareDescription = "MC8000P PCI ADSL WAN Adapter Driver"

; This description is displayed in the "Item Notes" field in the Adapters properties dialog box
ProductHardwareDescription = "MC8000P PCI ADSL WAN Adapter Driver"
ProductSoftwareTitle = "MC8000P PCI ADSL WAN Adapter Driver"

; This description is displayed in the "Network Adapters" field in the Adapters properties dialog box
ProductHardwareTitle         = "MC8000P PCI ADSL WAN Adapter"

ShellCodeErrorTitle                 = "Error: "$(FunctionTitle))
ShellCodeErrorText                  = "Shell Code Error."

NoHardwareFound         = "The PCI ADSL adapter is not present in the system"

; Applications Display
ShortProductName = "MC8000P ADSL"
ProductName = "MC8000P PCI ADSL WAN Adapter"
CompanyName = ""
TaskbarAppTitle = "MC8000P ADSL"
CustomerVersion = ""

; Dial-Up Networking Connectoid
ConnectoidName = "MC8000P DSL"

; Shortcuts
ConnectoidShortcutDescription = "MC8000P DSL"
ShortcutFolderName = "MC8000P DSL"
ConnectoidShortcutIconFile = "CnxDunI.ico"
AutologShortcutDescription= "MC8000P DSL Autolog"
ControlPanelAppletShortcutDescription = "MC8000P Control Panel"
HelpShortcutDescription = "MC8000P Help"
TaskBarAppShortcutDescription = "MC8000P Task Bar"
UninstallShortcutDescription = "Uninstall MC8000P DSL"

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

;***********************************************************************
;
;***********************************************************************
[InvokeRasDlgENG]
InvokeRasSetupMsg   = "The PCI ADSL WAN Adapter setup is complete. "+
"REMOTE ACCESS SERVICES (RAS) must now be installed. "+
"Please ADD the PCI ADSL WAN Adapter ports in RAS "+
"setup (in the SERVICES tab) to enable you to "+
"use RAS over the PCI ADSL WAN Adapter."

InvokeRasConfigMsg  = "The PCI ADSL WAN Adapter setup is complete. "+
"REMOTE ACCESS SERVICES (RAS) setup must now be invoked. "+
"Please ADD the PCI ADSL WAN Adapter ports in RAS "+
"setup (in the SERVICES tab) to enable you to "+
"use RAS over the PCI ADSL WAN Adapter."

InvokeRasError      = "The PCI ADSL WAN Adapter setup encountered an error "+
"while invoking the RAS setup INF file (OEMNSVRA.INF). "+
"Please make sure that the file is present in the "+
"System32 directory and is the proper file."

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: web4, load: 1.56