oemsetup.inf Driver File Contents (40001974_L3P.zip)

;*****************************************************************************
;* Copyright (c) 1996-2001 Digi International Inc., All Rights Reserved
;*
;* This software contains proprietary and confidential information of Digi
;* International Inc.  By accepting transfer of this copy, Recipient agrees
;* to retain this software in confidence, to prevent disclosure to others,
;* and to make no use of this software other than that for which it was
;* delivered.  This is an unpublished copyrighted work of Digi International
;* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly
;* prohibited.
;*
;* Restricted Rights Legend
;*
;* Use, duplication, or disclosure by the Government is subject to
;* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in
;* Technical Data and Computer Software clause at DFARS 252.227-7031 or
;* subparagraphs (c)(1) and (2) of the Commercial Computer Software -
;* Restricted Rights at 48 CFR 52.227-19, as applicable.
;*
;* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
;*
;*****************************************************************************

[Identification]
OptionType = NetAdapter
InstallVersion = 4"."0"."219

[GlobalConstants]
Manufacturer = "Digi"

TYPECHECK_NONE = "NoValueTypeCheck"

[GlobalRegistryConstants]
KEY_DIGIROOT = $(!NTN_SoftwareBase)"\"$(Manufacturer)
KEY_NETWORKCARDS = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
KEY_SERVICEGROUPORDER = "SYSTEM\CurrentControlSet\Control\ServiceGroupOrder"

[GlobalPathConstants]
SYSTEM32_DIR = "%SystemRoot%\System32"
DRIVER_DIR = $(SYSTEM32_DIR)"\drivers"
IoLogMsgDLLPath = $(SYSTEM32_DIR)"\IoLogMsg.dll"

[DetectionConstants]
DETECTDLL_PATH = $(!STF_WINDOWSSYSPATH)"\DigiDtct.dll"

[UpdateConstants]
UPDATEDLL_PATH = $(!STF_WINDOWSSYSPATH)"\DigiInf.dll"

[DriverPackageConstants]
PackageSoftwareName              = "WAN Links"
PackageKeyName                   = $(KEY_DIGIROOT)"\"$(PackageSoftwareName)"\CurrentVersion"
PackageInstalledOptionsKeyName   = $(PackageKeyName)"\InstalledOptions"
PackageOptionInstalledKeyName    = $(PackageInstalledOptionsKeyName)"\"$(Option)
PackageOptionDiagKeyName         = $(PackageOptionInstalledKeyName)
PackageConfigMapKey              = $(PackageKeyName)"\Config"

[DriverConstants]
SoftwareType            = "driver"

ProductMajorVersion     = 4
ProductMinorVersion     = 0
ProductBuildNumber      = 219
ProductVersion          = 4"."0"."219

NetRuleSoftwareUse      = $(SoftwareType)
NetRuleMiniportUse      = $(SoftwareType)
NetRuleHardwareBindForm = " yes yes container"

DStreamsDependOnGroup   = "DIGIDS"
DStreamsBeforeGroup     = "NDIS"
OptionsThatNeedStreams  = {"Sync570"}
StreamsDevice           = "DigiSOH"
OptionsWithX25Svcs		= {"Sync570","Clydesdale"}

MiniPortDependOnGroup   = ""

ServicesToDeinstallList = {+
"PCI", +
"PAMA", +
"FR", +
"X25L", +
"X25", +
"SNA", +
"PPP", +
"ISDN", +
"ASYN", +
}

[DriverConstants-Houston]
ProductSoftwareName        = "DigiDxb"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiDxb.sys"
Review                     = 1
Hidden                     = 0

NetRuleSoftwareType        = "DigiDxbSys DigiDxbDriver"
NetRuleSoftwareBindForm    = """DigiDxbDriver"" yes no container"
NetRuleSoftwareClass       = {"DigiDxbDriver basic"}
NetRuleSoftwareBindable    = {"DigiDxbDriver DigiDxbAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "DIGIDS"
DependOnGroup              = {}
DependsOn                  = {}

ProductHardwareName        = "DigiDxb"
NetRuleHardwareType        = "DigiDxb DigiDxbAdapter"
NetRuleHardwareClass       = {"DigiDxbAdapter basic"}

MiniPortDriverName         = ""

[DriverConstants-London]
ProductSoftwareName        = "DigiDxb"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiDxb.sys"
Review                     = 1
Hidden                     = 0

NetRuleSoftwareType        = "DigiDxbSys DigiDxbDriver"
NetRuleSoftwareBindForm    = """DigiDxbDriver"" yes no container"
NetRuleSoftwareClass       = {"DigiDxbDriver basic"}
NetRuleSoftwareBindable    = {"DigiDxbDriver DigiDxbAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "DIGIDS"
DependOnGroup              = {}
DependsOn                  = {}

ProductHardwareName        = "DigiDxb"
NetRuleHardwareType        = "DigiDxb DigiDxbAdapter"
NetRuleHardwareClass       = {"DigiDxbAdapter basic"}

MiniPortDriverName         = ""

[DriverConstants-Chaska]
ProductSoftwareName        = "DigiDxb"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiDxb.sys"
Review                     = 1
Hidden                     = 0

NetRuleSoftwareType        = "DigiDxbSys DigiDxbDriver"
NetRuleSoftwareBindForm    = """DigiDxbDriver"" yes no container"
NetRuleSoftwareClass       = {"DigiDxbDriver basic"}
NetRuleSoftwareBindable    = {"DigiDxbDriver DigiDxbAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "DIGIDS"
DependOnGroup              = {}
DependsOn                  = {}

ProductHardwareName        = "DigiDxb"
NetRuleHardwareType        = "DigiDxb DigiDxbAdapter"
NetRuleHardwareClass       = {"DigiDxbAdapter basic"}

MiniPortDriverName         = ""

[DriverConstants-Clydesdale]
ProductSoftwareName        = "DigiDxb"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiDxb.sys"
Review                     = 1
Hidden                     = 0

NetRuleSoftwareType        = "DigiDxbSys DigiDxbDriver"
NetRuleSoftwareBindForm    = """DigiDxbDriver"" yes no container"
NetRuleSoftwareClass       = {"DigiDxbDriver basic"}
NetRuleSoftwareBindable    = {"DigiDxbDriver DigiDxbAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "DIGIDS"
DependOnGroup              = {}
DependsOn                  = {}

ProductHardwareName        = "DigiDxb"
NetRuleHardwareType        = "DigiDxb DigiDxbAdapter"
NetRuleHardwareClass       = {"DigiDxbAdapter basic"}

MiniPortDriverName         = ""

[DriverConstants-Streams]
ProductSoftwareName        = "DigiSOH"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiSOH.sys"
Review                     = 1
Hidden                     = 0

NetRuleSoftwareType        = ""
NetRuleSoftwareBindForm    = ""
NetRuleSoftwareClass       = {}
NetRuleSoftwareBindable    = {}

ServiceType                = "kernelautostart"
Group                      = "DIGIDS"
DependOnGroup              = {}
DependsOn                  = {"+DIGIMP"}

ProductHardwareName        = "DigiSOH"
NetRuleHardwareType        = ""
NetRuleHardwareClass       = {}

MiniportAdapterKey         = "MiniportAdapters"
MiniPortDependOnGroup      = "DIGIMP"

PerfLoadIni                = "sohctrs.ini"
PerfUnload                 = $(ProductSoftwareName)
PerfLibrary                = "sohperf.dll"
PerfEventLog               = "SohPerf"
PerfOpen                   = "OpenSohPerformanceData"
PerfCollect                = "CollectSohPerformanceData"
PerfClose                  = "CloseSohPerformanceData"

[DriverConstants-Sync570]
ProductSoftwareName        = "Dg570mp"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\Dg570mp.sys"
Review                     = 1
Hidden                     = 1

NetRuleSoftwareType        = "Dg570mpSys Dg570mpDriver"
NetRuleSoftwareBindForm    = """Dg570mpDriver"" yes no container"
NetRuleSoftwareClass       = {"Dg570mpDriver basic"}
NetRuleSoftwareBindable    = {"Dg570mpDriver Dg570mpAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "DIGIMP"
DependOnGroup              = {}
DependsOn                  = {}

ProductHardwareName        = "Dg570mp"
NetRuleHardwareType        = "Dg570mp Dg570mpAdapter"
NetRuleHardwareClass       = {"Dg570mpAdapter basic"}

[DriverConstants-AccelePort2000]
ProductSoftwareName        = "DigiDxb"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiDxb.sys"
Review                     = 0
Hidden                     = 0

NetRuleSoftwareType        = "DigiDxbSys DigiDxbDriver"
NetRuleSoftwareBindForm    = """DigiDxbDriver"" yes no container"
NetRuleSoftwareClass       = {"DigiDxbDriver basic"}
NetRuleSoftwareBindable    = {"DigiDxbDriver DigiDxbAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "DIGIDS"
DependOnGroup              = {}
DependsOn                  = {}

ProductHardwareName        = "DigiDxb"
NetRuleHardwareType        = "DigiDxb DigiDxbAdapter"
NetRuleHardwareClass       = {"DigiDxbAdapter basic"}

MiniPortDriverName         = ""

[DriverConstants-PCI]
ProductSoftwareName        = "DigiPci"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiPci.sys"
Review                     = 0
Hidden                     = 1

NetRuleSoftwareType        = ""
NetRuleSoftwareUse         = ""
NetRuleSoftwareBindForm    = ""
NetRuleSoftwareClass       = {}
NetRuleSoftwareBindable    = {}
ServiceType                = "kernel"
Group                      = "Base"
DependOnGroup              = {}
DependsOn                  = {}

ProductHardwareName        = "DigiPci"
NetRuleHardwareType        = ""
NetRuleHardwareClass       = {}

CircuitName                = ""
LineServiceKeyName         = ""
MediaType                  = ""

[DriverConstants-FR]
ProductSoftwareName        = "DigiLan"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiLan.sys"
Review                     = 0
Hidden                     = 1

NetRuleSoftwareType        = "DigiLanSys ndisDriver DigiLanDriver"
NetRuleSoftwareUse         = $(SoftwareType)
NetRuleSoftwareBindForm    = """DigiLanDriver"" yes no container"
NetRuleSoftwareClass       = {"DigiLanDriver basic"}
NetRuleSoftwareBindable    = {"DigiLanDriver DigiLanAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "NDIS"
DependOnGroup              = {"+DIGIDS"}
DependsOn                  = {}

ProductHardwareName        = "DigiLan"
NetRuleHardwareType        = "DigiLan DigiLanAdapter"
NetRuleHardwareClass       = {"DigiLanAdapter basic"}

CircuitName                = "DLCI"
LineServiceKeyName         = "FRService"
MediaType                  = "FR"

[DriverConstants-X25L]
ProductSoftwareName        = "DigiLan"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiLan.sys"
Review                     = 0
Hidden                     = 1

NetRuleSoftwareType        = "DigiLanSys ndisDriver DigiLanDriver"
NetRuleSoftwareUse         = $(SoftwareType)
NetRuleSoftwareBindForm    = """DigiLanDriver"" yes no container"
NetRuleSoftwareClass       = {"DigiLanDriver basic"}
NetRuleSoftwareBindable    = {"DigiLanDriver DigiLanAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "NDIS"
DependOnGroup              = {"+DIGIDS"}
DependsOn                  = {}

ProductHardwareName        = "DigiLan"
NetRuleHardwareType        = "DigiLan DigiLanAdapter"
NetRuleHardwareClass       = {"DigiLanAdapter basic"}

CircuitName                = "Channel"
LineServiceKeyName         = "X25Service"
MediaType                  = "X25"

[DriverConstants-X25]
ProductSoftwareName        = "DigiWanX"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiWanX.sys"
Review                     = 0
Hidden                     = 1

NetRuleSoftwareType        = "DigiWanXSys DigiWanXDriver"
NetRuleSoftwareUse         = $(SoftwareType)
NetRuleSoftwareBindForm    = """"DigiWanXDriver""" yes no container"
NetRuleSoftwareClass       = {"DigiWanXDriver basic"}
NetRuleSoftwareBindable    = {"DigiWanXDriver DigiWanXAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "NDIS"
DependOnGroup              = {"+DIGIDS"}
DependsOn                  = {}

ProductHardwareName        = "DigiWanX"
NetRuleHardwareType        = "DigiWanX DigiWanXAdapter"
NetRuleHardwareClass       = {"DigiWanXAdapter basic"}

CircuitName                = "Channel"
LineServiceKeyName         = "X25Service"
MediaType                  = "X25"

[DriverConstants-SNA]
ProductSoftwareName        = "DigiSNA"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiSNA.sys"
Review                     = 0
Hidden                     = 1

NetRuleSoftwareType        = "DigiSNASys ndisDriver DigiSNADriver"
NetRuleSoftwareUse         = $(SoftwareType)
NetRuleSoftwareBindForm    = """DigiSNADriver"" yes no container"
NetRuleSoftwareClass       = {"DigiSNADriver basic"}
NetRuleSoftwareBindable    = {"DigiSNADriver DigiSNAAdapter non exclusive 100"}
ServiceType                = "kernel"
Group                      = "Extended Base"
DependOnGroup              = {"+DIGIDS"}
DependsOn                  = {}

ProductHardwareName        = "DigiSNA"
NetRuleHardwareType        = "DigiSNA DigiSNAAdapter"
NetRuleHardwareClass       = {"DigiSNAAdapter basic"}

CircuitName                = ""
LineServiceKeyName         = "SNAService"
MediaType                  = "SNA"

[DriverConstants-PPP]
ProductSoftwareName        = "DigiPPP"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiPPP.sys"
Review                     = 0
Hidden                     = 1

NetRuleSoftwareType        = "DigiPPPSys DigiPPPDriver"
NetRuleSoftwareUse         = $(SoftwareType)
NetRuleSoftwareBindForm    = """"DigiPPPDriver""" yes no container"
NetRuleSoftwareClass       = {"DigiPPPDriver basic"}
NetRuleSoftwareBindable    = {"DigiPPPDriver DigiPPPAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "NDIS"
DependOnGroup              = {"+DIGIDS"}
DependsOn                  = {}

ProductHardwareName        = "DigiPPP"
NetRuleHardwareType        = "DigiPPP DigiPPPAdapter"
NetRuleHardwareClass       = {"DigiPPPAdapter basic"}

CircuitName                = ""
LineServiceKeyName         = "PPPService"
MediaType                  = "PPP"

[DriverConstants-ISDN]
ProductSoftwareName        = "DigiIsdn"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiIsdn.sys"
Review                     = 0
Hidden                     = 1

NetRuleSoftwareType        = "DigiIsdnSys DigiIsdnDriver"
NetRuleSoftwareUse         = $(SoftwareType)
NetRuleSoftwareBindForm    = """"DigiIsdnDriver""" yes no container"
NetRuleSoftwareClass       = {"DigiIsdnDriver basic"}
NetRuleSoftwareBindable    = {"DigiIsdnDriver DigiIsdnAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "NDIS"
DependOnGroup              = {"+DIGIDS"}
DependsOn                  = {}

ProductHardwareName        = "DigiIsdn"
NetRuleHardwareType        = "DigiIsdn DigiIsdnAdapter"
NetRuleHardwareClass       = {"DigiIsdnAdapter basic"}

CircuitName                = ""
LineServiceKeyName         = "ISDN"
MediaType                  = "ISDN"

[DriverConstants-ASYN]
ProductSoftwareName        = "DigiAsyn"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(DRIVER_DIR)"\DigiAsyn.sys"
Review                     = 0
Hidden                     = 1

NetRuleSoftwareType        = "DigiAsynSys DigiAsynDriver"
NetRuleSoftwareUse         = $(SoftwareType)
NetRuleSoftwareBindForm    = """"DigiAsynDriver""" yes no container"
NetRuleSoftwareClass       = {"DigiAsynDriver basic"}
NetRuleSoftwareBindable    = {"DigiAsynDriver DigiAsynAdapter non exclusive 100"}
ServiceType                = "kernelautostart"
Group                      = "Extended Base"
DependOnGroup              = {"+DIGIDS"}
DependsOn                  = {}

ProductHardwareName        = "DigiAsyn"
NetRuleHardwareType        = "DigiAsyn DigiAsynAdapter"
NetRuleHardwareClass       = {"DigiAsynAdapter basic"}

CircuitName                = ""
LineServiceKeyName         = "ASYN"
MediaType                  = ""

[DriverConstants-PAMA]
ProductSoftwareName        = "DigiPamA"
ProductKeyName             = $(KEY_DIGIROOT)"\"$(ProductSoftwareName)"\CurrentVersion"
ProductSoftwareImagePath   = $(SYSTEM32_DIR)"\DigiPamA.exe"
Review                     = 0
Hidden                     = 0
SoftwareType               = "service"

NetRuleSoftwareType        = ""
NetRuleSoftwareUse         = ""
NetRuleSoftwareBindForm    = ""
NetRuleSoftwareClass       = {}
NetRuleSoftwareBindable    = {}
ServiceType                = "serviceauto"
Group                      = ""
DependOnGroup              = {}
DependsOn                  = {"Tcpip"}

ProductHardwareName        = "DigiPamA"
NetRuleHardwareType        = ""
NetRuleHardwareClass       = {}

CircuitName                = ""
LineServiceKeyName         = ""
MediaType                  = ""

[DigiCfg.AddReg]

110 = AdapterMap, "Houston", 0x00000000, DigiHLC.dll
111 = AdapterMap, "London", 0x00000000, DigiHLC.dll
112 = AdapterMap, "Chaska", 0x00000000, DigiHLC.dll
113 = AdapterMap, "Clydesdale", 0x00000000, DigiFWrk.dll
114 = AdapterMap, "Prime", 0x00000000, DigiFWrk.dll
115 = AdapterMap, "Sync570", 0x00000000, DigiFWrk.dll
116 = AdapterMap, "AccelePort2000", 0x00000000, DigiHLC.dll

118 = LineMap, LineHouston, 0x00000000, DigiHLC.dll
119 = LineMap, LineLondon, 0x00000000, DigiHLC.dll
120 = LineMap, LineChaska, 0x00000000, DigiHLC.dll
121 = LineMap, LineClydesdale, 0x00000000, DigiClyd.dll
122 = LineMap, LinePrime, 0x00000000, DigiHLC.dll
123 = LineMap, LineSync570, 0x00000000, DigiClyd.dll
124 = LineMap, LineAccelePort2000, 0x00000000, DigiHLC.dll

126 = ProtocolMap, "None", 0x00000000, DigiFWrk.dll
127 = ProtocolMap, "PRI", 0x00000000, DigiDBP.dll
128 = ProtocolMap, "T1", 0x00000000, DigiDBP.dll
129 = ProtocolMap, "E1 PRI", 0x00000000, DigiDBP.dll
130 = ProtocolMap, "E1R2", 0x00000000, DigiDBP.dll
131 = ProtocolMap, "BRI", 0x00000000, DigiDBP.dll
132 = ProtocolMap, "POTS", 0x00000000, DigiDBP.dll
133 = ProtocolMap, "SNA", 0x00000000, DigiSna.dll
134 = ProtocolMap, "FR", 0x00000000, DigiFrX.dll
135 = ProtocolMap, "X25", 0x00000000, DigiFrX.dll
136 = ProtocolMap, "PPP", 0x00000000, DigiPPP.dll
137 = ProtocolMap, "SERIAL", 0x00000000, DigiHLC.dll

139 = ServiceMap, "NoneService", 0x00000000, DigiFWrk.dll
140 = ServiceMap, "ASYN", 0x00000000, DigiAsyn.dll
141 = ServiceMap, "ISDN", 0x00000000, DigiIsdn.dll
142 = ServiceMap, "SNAService", 0x00000000, DigiSna.dll
143 = ServiceMap, "FRService", 0x00000000, DigiFrX.dll
144 = ServiceMap, "X25Service", 0x00000000, DigiFrX.dll
145 = ServiceMap, "PPPService", 0x00000000, DigiPPP.dll

147 = PortMap, "Serial", 0x00000000, DigiAsyn.dll
148 = PortMap, "BChannel", 0x00000000, DigiIsdn.dll
149 = PortMap, "FRPVC", 0x00000000, DigiFrX.dll
150 = PortMap, "X25PVC", 0x00000000, DigiFrX.dll
151 = PortMap, "StdCom", 0x00000000, DigiAsyn.dll

153 = RouterMap, "WanX", 0x00000000, DigiFrX.dll

159 = "DigiHoustonT1Single", "AskMultiLines", 0x00010001, 1
160 = "DigiHoustonT1Single", "MaxPorts", 0x00010001, 46
161 = "DigiHoustonT1Single", "ProtocolsAllowed", 0x00010000, { "PRI" , "T1" }
162 = "DigiHoustonT1Single"\"PRI", "MaxPorts", 0x00010001, 23
163 = "DigiHoustonT1Single"\"PRI", "ServicesAllowed", 0x00010000, { "ASYN" , "ISDN" }
164 = "DigiHoustonT1Single"\"PRI"\"ASYN", "MaxPorts", 0x00010001, 23
165 = "DigiHoustonT1Single"\"PRI"\"ISDN", "MaxPorts", 0x00010001, 23
166 = "DigiHoustonT1Single"\"T1", "MaxPorts", 0x00010001, 24
167 = "DigiHoustonT1Single"\"T1", "ServicesAllowed", 0x00010000, { "ASYN" }
168 = "DigiHoustonT1Single"\"T1"\"ASYN", "MaxPorts", 0x00010001, 24

171 = "DigiHoustonT1Dual", "AskMultiLines", 0x00010001, 1
172 = "DigiHoustonT1Dual", "MaxPorts", 0x00010001, 92
173 = "DigiHoustonT1Dual", "ProtocolsAllowed", 0x00010000, { "PRI" , "T1" }
174 = "DigiHoustonT1Dual"\"PRI", "MaxPorts", 0x00010001, 23
175 = "DigiHoustonT1Dual"\"PRI", "ServicesAllowed", 0x00010000, { "ASYN" , "ISDN" }
176 = "DigiHoustonT1Dual"\"PRI"\"ASYN", "MaxPorts", 0x00010001, 23
177 = "DigiHoustonT1Dual"\"PRI"\"ISDN", "MaxPorts", 0x00010001, 23

190 = "DigiHoustonT1Dual"\"T1", "MaxPorts", 0x00010001, 24
191 = "DigiHoustonT1Dual"\"T1", "ServicesAllowed", 0x00010000, { "ASYN" }
192 = "DigiHoustonT1Dual"\"T1"\"ASYN", "MaxPorts", 0x00010001, 24

195 = "DigiHoustonE1Single", "AskMultiLines", 0x00010001, 1
196 = "DigiHoustonE1Single", "MaxPorts", 0x00010001, 60
197 = "DigiHoustonE1Single", "ProtocolsAllowed", 0x00010000, { "E1 PRI" , "E1R2" }
198 = "DigiHoustonE1Single"\"E1 PRI", "MaxPorts", 0x00010001, 30
199 = "DigiHoustonE1Single"\"E1 PRI", "ServicesAllowed", 0x00010000, { "ASYN" , "ISDN" }
200 = "DigiHoustonE1Single"\"E1 PRI"\"ASYN", "MaxPorts", 0x00010001, 30
201 = "DigiHoustonE1Single"\"E1 PRI"\"ISDN", "MaxPorts", 0x00010001, 30

203 = "DigiHoustonE1Single"\"E1R2", "MaxPorts", 0x00010001, 30
204 = "DigiHoustonE1Single"\"E1R2", "ServicesAllowed", 0x00010000, { "ASYN" }
205 = "DigiHoustonE1Single"\"E1R2"\"ASYN", "MaxPorts", 0x00010001, 30

208 = "DigiHoustonE1Dual", "AskMultiLines", 0x00010001, 1
209 = "DigiHoustonE1Dual", "MaxPorts", 0x00010001, 120
210 = "DigiHoustonE1Dual", "ProtocolsAllowed", 0x00010000, { "E1 PRI" , "E1R2" }
211 = "DigiHoustonE1Dual"\"E1 PRI", "MaxPorts", 0x00010001, 30
212 = "DigiHoustonE1Dual"\"E1 PRI", "ServicesAllowed", 0x00010000, { "ASYN" , "ISDN" }
213 = "DigiHoustonE1Dual"\"E1 PRI"\"ASYN", "MaxPorts", 0x00010001, 30
214 = "DigiHoustonE1Dual"\"E1 PRI"\"ISDN", "MaxPorts", 0x00010001, 30

216 = "DigiHoustonE1Dual"\"E1R2", "MaxPorts", 0x00010001, 30
217 = "DigiHoustonE1Dual"\"E1R2", "ServicesAllowed", 0x00010000, { "ASYN" }
218 = "DigiHoustonE1Dual"\"E1R2"\"ASYN", "MaxPorts", 0x00010001, 30

221 = "DigiLondonST", "AskMultiLines", 0x00010001, 0
222 = "DigiLondonST", "MaxPorts", 0x00010001, 8
223 = "DigiLondonST", "ProtocolsAllowed", 0x00010000, { "BRI" }
224 = "DigiLondonST"\"BRI", "MaxPorts", 0x00010001, 8
225 = "DigiLondonST"\"BRI", "ServicesAllowed", 0x00010000, { "ASYN" , "ISDN" }
226 = "DigiLondonST"\"BRI"\"ASYN", "MaxPorts", 0x00010001, 2
227 = "DigiLondonST"\"BRI"\"ISDN", "MaxPorts", 0x00010001, 2

230 = "DigiLondonU", "AskMultiLines", 0x00010001, 0
231 = "DigiLondonU", "MaxPorts", 0x00010001, 8
232 = "DigiLondonU", "ProtocolsAllowed", 0x00010000, { "BRI" }
233 = "DigiLondonU"\"BRI", "MaxPorts", 0x00010001, 8
234 = "DigiLondonU"\"BRI", "ServicesAllowed", 0x00010000, { "ASYN" , "ISDN" }
235 = "DigiLondonU"\"BRI"\"ASYN", "MaxPorts", 0x00010001, 2
236 = "DigiLondonU"\"BRI"\"ISDN", "MaxPorts", 0x00010001, 2

239 = "DigiChaska4", "HasWizard", 0x00010001, 0
240 = "DigiChaska4", "MaxLogicalChannelsPerLine", 0x00010001, 1
241 = "DigiChaska4", "AskMultiLines", 0x00010001, 0
242 = "DigiChaska4", "MaxPorts", 0x00010001, 4
243 = "DigiChaska4", "ProtocolsAllowed", 0x00010000, { "POTS" }
244 = "DigiChaska4"\"POTS", "MaxPorts", 0x00010001, 4
245 = "DigiChaska4"\"POTS", "ServicesAllowed", 0x00010000, { "ASYN" }
246 = "DigiChaska4"\"POTS"\"ASYN", "MaxPorts", 0x00010001, 1

249 = "DigiChaska8", "HasWizard", 0x00010001, 0
250 = "DigiChaska8", "MaxLogicalChannelsPerLine", 0x00010001, 1
251 = "DigiChaska8", "AskMultiLines", 0x00010001, 0
252 = "DigiChaska8", "MaxPorts", 0x00010001, 8
253 = "DigiChaska8", "ProtocolsAllowed", 0x00010000, { "POTS" }
254 = "DigiChaska8"\"POTS", "MaxPorts", 0x00010001, 8
255 = "DigiChaska8"\"POTS", "ServicesAllowed", 0x00010000, { "ASYN" }
256 = "DigiChaska8"\"POTS"\"ASYN", "MaxPorts", 0x00010001, 1

259 = "DigiClydeNonCsu4", "MaxPorts", 0x00010001, 255
260 = "DigiClydeNonCsu4", "ProtocolsAllowed", 0x00010000, { "SNA" , "FR" , "X25" , "PPP" , "None" }
261 = "DigiClydeNonCsu4", "AskMultiLines", 0x00010001, 0
262 = "DigiClydeNonCsu4"\"SNA", "MaxPorts", 0x00010001, 1
263 = "DigiClydeNonCsu4"\"SNA", "ServicesAllowed", 0x00010000, { "SNAService" }
264 = "DigiClydeNonCsu4"\"SNA"\"SNAService", "SnaWanDevice", 0x00000000, "WAN%d"
265 = "DigiClydeNonCsu4"\"SNA"\"SNAService", "MaxPorts", 0x00010001, 1
266 = "DigiClydeNonCsu4"\"FR", "MaxPorts", 0x00010001, 64
267 = "DigiClydeNonCsu4"\"FR", "ServicesAllowed", 0x00010000, { "FRService" }
268 = "DigiClydeNonCsu4"\"FR"\"FRService", "MaxPorts", 0x00010001, 64
269 = "DigiClydeNonCsu4"\"X25", "MaxPorts", 0x00010001, 255
270 = "DigiClydeNonCsu4"\"X25", "ServicesAllowed", 0x00010000, { "X25Service" }
271 = "DigiClydeNonCsu4"\"X25"\"X25Service", "MaxPorts", 0x00010001, 255
272 = "DigiClydeNonCsu4"\"PPP", "MaxPorts", 0x00010001, 1
273 = "DigiClydeNonCsu4"\"PPP", "ServicesAllowed", 0x00010000, { "PPPService" }
274 = "DigiClydeNonCsu4"\"PPP"\"PPPService", "MaxPorts", 0x00010001, 1
275 = "DigiClydeNonCsu4"\"PPP"\"PPPService", "PPPWanDevice", 0x00000000, "WAN%d"

278 = "DigiClydeNonCsu2", "MaxPorts", 0x00010001, 255
279 = "DigiClydeNonCsu2", "ProtocolsAllowed", 0x00010000, { "SNA" , "FR" , "X25" , "PPP" , "None" }
280 = "DigiClydeNonCsu2", "AskMultiLines", 0x00010001, 0
281 = "DigiClydeNonCsu2"\"SNA", "MaxPorts", 0x00010001, 1
282 = "DigiClydeNonCsu2"\"SNA", "ServicesAllowed", 0x00010000, { "SNAService" }
283 = "DigiClydeNonCsu2"\"SNA"\"SNAService", "SnaWanDevice", 0x00000000, "WAN%d"
284 = "DigiClydeNonCsu2"\"SNA"\"SNAService", "MaxPorts", 0x00010001, 1
285 = "DigiClydeNonCsu2"\"FR", "MaxPorts", 0x00010001, 64
286 = "DigiClydeNonCsu2"\"FR", "ServicesAllowed", 0x00010000, { "FRService" }
287 = "DigiClydeNonCsu2"\"FR"\"FRService", "MaxPorts", 0x00010001, 64
288 = "DigiClydeNonCsu2"\"X25", "MaxPorts", 0x00010001, 255
289 = "DigiClydeNonCsu2"\"X25", "ServicesAllowed", 0x00010000, { "X25Service" }
290 = "DigiClydeNonCsu2"\"X25"\"X25Service", "MaxPorts", 0x00010001, 255
291 = "DigiClydeNonCsu2"\"PPP", "MaxPorts", 0x00010001, 1
292 = "DigiClydeNonCsu2"\"PPP", "ServicesAllowed", 0x00010000, { "PPPService" }
293 = "DigiClydeNonCsu2"\"PPP"\"PPPService", "MaxPorts", 0x00010001, 1
294 = "DigiClydeNonCsu2"\"PPP"\"PPPService", "PPPWanDevice", 0x00000000, "WAN%d"

297 = "DigiClydeNonCsu6034", "MaxPorts", 0x00010001, 255
298 = "DigiClydeNonCsu6034", "ProtocolsAllowed", 0x00010000, { "SNA" , "FR" , "X25" , "PPP" , "None" }
299 = "DigiClydeNonCsu6034", "AskMultiLines", 0x00010001, 0
300 = "DigiClydeNonCsu6034"\"SNA", "MaxPorts", 0x00010001, 1
301 = "DigiClydeNonCsu6034"\"SNA", "ServicesAllowed", 0x00010000, { "SNAService" }
302 = "DigiClydeNonCsu6034"\"SNA"\"SNAService", "SnaWanDevice", 0x00000000, "WAN%d"
303 = "DigiClydeNonCsu6034"\"SNA"\"SNAService", "MaxPorts", 0x00010001, 1
304 = "DigiClydeNonCsu6034"\"FR", "MaxPorts", 0x00010001, 64
305 = "DigiClydeNonCsu6034"\"FR", "ServicesAllowed", 0x00010000, { "FRService" }
306 = "DigiClydeNonCsu6034"\"FR"\"FRService", "MaxPorts", 0x00010001, 64
307 = "DigiClydeNonCsu6034"\"X25", "MaxPorts", 0x00010001, 255
308 = "DigiClydeNonCsu6034"\"X25", "ServicesAllowed", 0x00010000, { "X25Service" }
309 = "DigiClydeNonCsu6034"\"X25"\"X25Service", "MaxPorts", 0x00010001, 255
310 = "DigiClydeNonCsu6034"\"PPP", "MaxPorts", 0x00010001, 1
311 = "DigiClydeNonCsu6034"\"PPP", "ServicesAllowed", 0x00010000, { "PPPService" }
312 = "DigiClydeNonCsu6034"\"PPP"\"PPPService", "MaxPorts", 0x00010001, 1
313 = "DigiClydeNonCsu6034"\"PPP"\"PPPService", "PPPWanDevice", 0x00000000, "WAN%d"

316 = "DigiClydeNonCsu6032", "MaxPorts", 0x00010001, 255
317 = "DigiClydeNonCsu6032", "ProtocolsAllowed", 0x00010000, { "SNA" , "FR" , "X25" , "PPP" , "None" }
318 = "DigiClydeNonCsu6032", "AskMultiLines", 0x00010001, 0
319 = "DigiClydeNonCsu6032"\"SNA", "MaxPorts", 0x00010001, 1
320 = "DigiClydeNonCsu6032"\"SNA", "ServicesAllowed", 0x00010000, { "SNAService" }
321 = "DigiClydeNonCsu6032"\"SNA"\"SNAService", "SnaWanDevice", 0x00000000, "WAN%d"
322 = "DigiClydeNonCsu6032"\"SNA"\"SNAService", "MaxPorts", 0x00010001, 1
323 = "DigiClydeNonCsu6032"\"FR", "MaxPorts", 0x00010001, 64
324 = "DigiClydeNonCsu6032"\"FR", "ServicesAllowed", 0x00010000, { "FRService" }
325 = "DigiClydeNonCsu6032"\"FR"\"FRService", "MaxPorts", 0x00010001, 64
326 = "DigiClydeNonCsu6032"\"X25", "MaxPorts", 0x00010001, 255
327 = "DigiClydeNonCsu6032"\"X25", "ServicesAllowed", 0x00010000, { "X25Service" }
328 = "DigiClydeNonCsu6032"\"X25"\"X25Service", "MaxPorts", 0x00010001, 255
329 = "DigiClydeNonCsu6032"\"PPP", "MaxPorts", 0x00010001, 1
330 = "DigiClydeNonCsu6032"\"PPP", "ServicesAllowed", 0x00010000, { "PPPService" }
331 = "DigiClydeNonCsu6032"\"PPP"\"PPPService", "MaxPorts", 0x00010001, 1
332 = "DigiClydeNonCsu6032"\"PPP"\"PPPService", "PPPWanDevice", 0x00000000, "WAN%d"

353 = "DigiSync570Port2Pci", "MaxPorts", 0x00010001, 255
354 = "DigiSync570Port2Pci", "AskMultiLines", 0x00010001, 0
355 = "DigiSync570Port2Pci", "SnidPrefixRequired", 0x00010001, 1
356 = "DigiSync570Port2Pci", "Device", 0x00000000, "DigiSOH"
357 = "DigiSync570Port2Pci", "ProtocolsAllowed", 0x00010000, { "SNA" , "FR" , "X25" , "PPP" , "None" }
358 = "DigiSync570Port2Pci"\"SNA", "MaxPorts", 0x00010001, 1
359 = "DigiSync570Port2Pci"\"SNA", "ServicesAllowed", 0x00010000, { "SNAService" }
360 = "DigiSync570Port2Pci"\"SNA"\"SNAService", "SnaWanDevice", 0x00000000, "XWAN"
361 = "DigiSync570Port2Pci"\"SNA"\"SNAService", "MaxPorts", 0x00010001, 1
362 = "DigiSync570Port2Pci"\"FR", "MaxPorts", 0x00010001, 64
363 = "DigiSync570Port2Pci"\"FR", "ServicesAllowed", 0x00010000, { "FRService" }
364 = "DigiSync570Port2Pci"\"FR"\"FRService", "MaxPorts", 0x00010001, 64
365 = "DigiSync570Port2Pci"\"X25", "MaxPorts", 0x00010001, 255
366 = "DigiSync570Port2Pci"\"X25", "ServicesAllowed", 0x00010000, { "X25Service" }
367 = "DigiSync570Port2Pci"\"X25"\"X25Service", "MaxPorts", 0x00010001, 255
368 = "DigiSync570Port2Pci"\"PPP", "MaxPorts", 0x00010001, 1
369 = "DigiSync570Port2Pci"\"PPP", "ServicesAllowed", 0x00010000, { "PPPService" }
370 = "DigiSync570Port2Pci"\"PPP"\"PPPService", "MaxPorts", 0x00010001, 1
371 = "DigiSync570Port2Pci"\"PPP"\"PPPService", "PPPWanDevice", 0x00000000, "XWAN"

374 = "DigiSync570Port4Pci", "MaxPorts", 0x00010001, 255
375 = "DigiSync570Port4Pci", "AskMultiLines", 0x00010001, 0
376 = "DigiSync570Port4Pci", "SnidPrefixRequired", 0x00010001, 1
377 = "DigiSync570Port4Pci", "Device", 0x00000000, "DigiSOH"
378 = "DigiSync570Port4Pci", "ProtocolsAllowed", 0x00010000, { "SNA" , "FR" , "X25" , "PPP" , "None" }
379 = "DigiSync570Port4Pci"\"SNA", "MaxPorts", 0x00010001, 1
380 = "DigiSync570Port4Pci"\"SNA", "ServicesAllowed", 0x00010000, { "SNAService" }
381 = "DigiSync570Port4Pci"\"SNA"\"SNAService", "SnaWanDevice", 0x00000000, "XWAN"
382 = "DigiSync570Port4Pci"\"SNA"\"SNAService", "MaxPorts", 0x00010001, 1
383 = "DigiSync570Port4Pci"\"FR", "MaxPorts", 0x00010001, 64
384 = "DigiSync570Port4Pci"\"FR", "ServicesAllowed", 0x00010000, { "FRService" }
385 = "DigiSync570Port4Pci"\"FR"\"FRService", "MaxPorts", 0x00010001, 64
386 = "DigiSync570Port4Pci"\"X25", "MaxPorts", 0x00010001, 255
387 = "DigiSync570Port4Pci"\"X25", "ServicesAllowed", 0x00010000, { "X25Service" }
388 = "DigiSync570Port4Pci"\"X25"\"X25Service", "MaxPorts", 0x00010001, 255
389 = "DigiSync570Port4Pci"\"PPP", "MaxPorts", 0x00010001, 1
390 = "DigiSync570Port4Pci"\"PPP", "ServicesAllowed", 0x00010000, { "PPPService" }
391 = "DigiSync570Port4Pci"\"PPP"\"PPPService", "MaxPorts", 0x00010001, 1
392 = "DigiSync570Port4Pci"\"PPP"\"PPPService", "PPPWanDevice", 0x00000000, "XWAN"

395 = "DigiSync570Port2Isa", "MaxPorts", 0x00010001, 255
396 = "DigiSync570Port2Isa", "AskMultiLines", 0x00010001, 0
397 = "DigiSync570Port2Isa", "SnidPrefixRequired", 0x00010001, 1
398 = "DigiSync570Port2Isa", "Device", 0x00000000, "DigiSOH"
399 = "DigiSync570Port2Isa", "ProtocolsAllowed", 0x00010000, { "SNA" , "FR" , "X25" , "PPP" , "None" }
400 = "DigiSync570Port2Isa", "IoAddressChoices", 0x00010000, { 100 , 110 , 120 , 130 , 140 , 150 , 160 , 170 , 180 , 190 , 1A0 , 1B0 , 1C0 , 1D0 , 1E0 , 1F0 , 200 , 210 , 220 , 230 , 240 , 250 , 260 , 270 , 280 , 290 , 2A0 , 2B0 , 2C0 , 2D0 , 2E0 , 2F0 , 300 , 310 , 320 , 330 , 340 , 350 , 360 , 370 , 380 , 390 , 3A0 , 3B0 , 3C0 , 3D0 , 3E0 , 3F0 }
401 = "DigiSync570Port2Isa", "MemAddressChoices", 0x00010000, { C0000 , C4000 , C8000 , CC000 , D0000 , D4000 , D8000 , DC000 , FFC000 }
402 = "DigiSync570Port2Isa", "InterruptNumberChoices", 0x00010000, { 3 , 5 , 7 , 10 , 11 , 12 , 15 }
403 = "DigiSync570Port2Isa"\"SNA", "MaxPorts", 0x00010001, 1
404 = "DigiSync570Port2Isa"\"SNA", "ServicesAllowed", 0x00010000, { "SNAService" }
405 = "DigiSync570Port2Isa"\"SNA"\"SNAService", "SnaWanDevice", 0x00000000, "XWAN"
406 = "DigiSync570Port2Isa"\"SNA"\"SNAService", "MaxPorts", 0x00010001, 1
407 = "DigiSync570Port2Isa"\"FR", "MaxPorts", 0x00010001, 64
408 = "DigiSync570Port2Isa"\"FR", "ServicesAllowed", 0x00010000, { "FRService" }
409 = "DigiSync570Port2Isa"\"FR"\"FRService", "MaxPorts", 0x00010001, 64
410 = "DigiSync570Port2Isa"\"X25", "MaxPorts", 0x00010001, 255
411 = "DigiSync570Port2Isa"\"X25", "ServicesAllowed", 0x00010000, { "X25Service" }
412 = "DigiSync570Port2Isa"\"X25"\"X25Service", "MaxPorts", 0x00010001, 255
413 = "DigiSync570Port2Isa"\"PPP", "MaxPorts", 0x00010001, 1
414 = "DigiSync570Port2Isa"\"PPP", "ServicesAllowed", 0x00010000, { "PPPService" }
415 = "DigiSync570Port2Isa"\"PPP"\"PPPService", "MaxPorts", 0x00010001, 1
416 = "DigiSync570Port2Isa"\"PPP"\"PPPService", "PPPWanDevice", 0x00000000, "XWAN"

419 = "DigiSync570Port4Isa", "MaxPorts", 0x00010001, 255
420 = "DigiSync570Port4Isa", "AskMultiLines", 0x00010001, 0
421 = "DigiSync570Port4Isa", "SnidPrefixRequired", 0x00010001, 1
422 = "DigiSync570Port4Isa", "Device", 0x00000000, "DigiSOH"
423 = "DigiSync570Port4Isa", "ProtocolsAllowed", 0x00010000, { "SNA" , "FR" , "X25" , "PPP" , "None" }
424 = "DigiSync570Port4Isa", "IoAddressChoices", 0x00010000, { 100 , 110 , 120 , 130 , 140 , 150 , 160 , 170 , 180 , 190 , 1A0 , 1B0 , 1C0 , 1D0 , 1E0 , 1F0 , 200 , 210 , 220 , 230 , 240 , 250 , 260 , 270 , 280 , 290 , 2A0 , 2B0 , 2C0 , 2D0 , 2E0 , 2F0 , 300 , 310 , 320 , 330 , 340 , 350 , 360 , 370 , 380 , 390 , 3A0 , 3B0 , 3C0 , 3D0 , 3E0 , 3F0 }
425 = "DigiSync570Port4Isa", "MemAddressChoices", 0x00010000, { C0000 , C4000 , C8000 , CC000 , D0000 , D4000 , D8000 , DC000 , FFC000 }
426 = "DigiSync570Port4Isa", "InterruptNumberChoices", 0x00010000, { 3 , 5 , 7 , 10 , 11 , 12 , 15 }
427 = "DigiSync570Port4Isa"\"SNA", "MaxPorts", 0x00010001, 1
428 = "DigiSync570Port4Isa"\"SNA", "ServicesAllowed", 0x00010000, { "SNAService" }
429 = "DigiSync570Port4Isa"\"SNA"\"SNAService", "SnaWanDevice", 0x00000000, "XWAN"
430 = "DigiSync570Port4Isa"\"SNA"\"SNAService", "MaxPorts", 0x00010001, 1
431 = "DigiSync570Port4Isa"\"FR", "MaxPorts", 0x00010001, 64
432 = "DigiSync570Port4Isa"\"FR", "ServicesAllowed", 0x00010000, { "FRService" }
433 = "DigiSync570Port4Isa"\"FR"\"FRService", "MaxPorts", 0x00010001, 64
434 = "DigiSync570Port4Isa"\"X25", "MaxPorts", 0x00010001, 255
435 = "DigiSync570Port4Isa"\"X25", "ServicesAllowed", 0x00010000, { "X25Service" }
436 = "DigiSync570Port4Isa"\"X25"\"X25Service", "MaxPorts", 0x00010001, 255
437 = "DigiSync570Port4Isa"\"PPP", "MaxPorts", 0x00010001, 1
438 = "DigiSync570Port4Isa"\"PPP", "ServicesAllowed", 0x00010000, { "PPPService" }
439 = "DigiSync570Port4Isa"\"PPP"\"PPPService", "MaxPorts", 0x00010001, 1
440 = "DigiSync570Port4Isa"\"PPP"\"PPPService", "PPPWanDevice", 0x00000000, "XWAN"

445 = "DigiAccelePort2r2000", "HasWizard", 0x00010001, 0
446 = "DigiAccelePort2r2000", "MaxLogicalChannelsPerLine", 0x00010001, 1
447 = "DigiAccelePort2r2000", "AskMultiLines", 0x00010001, 0
448 = "DigiAccelePort2r2000", "MaxPorts", 0x00010001, 2
449 = "DigiAccelePort2r2000", "MaxLogicalChannelsPerLine", 0x00010001, 1
450 = "DigiAccelePort2r2000", "ProtocolsAllowed", 0x00010000, { "SERIAL" }
451 = "DigiAccelePort2r2000"\"SERIAL", "MaxPorts", 0x00010001, 2
452 = "DigiAccelePort2r2000"\"SERIAL", "ServicesAllowed", 0x00010000, { "ASYN" }
453 = "DigiAccelePort2r2000"\"SERIAL"\"ASYN", "MaxPorts", 0x00010001, 1

456 = "DigiAccelePort4r2000", "HasWizard", 0x00010001, 0
457 = "DigiAccelePort4r2000", "MaxLogicalChannelsPerLine", 0x00010001, 1
458 = "DigiAccelePort4r2000", "AskMultiLines", 0x00010001, 0
459 = "DigiAccelePort4r2000", "MaxPorts", 0x00010001, 4
460 = "DigiAccelePort4r2000", "MaxLogicalChannelsPerLine", 0x00010001, 1
461 = "DigiAccelePort4r2000", "ProtocolsAllowed", 0x00010000, { "SERIAL" }
462 = "DigiAccelePort4r2000"\"SERIAL", "MaxPorts", 0x00010001, 4
463 = "DigiAccelePort4r2000"\"SERIAL", "ServicesAllowed", 0x00010000, { "ASYN" }
464 = "DigiAccelePort4r2000"\"SERIAL"\"ASYN", "MaxPorts", 0x00010001, 1

467 = "DigiAccelePort8r2000", "HasWizard", 0x00010001, 0
468 = "DigiAccelePort8r2000", "MaxLogicalChannelsPerLine", 0x00010001, 1
469 = "DigiAccelePort8r2000", "AskMultiLines", 0x00010001, 0
470 = "DigiAccelePort8r2000", "MaxPorts", 0x00010001, 8
471 = "DigiAccelePort8r2000", "MaxLogicalChannelsPerLine", 0x00010001, 1
472 = "DigiAccelePort8r2000", "ProtocolsAllowed", 0x00010000, { "SERIAL" }
473 = "DigiAccelePort8r2000"\"SERIAL", "MaxPorts", 0x00010001, 8
474 = "DigiAccelePort8r2000"\"SERIAL", "ServicesAllowed", 0x00010000, { "ASYN" }
475 = "DigiAccelePort8r2000"\"SERIAL"\"ASYN", "MaxPorts", 0x00010001, 1

478 = "DigiAccelePort16r2000", "HasWizard", 0x00010001, 0
479 = "DigiAccelePort16r2000", "MaxLogicalChannelsPerLine", 0x00010001, 1
480 = "DigiAccelePort16r2000", "AskMultiLines", 0x00010001, 0
481 = "DigiAccelePort16r2000", "MaxPorts", 0x00010001, 16
482 = "DigiAccelePort16r2000", "MaxLogicalChannelsPerLine", 0x00010001, 1
483 = "DigiAccelePort16r2000", "ProtocolsAllowed", 0x00010000, { "SERIAL" }
484 = "DigiAccelePort16r2000"\"SERIAL", "MaxPorts", 0x00010001, 16
485 = "DigiAccelePort16r2000"\"SERIAL", "ServicesAllowed", 0x00010000, { "ASYN" }
486 = "DigiAccelePort16r2000"\"SERIAL"\"ASYN", "MaxPorts", 0x00010001, 1

[WriteConfigData]

StartWait

DeleteRegTree $(!REG_H_LOCAL) "SOFTWARE\Digi\WAN Links\CurrentVersion\Config"

set CfgDataList = ^(DigiCfg.AddReg, 0)

ForListDo $(CfgDataList)

set Num = $($)
set Path = "SOFTWARE\Digi\WAN Links\CurrentVersion\Config"\#(DigiCfg.AddReg, $(Num), 1)
set Name = #(DigiCfg.AddReg, $(Num), 2)
set Type = #(DigiCfg.AddReg, $(Num), 3)
set Data = #(DigiCfg.AddReg, $(Num), 4)

ifstr(i) $(Type) == 0x00000000
shell "" SetRegValueByName $(!REG_VT_SZ) $(Path) $(Name) $(Data)
else-ifstr(i) $(Type) == 0x00010000
shell "" SetRegValueByName $(!REG_VT_MULTI_SZ) $(Path) $(Name) $(Data)
else-ifstr(i) $(Type) == 0x00020000
shell "" SetRegValueByName $(!REG_VT_EXPAND_SZ) $(Path) $(Name) $(Data)
else-ifstr(i) $(Type) == 0x00010001
shell "" SetRegValueByName $(!REG_VT_DWORD) $(Path) $(Name) $(Data)
endif

EndForListDo

set Success = 1

Exit = +

EndWait

Return $(Success)

[DetectionFilesList]

"Detection Files"   = Files-Detect,        $(!STF_WINDOWSSYSPATH)
"Detection Drivers" = Files-Detect-Driver, $(!STF_WINDOWSSYSPATH)"\drivers"

[CopyDetectionFiles]

set SrcDir = $($0)

set Success = 0

set DescList = ^(DetectionFilesList, 0)
ForListDo $(DescList)

set Desc = $($)
set Section = #(DetectionFilesList, $(Desc), 1)
set DstDir = #(DetectionFilesList, $(Desc), 2)

set FileList = ^($(Section), 2)
ForListDo $(FileList)

ifstr(i) $(!NTVER) == "3.51"
LibraryProcedure Result $(!LIBHANDLE) CopySingleFile $(SrcDir)"\"$($) $(DstDir)"\"$($)
else
LibraryProcedure Result $(!NCPA_HANDLE) CopySingleFile $(!STF_HWND) $(SrcDir)"\"$($) $(DstDir)"\"$($)
endif

shell "" AddSingleFileToRemoveList $(DstDir)"\"$($)

EndForListDo

EndForListDo

set Success = 1

Exit = +

Return $(Success)

[Install-AddFiles]
ifstr(i) $(AddCopy) == "YES"
Ifcontains $(Section)$(SrcDir)$(DstDir) not-in $(!DIGI_FileSectionsToCopyCoalesceList)
set !DIGI_FileSectionsToCopyCoalesceList = >($(!DIGI_FileSectionsToCopyCoalesceList), $(Section)$(SrcDir)$(DstDir))
AddSectionFilesToCopyList $(Section) $(SrcDir) $(DstDir)
else

endif
endif
Exit

[Install-CopyFiles]
ifstr(i) $(DoCopy) == "YES"
set STF_VITAL = ""
set STF_VERSION = 4","0","219","0
set STF_OVERWRITE = "OLDER"
set !STF_NCPA_FLUSH_COPYLIST = 1
CopyFilesInCopyList
set !DIGI_FileSectionsToCopyCoalesceList = {};
endif
Exit

[CoreFilesList]

"SNMP Files"            = Files-SNMP,                 $(!STF_WINDOWSSYSPATH)
"Redistributable Files" = Files-Redistributable,      $(!STF_WINDOWSSYSPATH)
"Config Files All"      = Files-Config,               $(!STF_WINDOWSSYSPATH)

[CoreFilesList-Houston]

"Config Files"          = Files-Config-Houston,       $(!STF_WINDOWSSYSPATH)
"Diag Files"            = Files-Diags-Houston,        $(!STF_WINDOWSSYSPATH)
"Modem Files"           = Files-Modem,                $(!STF_WINDOWSPATH)"\INF"
"Firmware Files"        = Files-Firmware-Houston,     $(!STF_WINDOWSSYSPATH)"\drivers"
"Driver Files"          = Files-Driver-Houston,       $(!STF_WINDOWSSYSPATH)"\drivers"

[CoreFilesList-London]

"Config Files"          = Files-Config-London,        $(!STF_WINDOWSSYSPATH)
"Diag Files"            = Files-Diags-London,         $(!STF_WINDOWSSYSPATH)
"Modem Files"           = Files-Modem,                $(!STF_WINDOWSPATH)"\INF"
"Firmware Files"        = Files-Firmware-London,      $(!STF_WINDOWSSYSPATH)"\drivers"
"Driver Files"          = Files-Driver-London,        $(!STF_WINDOWSSYSPATH)"\drivers"

[CoreFilesList-Chaska]

"Config Files"          = Files-Config-Chaska,        $(!STF_WINDOWSSYSPATH)
"Diag Files"            = Files-Diags-Chaska,         $(!STF_WINDOWSSYSPATH)
"Modem Files"           = Files-Modem,                $(!STF_WINDOWSPATH)"\INF"
"Firmware Files"        = Files-Firmware-Chaska,      $(!STF_WINDOWSSYSPATH)"\drivers"
"Driver Files"          = Files-Driver-Chaska,        $(!STF_WINDOWSSYSPATH)"\drivers"

[CoreFilesList-Clydesdale]

"Config Files"          = Files-Config-Clydesdale,     $(!STF_WINDOWSSYSPATH)
"Diag Files"            = Files-Diags-Clydesdale,      $(!STF_WINDOWSSYSPATH)
"Firmware Files"        = Files-Firmware-Clydesdale,   $(!STF_WINDOWSSYSPATH)"\drivers"
"Driver Files"          = Files-Driver-Clydesdale,     $(!STF_WINDOWSSYSPATH)"\drivers"
"SNA Driver Files"      = Files-SNA-Driver-Clydesdale, $(!STF_WINDOWSSYSPATH)
"SNA Config Files"      = Files-SNA-Config-Clydesdale, $(!STF_WINDOWSSYSPATH)

[CoreFilesList-Sync570]

"Config Files"          = Files-Config-Sync570,		 $(!STF_WINDOWSSYSPATH)
"Diag Files"            = Files-Diags-Sync570, 		 $(!STF_WINDOWSSYSPATH)
"Driver Files"          = Files-Driver-Sync570,		 $(!STF_WINDOWSSYSPATH)"\drivers"
"SNA Driver Files"      = Files-SNA-Driver-Sync570,	 $(!STF_WINDOWSSYSPATH)
"SNA Config Files"      = Files-SNA-Config-Sync570,	 $(!STF_WINDOWSSYSPATH)
"PerfMon Files"		   = Files-PERFMON-Streams,		 $(!STF_WINDOWSSYSPATH)

[CoreFilesList-AccelePort2000]

"Config Files"          = Files-Config-AccelePort2000,		$(!STF_WINDOWSSYSPATH)
"Firmware Files"        = Files-Firmware-AccelePort2000,	$(!STF_WINDOWSSYSPATH)"\drivers"
"Driver Files"          = Files-Driver-AccelePort2000,		$(!STF_WINDOWSSYSPATH)"\drivers"

[CopyCoreFiles]

set Option = $($0)
set SrcDir = $($1)
set AddCopy = $($2)
set DoCopy = $($3)

set Success = 0

set FilesListList = { +
CoreFilesList, +
CoreFilesList-$(Option), +
}

ForListDo $(FilesListList)

set FilesList = $($)
set DescList = ^($(FilesList), 0)

ForListDo $(DescList)

set Desc = $($)
set Section = #($(FilesList), $(Desc), 1)
set DstDir = #($(FilesList), $(Desc), 2)

Install Install-AddFiles

ifstr(i) $(Section) != "Files-Redistributable"

shell "" AddSectionFilesToRemoveList $(Section) $(DstDir)
endif

EndForListDo

EndForListDo

set DescList = ^(MiscDeleteFileList, 0)
ForListDo $(DescList)

set Desc = $($)
set Section = #(MiscDeleteFileList, $(Desc), 1)
set DstDir = #(MiscDeleteFileList, $(Desc), 2)

shell "" AddSectionFilesToRemoveList $(Section) $(DstDir)

EndForListDo

read-syms $(Option)-Strings-$(!STF_LANGUAGE)
read-syms InstallProgress-Strings-$(!STF_LANGUAGE)
Install Install-CopyFiles
ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"

ifstr(i) "UNABLE_COPY_FILE" != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString "UNABLE_COPY_FILE" 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Exit 
endif
endif

set Success = 1

Exit = +

Return $(Success)

[Install-DiagShortcuts]
CreateCommonProgManGroup $(IconGroupName), ""
ShowCommonProgManGroup $(IconGroupName), 1
RemoveCommonProgManItem $(IconGroupName), $(IconDiagName)
CreateCommonProgManItem $(IconGroupName), $(IconDiagName), """"$(!STF_WINDOWSSYSPATH)"\DigiView.exe""", ""  0
CreateCommonProgManItem $(IconGroupName), $(IconDiagHelp), """"$(!STF_WINDOWSSYSPATH)"\DigiView.hlp""", ""  0

ShowCommonProgManGroup $(IconGroupName), 6
Exit

[Remove-DiagShortcuts]
CreateCommonProgManGroup $(IconGroupName), ""
ShowCommonProgManGroup $(IconGroupName), 1
RemoveCommonProgManItem $(IconGroupName), $(IconDiagName)
RemoveCommonProgManItem $(IconGroupName), $(IconDiagHelp)

ShowCommonProgManGroup $(IconGroupName), 6
RemoveCommonProgManGroup $(IconGroupName)
Exit

[InstallDiags]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Option = $($0)
set SrcDir = $($1)
set AddCopy = $($2)
set DoCopy = $($3)

set Success = 0
set OptionsThatNeedDiags = { +
"Houston", +
"London", +
"Chaska", +
"Clydesdale", +
"Sync570", +

}

Ifcontains $(Option) in $(OptionsThatNeedDiags)

read-syms IconInfo$(!STF_LANGUAGE)

Install Install-DiagShortcuts

endif

set Success = 1

Exit = +

Return $(Success)

[RemoveDiags]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Option = $($0)
set SrcDir = $($1)
set AddCopy = $($2)
set DoCopy = $($3)

set Success = 0

read-syms IconInfo$(!STF_LANGUAGE)

Install Remove-DiagShortcuts

set Success = 1

Exit = +

Return $(Success)

[OldDriverConstants]
OldManufacturer = "DigiBoard"
OldProductSoftwareName = "DigiSxb"
OldProductKeyNameList = { $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(OldProductSoftwareName)"\CurrentVersion", +
$(!NTN_SoftwareBase)"\"$(OldManufacturer)"\"$(OldProductSoftwareName)"\CurrentVersion" }

[GetPackageKey]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms DriverPackageConstants

set KeyPackage = ""

OpenRegKey $(!REG_H_LOCAL) "" $(PackageKeyName) 33554432 KeyPackage
ifstr $(KeyPackage) != ""
goto Exit
endif

Exit = +

Return $(KeyPackage)

[IsPackageInstalled]

shell "" GetExistingSoftwareVersion
set Installed = $($R0)

Return $(Installed)

[IsOptionInstalled]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Option = $($0)

read-syms DriverPackageConstants

set Installed = 0

shell "utility.inf" IsRefCountEqualZero $(PackageOptionInstalledKeyName)

shell "" Boolean-Not $($R1)
set Installed = $($R0)

Return $(Installed)

[NumericVersion]

set StrVersion = $($0)

Split-String $(StrVersion) "." ComponentList

set Major = *($(ComponentList), 1)
set Minor = *($(ComponentList), 3)
set Build = *($(ComponentList), 5)

set-mul HiByteHiWord = $(Major), 16777216
set-mul LoByteHiWord = $(Minor), 65536
set-add HiWord = $(HiByteHiWord), $(LoByteHiWord)

set IntVersion = 0
set-add IntVersion = $(HiWord), $(Build)

Return $(IntVersion)

[GetExistingSoftwareVersion]
read-syms Identification

set Success = 0
set Version = $(InstallVersion)

shell "" GetPackageKey
set KeyPackage = $($R0)
ifstr $(KeyPackage) == ""
goto Error
endif

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyPackage) "SoftwareVersion"
ifint $($R0) == 1
set Version = $($R1)
goto Exit
endif

goto Error

Exit = +

set Success = 1

Error = +
shell "" CloseOpenRegKey $(KeyPackage)

Return $(Success) $(Version)

[GetSourceDir]

set SrcDir = $($0)

set Status = "STATUS_FAILED"
set UserDir = $(SrcDir)

shell "utility.inf" DoAskSource $(!STF_CWDDIR) $(SrcDir) "NO"
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Exit 
endif

set Status = $($R0)
ifstr(i) $(Status) != "STATUS_SUCCESSFUL"

ifstr(i) "ASK_SOURCE_FAIL" != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString "ASK_SOURCE_FAIL" 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Exit 
endif
endif

set UserDir = $($R1)
set !STF_SRCDIR_OVERRIDE = $(UserDir)

Exit = +

Return $(Status) $(UserDir)

[AdapterDataMap]
AdapterDataMap = { +

{ "Houston",  "PCI", 4431, 29,  82,   1,       "DigiHoustonT1Single" }, +
{ "Houston",  "PCI", 4431, 29,  83,     2,       "DigiHoustonT1Dual"   }, +
{ "Houston",  "PCI", 4431, 29,  80,   1,       "DigiHoustonE1Single" }, +
{ "Houston",  "PCI", 4431, 29,  81,     2,       "DigiHoustonE1Dual"   }, +

{ "Houston",  "PCI", 4431, 53, 86,  1,       "DigiHoustonT1Single" }, +
{ "Houston",  "PCI", 4431, 53, 87,    2,       "DigiHoustonT1Dual"   }, +
{ "Houston",  "PCI", 4431, 53, 84,  1,       "DigiHoustonE1Single" }, +
{ "Houston",  "PCI", 4431, 53, 85,    2,       "DigiHoustonE1Dual"   }, +

{ "London",   "PCI", 4431, 36,   49,           4,       "DigiLondonST" }, +
{ "London",   "PCI", 4431, 36,   48,            4,       "DigiLondonU"  }, +

{ "Chaska",   "PCI", 4431, 35,   97,           4,       "DigiChaska4" }, +
{ "Chaska",   "PCI", 4431, 35,   99,           4,       "DigiChaska4" }, +
{ "Chaska",   "PCI", 4431, 35,   101,           4,       "DigiChaska4" }, +
{ "Chaska",   "PCI", 4431, 35,   103,           4,       "DigiChaska4" }, +
{ "Chaska",   "PCI", 4431, 35,   105,           4,       "DigiChaska4" }, +
{ "Chaska",   "PCI", 4431, 35,   107,           4,       "DigiChaska4" }, +

{ "Chaska",   "PCI", 4431, 35,   96,           8,       "DigiChaska8" }, +
{ "Chaska",   "PCI", 4431, 35,   98,           8,       "DigiChaska8" }, +
{ "Chaska",   "PCI", 4431, 35,   100,           8,       "DigiChaska8" }, +
{ "Chaska",   "PCI", 4431, 35,   102,           8,       "DigiChaska8" }, +
{ "Chaska",   "PCI", 4431, 35,   104,           8,       "DigiChaska8" }, +
{ "Chaska",   "PCI", 4431, 35,   106,           8,       "DigiChaska8" }, +

{ "Clydesdale",    "PCI", 4431, 34,       34,     2, "DigiClydeNonCsu2"       }, +
{ "Clydesdale",    "PCI", 4431, 33,       33,     4, "DigiClydeNonCsu4"       }, +
{ "Clydesdale",    "PCI", 4431, 32,   32, 2, "DigiClydeNonCsu6032"   }, +
{ "Clydesdale",    "PCI", 4431, 31,   31, 4, "DigiClydeNonCsu6034"   }, +

{ "Clydesdale",    "PCI", 4431, 34,       0,     2, "DigiClydeNonCsu2"       }, +
{ "Clydesdale",    "PCI", 4431, 33,       0,     4, "DigiClydeNonCsu4"       }, +
{ "Clydesdale",    "PCI", 4431, 32,   0, 2, "DigiClydeNonCsu6032"   }, +
{ "Clydesdale",    "PCI", 4431, 31,   0, 4, "DigiClydeNonCsu6034"   }, +

{ "Clydesdale",    "PCI", 4431, 61,       61,     2, "DigiClydeNonCsu2"       }, +
{ "Clydesdale",    "PCI", 4431, 60,       60,     4, "DigiClydeNonCsu4"       }, +
{ "Clydesdale",    "PCI", 4431, 59,   59, 2, "DigiClydeNonCsu6032"   }, +
{ "Clydesdale",    "PCI", 4431, 58,   58, 4, "DigiClydeNonCsu6034"   }, +

{ "Clydesdale",    "PCI", 4431, 61,       0,     2, "DigiClydeNonCsu2"       }, +
{ "Clydesdale",    "PCI", 4431, 60,       0,     4, "DigiClydeNonCsu4"       }, +
{ "Clydesdale",    "PCI", 4431, 59,   0, 2, "DigiClydeNonCsu6032"   }, +
{ "Clydesdale",    "PCI", 4431, 58,   0, 4, "DigiClydeNonCsu6034"   }, +

{ "Clydesdale",    "PCI", 4431, 129,       129,     2, "DigiClydeNonCsu2"       }, +
{ "Clydesdale",    "PCI", 4431, 128,   128, 2, "DigiClydeNonCsu6032"   }, +

{ "Sync570",  "PCI", 4431, 20498,     0,   2, "DigiSync570Port2Pci"       }, +
{ "Sync570",  "PCI", 4431, 20499,     0,   4, "DigiSync570Port4Pci"       }, +
{ "Sync570",  "ISA", 0,                 0,										0,										  2, "DigiSync570Port2Isa" }, +
{ "Sync570",  "ISA", 0,                 0,										0,										  4, "DigiSync570Port4Isa" }, +

{ "Houston",  "PCI", 4116,  193,   194,    1,       "DigiHoustonT1Single" }, +
{ "Houston",  "PCI", 4116,  193,   244,      2,       "DigiHoustonT1Dual"   }, +
{ "Houston",  "PCI", 4116,  193,   243,    1,       "DigiHoustonE1Single" }, +
{ "Houston",  "PCI", 4116,  193,   245,      2,       "DigiHoustonE1Dual"   }, +

{ "London",   "PCI", 4116,  191,    192,            4,       "DigiLondonST" }, +
{ "London",   "PCI", 4116,  191,    241,             4,       "DigiLondonU"  }, +

{ "Chaska",   "PCI", 4116,  195,    242,            4,       "DigiChaska4" }, +
{ "Chaska",   "PCI", 4116,  195,    294,            4,       "DigiChaska4" }, +
{ "Chaska",   "PCI", 4116,  195,    296,            4,       "DigiChaska4" }, +
{ "Chaska",   "PCI", 4116,  195,    298,            4,       "DigiChaska4" }, +
{ "Chaska",   "PCI", 4116,  195,    300,            4,       "DigiChaska4" }, +
{ "Chaska",   "PCI", 4116,  195,    302,            4,       "DigiChaska4" }, +

{ "Chaska",   "PCI", 4116,  195,    196,            8,       "DigiChaska8" }, +
{ "Chaska",   "PCI", 4116,  195,    295,            8,       "DigiChaska8" }, +
{ "Chaska",   "PCI", 4116,  195,    297,            8,       "DigiChaska8" }, +
{ "Chaska",   "PCI", 4116,  195,    299,            8,       "DigiChaska8" }, +
{ "Chaska",   "PCI", 4116,  195,    301,            8,       "DigiChaska8" }, +
{ "Chaska",   "PCI", 4116,  195,    303,            8,       "DigiChaska8" }, +

{ "AccelePort2000",   "PCI", 4431, 64,   65,             8.       "DigiAccelePort8r2000" }, +
{ "AccelePort2000",   "PCI", 4431, 64,   66,           2,       "DigiAccelePort2r2000" }, +
{ "AccelePort2000",   "PCI", 4431, 64,   67,           4,       "DigiAccelePort4r2000" }, +
{ "AccelePort2000",   "PCI", 4431, 64,   68,           8,       "DigiAccelePort8r2000" }, +
{ "AccelePort2000",   "PCI", 4431, 64,   69,           16,       "DigiAccelePort16r2000" }, +

}

[ResetInfOption]

set Option = $($0)
set VendorID = $($1)
set PciID = $($2)
set SubPciID = $($3)

set Success = 0
set RealOption = $(Option)

set OptionsThatGetReset = { "DigiRAS", "PowerSync" }
Ifcontains $(Option) in $(OptionsThatGetReset)
read-syms AdapterDataMap

ForListDo $(AdapterDataMap)
set MapVendorID  = *($($), 3)

ifint $(MapVendorID) == $(VendorID)

set MapPciID  = *($($), 4)
set MapSubPciID  = *($($), 5)

ifint $(MapPciID) == $(PciID) 
set _B1 = 1 
else 
set _B1 = 0 
endif 
ifint $(MapSubPciID) == $(SubPciID) 
set _B2 = 1 
else 
set _B2 = 0 
endif 
shell "" Boolean-And $(_B1) $(_B2) 
ifint $($R0) == 1 

set RealOption  = *($($), 1)

goto Exit
endif
endif
EndForListDo

goto Error

endif

Exit = +
set Success = 1

Error = +

Return $(Success) $(RealOption)

[FirmwareImageNames]

set Option = $($0)
set BusName = $($1)

set BiosImage = "N/A"
set FepImage = "N/A"

set OptionsThatHaveBiosImages = { +
}
Ifcontains $(Option) in $(OptionsThatHaveBiosImages)
set BiosImage = #(Files-Firmware-$(Option), BIOS$(BusName), 2)
endif

set OptionsThatHaveFepImages = { +
"Houston", +
"London", +
"Chaska", +
"Clydesdale", +

"AccelePort2000", +

}
Ifcontains $(Option) in $(OptionsThatHaveFepImages)
set FepImage = #(Files-Firmware-$(Option), FEP$(BusName), 2)
endif

Exit = +

Return $(BiosImage) $(FepImage)

[CalculateNumberOfLines]

set Option = $($0)
set BusName = $($1)
set VendorID = $($2)
set PciID = $($3)
set SubPciID = $($4)
set Identity = $($5)

set NumberOfLines = 1

read-syms AdapterDataMap

ForListDo $(AdapterDataMap)
set MapOption  = *($($), 1)
set MapBusName  = *($($), 2)

ifstr(i) $(MapOption) == $(Option) 
set _B1 = 1 
else 
set _B1 = 0 
endif 
ifstr(i) $(MapBusName) == $(BusName) 
set _B2 = 1 
else 
set _B2 = 0 
endif 
shell "" Boolean-And $(_B1) $(_B2) 
ifint $($R0) == 1 

ifstr(i) $(BusName) == "PCI"
set MapVendorID  = *($($), 3)

ifint $(MapVendorID) == $(VendorID)
set MapPciID  = *($($), 4)
set MapSubPciID  = *($($), 5)

ifint $(MapPciID) == $(PciID) 
set _B1 = 1 
else 
set _B1 = 0 
endif 
ifint $(MapSubPciID) == $(SubPciID) 
set _B2 = 1 
else 
set _B2 = 0 
endif 
shell "" Boolean-And $(_B1) $(_B2) 
ifint $($R0) == 1 

set NumberOfLines  = *($($), 6)
set Identity = *($($), 7)
goto Exit
endif

endif
else
set MapIdentity  = *($($), 7)

ifstr(i) $(Identity) == $(MapIdentity)
set NumberOfLines  = *($($), 6)
goto Exit
endif
endif

endif
EndForListDo

Exit = +

Return $(NumberOfLines) $(Identity)

[GetAdapterEnum]

set Option = $($0)
set BusName = $($1)
set VendorID = $($2)
set PciID = $($3)
set SubPciID = $($4)

set AdapterEnum = ""

read-syms AdapterDataMap

ForListDo $(AdapterDataMap)

set MapOption  = *($($), 1)
set MapBusName  = *($($), 2)

ifstr(i) $(MapOption) == $(Option) 
set _B1 = 1 
else 
set _B1 = 0 
endif 
ifstr(i) $(MapBusName) == $(BusName) 
set _B2 = 1 
else 
set _B2 = 0 
endif 
shell "" Boolean-And $(_B1) $(_B2) 
ifint $($R0) == 1 

ifstr(i) $(BusName) == "PCI"
set MapVendorID  = *($($), 3)

ifint $(MapVendorID) == $(VendorID)

set MapPciID  = *($($), 4)
set MapSubPciID  = *($($), 5)

ifint $(MapPciID) == $(PciID) 
set _B1 = 1 
else 
set _B1 = 0 
endif 
ifint $(MapSubPciID) == $(SubPciID) 
set _B2 = 1 
else 
set _B2 = 0 
endif 
shell "" Boolean-And $(_B1) $(_B2) 
ifint $($R0) == 1 

set AdapterEnum  = *($($), 7)
goto Exit
endif
endif
else
set AdapterEnum  = *($($), 7)
goto Exit
endif
endif
EndForListDo

Exit = +

Return $(AdapterEnum)

[InstallMode]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms Identification
read-syms DriverPackageConstants
read-syms InstallMessages-$(!STF_LANGUAGE)

set Option = $($0)
set SrcDir = $($1)
set AddCopy = $($2)
set DoCopy = $($3)
set DoConfig = $($4)

StartWait

ForListDo $(ServicesToDeinstallList)
set Service = $($)

read-syms DriverConstants-$(Service)

shell "" GetRegValueByName $(!REG_VT_SZ) $(!NTN_ServiceBase)"\"$(ProductSoftwareName) "DeleteFlag"
ifint $($R0) == 1
shell "" MessageBox $(DeleteCheckTitle) $(DeleteCheck) 1 3 1
set Status = "STATUS_USERCANCEL"
goto Exit
endif

EndForListDo

set Status = "STATUS_FAILED"
set DeleteInfOnExit = 0

set KeyPackage = ""
set KeyInstalledOptions = ""
set KeyOptionInstalled = ""

set IncrementedPackageRefCount = 0
set IncrementedInstalledOptionRefCount = 0

set InstalledDriverList = {}
set InstalledAdapterList = {}

shell "" ClearRemoveList

shell "" GetExistingSoftwareVersion
set OnDiskVersion = $($R1)

shell "" NumericVersion $(OnDiskVersion)
set IntOnDiskVersion = $($R0)
shell "" NumericVersion $(InstallVersion)
set IntInstallVersion = $($R0)

ifint $(IntInstallVersion) > $(IntOnDiskVersion)
shell "" MessageBox $(UpdateNowTitle) $(UpdateNow) 3 4 1
ifstr(i) $($R0) == "YES"
shell "" UpdateMode $(Option) $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig)
set Status = $($R0)
ifstr(i) $(Status) != "STATUS_SUCCESSFUL"
goto Error
endif
else
shell "" StatusMessage $(UpdateLater)
set Status = "STATUS_USERCANCEL"
goto Exit
endif
endif

ifint $(IntInstallVersion) < $(IntOnDiskVersion)
shell "" StatusMessage $(NewerInstalled)
goto Exit
endif

shell "" GetRegValueByName $(!REG_VT_SZ) $(PackageKeyName)"\NetRules" "InfName"
ifint $($R0) == 1
set InfName = $($R1)
set InfPath = $(!STF_WINDOWSSYSPATH)"\"$(InfName)
ifstr(i) $(InfPath) != $(STF_CONTEXTINFNAME)

shell $(InfPath) InstallOption $(!STF_LANGUAGE) $(Option) $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Exit 
endif
set Status = $($R0)
set DeleteInfOnExit = 1
goto Exit
endif
endif

shell "" IsPackageInstalled
ifint $($R0) == 0

shell "utility.inf" InstallSoftwareProduct $(Manufacturer) $(PackageSoftwareName) $(STF_CONTEXTINFNAME)

ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Error 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Error 
endif

set KeyPackage = $($R1)
set KeyNetRules = $($R2)

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyPackage) "SoftwareVersion" $(InstallVersion)
ifint $($R0) == 0 
goto Error 
endif

shell "" SetRegValueByKey $(!REG_VT_DWORD) $(KeyPackage) "Hidden" 1
ifint $($R0) == 0 
goto Error 
endif

shell "" CloseOpenRegKey $(KeyPackage)
shell "" CloseOpenRegKey $(KeyNetRules)

ifstr $(SrcDir) == ""
shell "" GetSourceDir $(SrcDir)
ifstr $($R0) != "STATUS_SUCCESSFUL"
set Status = $($R0)
ifint 0 == 0 
goto Error 
endif
endif
set SrcDir = $($R1)
endif

shell "" AddGroupToServiceGroupOrder $(DStreamsDependOnGroup) $(DStreamsBeforeGroup)
ifint $($R0) == 0 
goto Error 
endif

endif

GetBusInfo = +

shell "" CopyDetectionFiles $(SrcDir)
ifint $($R0) == 0 
goto Error 
endif

shell "" AddService "PCI"
ifint $($R0) == 0 
goto Error 
endif
set InstalledDriverList = >($(InstalledDriverList), "PCI")

shell "" GetBusData $(Option) $(ProductHardwareDescription)
ifint $($R0) == 0 
goto Error 
endif

set BusName = $($R1)
set BusType = $($R2)
set BusNumber = $($R3)

shell "" Find$(BusName) $(BusType) $(BusNumber) $(Option)
set AdapterData = $($R0)

ifstr $(AdapterData) == {}

shell "" SetupMessage "FATAL" $(NoNetworkCard)
goto Error

endif

set BusNumber = 0
set SlotNumber = 0
set IOBaseAddress = 0
set MemoryAddress = 0
set InterruptNumber = 0
set VendorID = 0
set PciID = 0
set SubVendorID = 0
set SubPciID = 0
set RevisionID = 0
set CardID = 0

set BusNumber = *($(AdapterData), 1)
set SlotNumber = *($(AdapterData), 2)
ifstr $(BusName) == "ISA"
set IOBaseAddress   = *($(AdapterData), 3)
set MemoryAddress   = *($(AdapterData), 4)
set InterruptNumber = *($(AdapterData), 5)
set Identity		  = *($(AdapterData), 6)
else-ifstr $(BusName) == "PCI"
set VendorID   = *($(AdapterData), 3)
set PciID   = *($(AdapterData), 4)
set SubVendorID = *($(AdapterData), 5)
set SubPciID = *($(AdapterData), 6)
set RevisionID = *($(AdapterData), 7)

endif

shell "" ResetInfOption $(Option) $(VendorID) $(PciID) $(SubPciID)
ifint $($R0) == 0 
goto Error 
endif
set Option = $($R1)

read-syms DriverPackageConstants
read-syms DriverConstants-$(Option)

shell "" IsOptionInstalled $(Option)
ifint $($R0) == 1

goto InstallAdapter
endif

InstallSoftware = +

ifstr(i) $(DoCopy) == "YES"
shell "" GetSourceDir $(SrcDir)
ifstr $($R0) != "STATUS_SUCCESSFUL"
set Status = $($R0)
ifint 0 == 0 
goto Error 
endif
endif
set SrcDir = $($R1)

shell "" CopyCoreFiles $(Option) $(SrcDir) $(AddCopy) $(DoCopy)
ifint $($R0) == 0 
goto Error 
endif
endif

shell "" MakeRegKey $(!REG_H_LOCAL) { $(PackageInstalledOptionsKeyName), 0, "GenericClass" } 
set KeyInstalledOptions = $($R0)
ifstr $(KeyInstalledOptions) == ""
ifint 0 == 0 
goto Error 
endif
endif

shell "" MakeRegKey $(!REG_H_LOCAL) { $(PackageOptionInstalledKeyName), 0, "GenericClass" } 
set KeyOptionInstalled = $($R0)
ifstr $(KeyOptionInstalled) == ""
ifint 0 == 0 
goto Error 
endif
endif

shell "" SetRefCountByKey $(KeyOptionInstalled) 0
ifint $($R0) == 0 
goto Error 
endif

shell "" WriteConfigData

ifstr(i) $(DoCopy) == "YES"
shell "" InstallDiags $(Option) $(SrcDir) $(AddCopy) $(DoCopy)
ifint $($R0) == 0 
goto Error 
endif
endif

shell "" AddService "PAMA"
ifint $($R0) == 0 
goto Error 
endif
set InstalledDriverList = >($(InstalledDriverList), "PAMA")

InstallDriver = +

ifcontains(i) $(Option) in $(OptionsThatNeedStreams)
shell "" AddStreamsService
ifint $($R0) == 0 
goto Error 
endif
endif

shell "" AddService $(Option)
ifint $($R0) == 0 
goto Error 
endif
set InstalledDriverList = >($(InstalledDriverList), $(Option))

InstallAdapter = +

shell "utility.inf" IncrementRefCount $(PackageKeyName)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Error 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Error 
endif
set IncrementedPackageRefCount = 1

shell "utility.inf" IncrementRefCount $(PackageOptionInstalledKeyName)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Error 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Error 
endif
set IncrementedInstalledOptionRefCount = 1

set HardwareParametersValueList = {}

set HardwareParametersValueList = >($(HardwareParametersValueList),  { "BusName", 0, $(!REG_VT_SZ), $(BusName) })
set HardwareParametersValueList = >($(HardwareParametersValueList),  { "BusType", 0, $(!REG_VT_DWORD), $(BusType) })
set HardwareParametersValueList = >($(HardwareParametersValueList),  { "BusNumber", 0, $(!REG_VT_DWORD), $(BusNumber) })

ifstr $(BusName) == "ISA"
set HardwareParametersValueList = >($(HardwareParametersValueList), { "IOBaseAddress", 0, $(!REG_VT_DWORD), $(IOBaseAddress) })
set HardwareParametersValueList = >($(HardwareParametersValueList), { "MemoryMappedBaseAddress", 0, $(!REG_VT_DWORD), $(MemoryAddress) })
set HardwareParametersValueList = >($(HardwareParametersValueList), { "InterruptNumber", 0, $(!REG_VT_DWORD), $(InterruptNumber) })
else-ifstr $(BusName) == "PCI"
set HardwareParametersValueList = >($(HardwareParametersValueList),  { "SlotNumber", 0, $(!REG_VT_DWORD), $(SlotNumber) })
set HardwareParametersValueList = >($(HardwareParametersValueList), { "VendorId", 0, $(!REG_VT_DWORD), $(VendorID) })
set HardwareParametersValueList = >($(HardwareParametersValueList), { "PciId", 0, $(!REG_VT_DWORD), $(PciID) })
set HardwareParametersValueList = >($(HardwareParametersValueList), { "SubVendorId", 0, $(!REG_VT_DWORD), $(SubVendorID) })
set HardwareParametersValueList = >($(HardwareParametersValueList), { "SubDeviceId", 0, $(!REG_VT_DWORD), $(SubPciID) })
set HardwareParametersValueList = >($(HardwareParametersValueList), { "RevisionId", 0, $(!REG_VT_DWORD), $(RevisionID) })
endif

shell "" FirmwareImageNames $(Option) $(BusName)
set BiosImage = $($R0)
set FepImage = $($R1)
set HardwareParametersValueList = >($(HardwareParametersValueList), { "FepImagePath", 0, $(!REG_VT_SZ), $(FepImage) })
set HardwareParametersValueList = >($(HardwareParametersValueList), { "BiosImagePath", 0, $(!REG_VT_SZ), $(BiosImage) })

ifstr $(FepImage) == "FepClyde.Bin"
set HardwareParametersValueList = >($(HardwareParametersValueList), { "DxbVersion2", 0, $(!REG_VT_DWORD), 1 })
else-ifstr $(FepImage) == "FepPrime.Bin"
set HardwareParametersValueList = >($(HardwareParametersValueList), { "DxbVersion2", 0, $(!REG_VT_DWORD), 1 })
endif

shell "" CalculateNumberOfLines $(Option) $(BusName) $(VendorID) $(PciID) $(SubPciID) $(Identity)
set NumberOfLines = $($R0)
set Identity = $($R1)
set HardwareParametersValueList = >($(HardwareParametersValueList), { "NumberOfLines", 0, $(!REG_VT_DWORD), $(NumberOfLines) })
set HardwareParametersValueList = >($(HardwareParametersValueList), { "Identity", 0, $(!REG_VT_SZ), $(Identity) })

set HardwareParametersValueList = >($(HardwareParametersValueList), { "Option", 0, $(!REG_VT_SZ), $(Option) })

shell "" AddAdapter $(Option) $(Option) "" "" {} {} $(HardwareParametersValueList)
ifint $($R0) == 0 
goto Error 
endif

set AdapterNumber = $($R1)
set AdapterServiceName = $(ProductHardwareName)$(AdapterNumber)
set InstalledAdapterList = >($(InstalledAdapterList), { $(Option), $(AdapterNumber) })

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyHardwareParameters = $($R0)
ifstr $(KeyHardwareParameters) == ""
ifint 0 == 0 
goto Error 
endif
endif

ifcontains(i) $(Option) in $(OptionsWithX25Svcs)
; Copy the WANX Router Data
shell "" CopyRouterData $(KeyHardwareParameters)
endif

shell "" ConfigureAdapter-$(Option) $(SrcDir) $(Option) $(KeyHardwareParameters) $(AdapterServiceName)
set Status = $($R0)

ifstr(i) $(Status) == "STATUS_USERCANCEL"
goto Error
endif

ifstr(i) $(Status) == "STATUS_FAILED"
goto Error
endif

goto Exit

Error = +

ifint $(IncrementedInstalledOptionRefCount) == 1

shell "utility.inf" DecrementRefCount $(PackageOptionInstalledKeyName)
shell "utility.inf" IsRefCountEqualZero $(PackageOptionInstalledKeyName)
ifint $($R1) == 1

DeleteRegTree $(!REG_H_LOCAL) $(PackageOptionInstalledKeyName)
endif
endif

ifint $(IncrementedPackageRefCount) == 1

shell "utility.inf" DecrementRefCount $(PackageKeyName)
endif
shell "utility.inf" IsRefCountEqualZero $(PackageKeyName)
ifint $($R1) == 1

shell "utility.inf" RemoveSoftwareComponent $(Manufacturer) $(PackageSoftwareName)

shell "" RemoveGroupFromServiceGroupOrder $(DStreamsDependOnGroup)

shell "" RemoveDiags $(Option) $(SrcDir) $(AddCopy) $(DoCopy)
set DeleteInfOnExit = 1
endif

ForListDo $(InstalledAdapterList)
set Type = *($($), 1)
set AdapterNumber = *($($), 2)

read-syms DriverConstants-$(Type)

ifcontains(i) $(Option) in $(OptionsThatNeedStreams)

shell "" RemoveAdapterFromMiniportAdapters $(ProductHardwareName)$(AdapterNumber)

endif

shell "utility.inf" RemoveHardwareComponent $(Manufacturer) $(ProductHardwareName) $(KEY_NETWORKCARDS)"\"$(AdapterNumber)

EndForListDo

ForListDo $(InstalledDriverList)
set Type = $($)
read-syms DriverConstants-$(Type)

shell "utility.inf" IsRefCountEqualZero $(ProductKeyName)
ifint $($R1) == 1

shell "utility.inf" RemoveSoftwareComponent $(Manufacturer) $(ProductSoftwareName)

endif
EndForListDo

shell "" RemoveFilesInRemoveList

set ManufacturerKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)
OpenRegKey $(!REG_H_LOCAL) "" $(ManufacturerKeyName) 33554432 KeyManufacturer
ifstr $(KeyManufacturer) != ""
EnumRegKey $(KeyManufacturer) DigiProductList
CloseRegKey $(KeyManufacturer)
QueryListSize NumDigiProducts $(DigiProductList)
ifint $(NumDigiProducts) == 0
DeleteRegTree $(!REG_H_LOCAL) $(ManufacturerKeyName)
endif
endif

Exit = +

ifint $(DeleteInfOnExit) == 1

LibraryProcedure Result $(!LIBHANDLE) DelFile $(STF_CONTEXTINFNAME)
endif

shell "" CloseOpenRegKey $(KeyPackage)
shell "" CloseOpenRegKey $(KeyInstalledOptions)
shell "" CloseOpenRegKey $(KeyOptionInstalled)
shell "" CloseOpenRegKey $(KeyHardwareParameters)

EndWait

Return $(Status)

[LegacyFilesList]

"SxbDiag Files"   = Files-SxbDiag,        $(!STF_WINDOWSSYSPATH)

[UpdateAllFiles]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms Identification
read-syms DriverPackageConstants

set Option = $($0)
set SrcDir = $($1)
set AddCopy = $($2)
set DoCopy = $($3)

set Success = 0

set FileListSectionsToUpdate = { +
DetectionFilesList, +
CoreFilesList, +

CoreFilesList-Houston, +

CoreFilesList-London, +

CoreFilesList-Chaska, +

CoreFilesList-Clydesdale, +

CoreFilesList-Sync570, +

CoreFilesList-AccelePort2000, +

}

ForListDo $(FileListSectionsToUpdate)

set FileListSection = $($)

set DescList = ^($(FileListSection), 0)
ForListDo $(DescList)

set Desc = $($)
set Section = #($(FileListSection), $(Desc), 1)
set DstDir = #($(FileListSection), $(Desc), 2)

Install Install-AddFiles

EndForListDo
EndForListDo

read-syms UpdateProgress-Strings-$(!STF_LANGUAGE)
Install Install-CopyFiles
ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"

ifstr(i) "UNABLE_COPY_FILE" != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString "UNABLE_COPY_FILE" 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Exit 
endif
endif

shell "" ClearRemoveList
set DescList = ^(LegacyFilesList, 0)
ForListDo $(DescList)

set Desc = $($)
set Section = #(LegacyFilesList, $(Desc), 1)
set DstDir = #(LegacyFilesList, $(Desc), 2)

shell "" AddSectionFilesToRemoveList $(Section) $(DstDir)

EndForListDo
shell "" RemoveFilesInRemoveList

shell "" GetRegValueByName $(!REG_VT_SZ) $(PackageKeyName)"\NetRules" "InfName"
ifint $($R0) == 0 
goto Exit 
endif
set InfName = $($R1)
set InfPath = $(!STF_WINDOWSSYSPATH)"\"$(InfName)

ifstr(i) $(!NTVER) == "3.51"
LibraryProcedure Result $(!LIBHANDLE) CopySingleFile $(STF_CONTEXTINFNAME) $(InfPath)
else
LibraryProcedure Result $(!NCPA_HANDLE) CopySingleFile $(!STF_HWND) $(STF_CONTEXTINFNAME) $(InfPath)
endif

set Success = 1

Exit = +

Return $(Success)

[UpdateMode]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms Identification
read-syms DriverPackageConstants
read-syms InstallMessages-$(!STF_LANGUAGE)
read-syms UpdateMessages-$(!NTVER)-$(!STF_LANGUAGE)

set Option = $($0)
set SrcDir = $($1)
set AddCopy = $($2)
set DoCopy = $($3)
set DoConfig = $($4)

set Status = "STATUS_USERCANCEL"

shell "" GetExistingSoftwareVersion
set OnDiskVersion = $($R1)

shell "" NumericVersion $(OnDiskVersion)
set IntOnDiskVersion = $($R0)
shell "" NumericVersion $(InstallVersion)
set IntInstallVersion = $($R0)

ifint $(IntInstallVersion) == $(IntOnDiskVersion)
shell "" StatusMessage $(AlreadyUpdated)
goto Exit
endif

ifint $(IntInstallVersion) < $(IntOnDiskVersion)
shell "" StatusMessage $(NewerInstalled)
goto Exit
endif

shell "" MessageBox $(UpdateWarningTitle) $(UpdateWarning) 3 2 1
ifstr(i) $($R0) != "YES"
shell "" StatusMessage $(UpdateLater)
set Status = "STATUS_USERCANCEL"
goto Exit
endif

set Status = "STATUS_FAILED"
shell "" UpdateAllFiles $(Option) $(SrcDir) $(AddCopy) $(DoCopy)
ifint $($R0) == 0 
goto Exit 
endif

shell "" WriteConfigData

shell "" AddService "PAMA"
ifint $($R0) == 0 
goto Error 
endif
set InstalledDriverList = >($(InstalledDriverList), "PAMA")

shell "subroutn.inf" PopBillboard
read-syms UpdateConstants
LoadLibrary "x" $(UPDATEDLL_PATH) DIGIHANDLE

LibraryProcedure Result $(DIGIHANDLE) Update $(!STF_HWND) $(Option)

FreeLibrary $(DIGIHANDLE)

ifstr(i) $(Result) != "OK"
shell "" SetupMessage "FATAL" $(UpdateFailed)
else
shell "" InstallDiags $(Option) $(SrcDir) $(AddCopy) $(DoCopy)
ifint $($R0) == 0 
goto Error 
endif
shell "" StatusMessage $(UpdateSucceded)
endif

set Status = "STATUS_SUCCESSFUL"

Exit = +

Return $(Status)

[MiscDeleteFileList]

"Generated Files"   = Files-Delete,        $(!STF_WINDOWSSYSPATH)

[RemoveFiles]
set FileList = $($0)

ForListDo $(FileList)
set CurrentPath = $($)

LibraryProcedure Result $(!LIBHANDLE) CheckFileExistance $(CurrentPath)

ifstr(i) $(Result) == "YES"

LibraryProcedure Result $(!LIBHANDLE) DelFile $(CurrentPath)

ifstr(i) $(Result) != "SUCCESS"

shell "" DirectoryFromPath $(CurrentPath)
set Directory = $($R0)
shell "" BaseFromPath $(CurrentPath)
set Base = $($R0)
set BackupPath = $(Directory)$(Base)".old"

LibraryProcedure Result $(!LIBHANDLE) CheckFileExistance $(BackupPath)

ifstr(i) $(Result) == "YES"

LibraryProcedure Result $(!LIBHANDLE) DelFile $(BackupPath)

endif

LibraryProcedure Result $(!LIBHANDLE) RenFile $(CurrentPath) $(BackupPath)

AddFileToDeleteList $(BackupPath)
else
LibraryProcedure Result $(!LIBHANDLE) CheckFileExistance $(CurrentPath)

ifstr(i) $(Result) == "YES"
AddFileToDeleteList $(CurrentPath)

endif
endif
endif
EndForListDo

Return

[AddSingleFileToRemoveList]

set Path = $($0)

set !DIGI_RemoveFilesList = >($(!DIGI_RemoveFilesList), $(Path))

Return

[AddSectionFilesToRemoveList]

set Section = $($0)
set Dir = $($1)

Ifcontains $(Section)$(Dir) not-in $(!DIGI_FileSectionsToRemoveCoalesceList)
set !DIGI_FileSectionsToRemoveCoalesceList = >($(!DIGI_FileSectionsToRemoveCoalesceList), $(Section)$(Dir))
set FileList = ^($(Section), 2)
ForListDo $(FileList)
shell "" AddSingleFileToRemoveList $(Dir)"\"$($)
EndForListDo
else

endif

Return

[RemoveFilesInRemoveList]

shell "" RemoveFiles $(!DIGI_RemoveFilesList)
shell "" ClearRemoveList

Return

[ClearRemoveList]
set !DIGI_RemoveFilesList = {};
set !DIGI_FileSectionsToRemoveCoalesceList = {};
Return

[RemoveServicesFromLine]
read-syms GlobalConstants

set Line = $($0)
set AdapterServiceName = $($1)

set KeyParameters = ""
set KeyLine = ""

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyParameters = $($R0)
ifstr $(KeyParameters) == ""
goto Exit
endif

OpenRegKey $(KeyParameters) "" $(Line) 33554432 KeyLine
ifstr $(KeyLine) == ""
goto Exit
endif

set LineServices = {}
shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyLine) "LineServices"
ifint $($R0) == 1
set LineServices = $($R1)
endif

ForListDo $(LineServices)
set Service = $($)
shell "" "Remove-"$(Service) $(Line) $(KeyLine) $(AdapterServiceName)
shell "" "CleanUp-"$(Service) $(Line) $(KeyLine) $(AdapterServiceName) $(Result)
EndForListDo

Exit = +
shell "" CloseOpenRegKey $KeyParameters
shell "" CloseOpenRegKey $KeyLine

Return

[DeinstallAllServices]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms Identification
read-syms DriverPackageConstants

ForListDo $(ServicesToDeinstallList)
set Service = $($)

read-syms DriverConstants-$(Service)
shell "utility.inf" RemoveSoftwareComponent $(Manufacturer) $(ProductSoftwareName) "FALSE"

EndForListDo

Return

[DeinstallMode]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms Identification

set Option = $($0)
set SrcDir = $($1)
set AddCopy = $($2)
set DoCopy = $($3)
set DoConfig = $($4)

read-syms DriverPackageConstants
read-syms DriverConstants-$(Option)
read-syms InstallMessages-$(!STF_LANGUAGE)

set Status = "STATUS_FAILED"

set KeyAdapter = ""
set KeyNetRules = ""
set KeyProduct = ""
set KeyDigiRoot = ""

ifstr(i) $(Option) == "PAMA"

shell "" StatusMessage $(CannotRemoveThisService)
set Status = "STATUS_USERCANCEL"
goto Exit
endif

ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
shell "utility.inf" RemoveSoftwareComponent $(Manufacturer) $(ProductSoftwareName)

goto CheckProductList
endif

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) 33554432 KeyAdapter
ifstr $(KeyAdapter) == ""
goto Exit
endif

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyAdapter) "ServiceName"

set ServiceName = $($R1)

OpenRegKey $(KeyAdapter) "" "NetRules" 33554432 KeyNetRules
ifstr $(KeyNetRules) == ""
goto Exit
endif

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyNetRules) "InfOption"

ifstr(i) $($R1) == $(Option) 
set OptionMatch = 1 
else 
set OptionMatch = 0 
endif

set Option = $($R1)

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) 33554432 KeyAdapter
ifstr $(KeyAdapter) == ""
goto Exit
endif

shell "" OpenServiceParamKey $(ServiceName) 
set KeyParameters = $($R0)
ifstr $(KeyParameters) == ""
goto Exit
endif

shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeyParameters) "NumberOfLines"

set NumberOfLines = $($R1)

set LineNumber = 0
goto Continue_RemoveLineServices 
Top_RemoveLineServices = +
shell "" NumberToName $(LineNumber)
set LineName = $($R0)
shell "" RemoveServicesFromLine $(LineName) $(ServiceName)
set-add LineNumber = $(LineNumber), 1
Continue_RemoveLineServices = + 
ifint $(LineNumber) < $(NumberOfLines) 
goto Top_RemoveLineServices 
endif 
Break_RemoveLineServices = +

ifcontains(i) $(Option) in $(OptionsThatNeedStreams)

shell "" RemoveAdapterFromMiniportAdapters $(ServiceName)
endif

shell "utility.inf" RemoveHardwareComponent $(Manufacturer) $(ProductHardwareName) $(!NTN_RegBase)

shell "utility.inf" IsRefCountEqualZero $(ProductKeyName)
ifint $($R1) == 1
shell "utility.inf" RemoveSoftwareComponent $(Manufacturer) $(ProductSoftwareName)

endif

shell "utility.inf" DecrementRefCount $(PackageOptionInstalledKeyName)
shell "utility.inf" IsRefCountEqualZero $(PackageOptionInstalledKeyName)
ifint $($R1) == 1
DeleteRegTree $(!REG_H_LOCAL) $(PackageOptionInstalledKeyName)
endif

shell "utility.inf" DecrementRefCount $(PackageKeyName)
shell "utility.inf" IsRefCountEqualZero $(PackageKeyName)
ifint $($R1) == 1
shell "utility.inf" RemoveSoftwareComponent $(Manufacturer) $(PackageSoftwareName) "FALSE"

shell "" DeinstallAllServices

shell "" RemoveGroupFromServiceGroupOrder $(DStreamsDependOnGroup)

shell "" RemoveSNMP
shell "" RemoveDiags $(Option) $(SrcDir) $(AddCopy) $(DoCopy)

set FileListSectionsToDelete = { +

DetectionFilesList, +
MiscDeleteFileList, +
CoreFilesList, +

CoreFilesList-Houston, +

CoreFilesList-London, +

CoreFilesList-Chaska, +

CoreFilesList-Clydesdale, +

CoreFilesList-Sync570, +

CoreFilesList-AccelePort2000, +

}

ForListDo $(FileListSectionsToDelete)

set FileListSection = $($)

set DescList = ^($(FileListSection), 0)
ForListDo $(DescList)

set Desc = $($)
set Section = #($(FileListSection), $(Desc), 1)
set DstDir = #($(FileListSection), $(Desc), 2)

ifstr(i) $(Section) != "Files-Redistributable"

shell "" AddSectionFilesToRemoveList $(Section) $(DstDir)
endif

EndForListDo
EndForListDo

shell "" AddSingleFileToRemoveList $(STF_CONTEXTINFNAME)
shell "" RemoveFilesInRemoveList

endif

CheckProductList = +

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_DIGIROOT) 33554432 KeyDigiRoot
ifstr $(KeyDigiRoot) != ""
EnumRegKey $(KeyDigiRoot) DigiProductList
QueryListSize NumDigiProducts $(DigiProductList)
ifint $(NumDigiProducts) == 0
DeleteRegTree $(!REG_H_LOCAL) $(KEY_DIGIROOT)
endif
endif

set Status = "STATUS_SUCCESSFUL"

Exit = +

shell "" CloseOpenRegKey $(KeyAdapter)
shell "" CloseOpenRegKey $(KeyNetRules)
shell "" CloseOpenRegKey $(KeyProduct)
shell "" CloseOpenRegKey $(KeyDigiRoot)

Return $(Status)

[NumberToName]

set Num = $($0)

set Name = ""

set Name = $(Name)$(Num)

Exit = +

Return $(Name)

[ConfigureAdapter]

set SrcDir = $($0)
set Option = $($1)
set KeyParameters = $($2)
set AdapterServiceName = $($3)
set CfgDllPath = $($4)
set CfgDllEntry = $($5)

set Status = "STATUS_FAILED"
set NeedBindingReview = 0

set OldLineConfigList = {}

shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeyParameters) "NumberOfLines"

set NumberOfLines = $($R1)

set LineNumber = 0
goto Continue_GetOldLineConfigs 
Top_GetOldLineConfigs = +

shell "" NumberToName $(LineNumber)
set LineName = $($R0)

set OldLineServices = {}

OpenRegKey $(KeyParameters) "" $(LineName) 33554432 KeyLine
ifstr $(KeyLine) == ""
shell "" MakeRegKey $(KeyParameters) { $(LineName), 0, "GenericClass" } 
set KeyLine = $($R0)
set OldLineServices = { "None" }
else
shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyLine) "LineServices"

set OldLineServices = $($R1)
ForListDo $(OldLineServices)
set Service = $($)
shell "" "SetUp-"$(Service) $(LineName) $(KeyLine) $(AdapterServiceName)
EndForListDo
endif

CloseRegKey $(KeyLine)

set OldLineConfigList = >($(OldLineConfigList), { $(LineName), $(OldLineServices) })

set-add LineNumber = $(LineNumber), 1
Continue_GetOldLineConfigs = + 
ifint $(LineNumber) < $(NumberOfLines) 
goto Top_GetOldLineConfigs 
endif 
Break_GetOldLineConfigs = +

shell "subroutn.inf" PopBillboard
LoadLibrary "x" $(CfgDllPath) DIGIHANDLE

LibraryProcedure Result $(DIGIHANDLE) $(CfgDllEntry) $(!STF_HWND) $(Option) $(AdapterServiceName)

FreeLibrary $(DIGIHANDLE)

ifstr(i) $(Result) != "OK"
read-syms InstallMessages-$(!STF_LANGUAGE)
ifstr(i) $(Result) == "Cancel"
set Status = "STATUS_USERCANCEL"
ifstr(i) $(!NTN_InstallMode) == "Install"
shell "" SetupMessage "FATAL" $(UserCanceledInstall)
endif
else
shell "" SetupMessage "FATAL" $(CfgDllFailed)
endif
goto Exit
endif

shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeyParameters) "NumberOfLines"

set NewNumberOfLines = $($R1)

ifint $(NewNumberOfLines) > $(NumberOfLines)

set NumberOfLines = $(NewNumberOfLines)
endif

set LineNumber = 0
goto Continue_GetNewLineConfigs 
Top_GetNewLineConfigs = +

shell "" NumberToName $(LineNumber)
set LineName = $($R0)

set OldLineServices = { "None" }
ForListDo $(OldLineConfigList)
set OldLineName = *($($), 1)
ifstr(i) $(LineName) == $(OldLineName)
set OldLineServices = *($($), 2)
endif
EndForListDo

OpenRegKey $(KeyParameters) "" $(LineName) 33554432 KeyLine
shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyLine) "LineServices"

set NewLineServices = $($R1)

ForListDo $(NewLineServices)
set Service = $($)
Ifcontains(i) $(Service) not-in $(OldLineServices)

shell "" "Add-"$(Service) $(LineName) $(KeyLine) $(AdapterServiceName) $(LineNumber) $(SrcDir) $(Option)

set NeedBindingReview = 1
endif
EndForListDo

ForListDo $(OldLineServices)
set Service = $($)
Ifcontains(i) $(Service) not-in $(NewLineServices)

shell "" "Remove-"$(Service) $(LineName) $(KeyLine) $(AdapterServiceName)
set NeedBindingReview = 1
endif
EndForListDo

ForListDo $(NewLineServices)
set Service = $($)

shell "" "Config-"$(Service) $(LineName) $(KeyLine) $(AdapterServiceName) $(Option)

ifint $($R1) == 1

set NeedBindingReview = 1
endif

shell "" "CleanUp-"$(Service) $(LineName) $(KeyLine) $(AdapterServiceName) $(Result)
EndForListDo

ForListDo $(OldLineServices)
set Service = $($)

shell "" "CleanUp-"$(Service) $(LineName) $(KeyLine) $(AdapterServiceName) $(Result)
EndForListDo

CloseRegKey $(KeyLine)

set-add LineNumber = $(LineNumber), 1
Continue_GetNewLineConfigs = + 
ifint $(LineNumber) < $(NumberOfLines) 
goto Top_GetNewLineConfigs 
endif 
Break_GetNewLineConfigs = +

set Status = "STATUS_SUCCESSFUL"

Exit = +

Return $(Status) $(NeedBindingReview)

[ConfigureMode]

set Option = $($0)
set SrcDir = $($1)
set AddCopy = $($2)
set DoCopy = $($3)
set DoConfig = $($4)

set Status = "STATUS_FAILED"

set KeyParameters = ""
set AdapterServiceName = ""

ifstr(i) $(Option) == "PAMA"

goto Configure
endif

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) 33554432 KeySoftware
ifstr $(KeySoftware) == ""
goto Error_CannotConfig
endif

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeySoftware) "ServiceName"

set AdapterServiceName = $($R1)
CloseRegKey $(KeySoftware)

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyParameters = $($R0)
ifstr $(KeyParameters) == ""
goto Error_CannotConfig
endif

Configure = +

shell "" ConfigureAdapter-$(Option) $(SrcDir) $(Option) $(KeyParameters) $(AdapterServiceName)
set Status = $($R0)

CloseRegKey $(KeyParameters)

goto Exit

Error_CannotConfig = +

ifstr(i) "CANNOT_CONFIGURE_SOFTWARE" != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString "CANNOT_CONFIGURE_SOFTWARE" 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Exit 
endif
set Status = "STATUS_USERCANCEL"

Exit = +

Return $(Status)

[GetBindings]
set Key = $($0)

shell "" DefaultGetRegValueByKey $(!REG_VT_MULTI_SZ) $(Key) "Bind" {}
set BindList = $($R0)
shell "" DefaultGetRegValueByKey $(!REG_VT_MULTI_SZ) $(Key) "Route" {}
set RouteList = $($R0)
shell "" DefaultGetRegValueByKey $(!REG_VT_MULTI_SZ) $(Key) "Export" {}
set ExportList = $($R0)

Exit = +

Return $(BindList) $(RouteList) $(ExportList)

[BindMode]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Option = $($0)
set SrcDir = $($1)
set AddCopy = $($2)
set DoCopy = $($3)
set DoConfig = $($4)

read-syms DriverConstants-$(Option)

shell "" InstallSNMP

ifstr(i) $(!NTVER) == "3.51"
LoadLibrary "x" $(!STF_WINDOWSSYSPATH)"\DigiInf.dll" DIGIHANDLE

LibraryProcedure Result $(DIGIHANDLE) AddModemSettingsToRAS $(!STF_HWND) $(Option)

FreeLibrary $(DIGIHANDLE)
endif

set OptionsThatNeedSpecialBindings = { }
Ifcontains $(Option) not-in $(OptionsThatNeedSpecialBindings)
goto Exit
endif

set Status = "STATUS_FAILED"

StartWait

set TCPIPUsageList = {}
set IPXUsageList = {}
set EthernetUsageList = {}

shell "" EnumAdapters { "FR", "X25L" } 0
set AdapterDataList = $($R0)

ForListDo $(AdapterDataList)
set ServiceName = *($($), 1)
shell "" OpenServiceParamKey $(ServiceName) 
set KeyService = $($R0)

shell "" GetRegValueByKey $(TYPECHECK_NONE) $(KeyService) "TCPIP"

set TCPIPUsageList = >($(TCPIPUsageList), $($R1))

shell "" GetRegValueByKey $(TYPECHECK_NONE) $(KeyService) "IPX"

set IPXUsageList = >($(IPXUsageList), $($R1))

shell "" GetRegValueByKey $(TYPECHECK_NONE) $(KeyService) "Ethernet"

set EthernetUsageList = >($(EthernetUsageList), $($R1))
EndForListDo
CloseRegKey $(KeyService)

set TypeList = { "TCPIP", "IPX", "Ethernet" }
set TCPIPServiceList = { "Tcpip", "NetBT" }
set IPXServiceList = { "NwlnkIpx" }
set EthernetServiceList = { "Nbf", "AppleTalk", "DLC" }

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) 33554432 KeyServiceRoot

EnumRegKey $(KeyServiceRoot) ServicesList
ForListDo $(ServicesList)
set Service = *($($), 1)

set KeyBind = ""
set KeyDisabledBind = ""

Ifcontains(i) $(Service) in $(HardwareList)
goto NextService
endif

OpenRegKey $(KeyServiceRoot) "" $(Service)"\Linkage" 33554432 KeyBind
ifstr $(KeyBind) == ""
goto NextService
endif

OpenRegKey $(KeyBind) "" "Disabled" 33554432 KeyDisabledBind
ifstr $(KeyDisabledBind) == ""
goto NextService
endif

shell "" GetBindings $(KeyBind)
set BindList = $($R0)
set RouteList = $($R1)
set ExportList = $($R2)

shell "" GetBindings $(KeyDisabledBind)
set DisabledBindList = $($R0)
set DisabledRouteList = $($R1)
set DisabledExportList = $($R2)

ifstr $(BindList) == {}
ifstr $(DisabledBindList) == {}
goto NextService
endif
endif

set NewBindList = {}
set NewRouteList = {}
set NewExportList = {}
set NewDisabledBindList = {}
set NewDisabledRouteList = {}
set NewDisabledExportList = {}

ForListDo $(BindList)
set Activate = 1
Split-String $($) "_\" BindComponentList

ForListDo $(AdapterDataList)
set AdapterName = *($($), 1)
set AdapterIndex = $(#)

Ifcontains(i) $(AdapterName) in $(BindComponentList)
ForListDo $(TypeList)
set Protocol = $($)
set Usage = *($($(Protocol)UsageList), $(AdapterIndex))

ifint $(Usage) == 0
Ifcontains(i) $(Service) in $($(Protocol)ServiceList)
set Activate = 0
else
ForListDo $($(Protocol)ServiceList)
Ifcontains(i) $($) in $(BindComponentList)
set Activate = 0
endif
EndForListDo
Endif
endif
EndForListDo
endif
EndForListDo

set BindValue = *($(BindList), $(#))
set RouteValue = *($(BindList), $(#))
set ExportValue = *($(BindList), $(#))

ifint $(Activate) == 1
set NewBindList = >($(NewBindList), $(BindValue))
set NewRouteList = >($(NewRouteList), $(RouteValue))
set NewExportList = >($(NewExportList), $(ExportValue))
else
set NewDisabledBindList = >($(NewDisabledBindList), $(BindValue))
set NewDisabledRouteList = >($(NewDisabledRouteList), $(RouteValue))
set NewDisabledExportList = >($(NewDisabledExportList), $(ExportValue))
endif
EndForListDo

ForListDo $(DisabledBindList)
set Activate = 0
Split-String $($) "_\" BindComponentList

ForListDo $(AdapterDataList)
set AdapterName = *($($), 1)
set AdapterIndex = $(#)

Ifcontains(i) $(AdapterName) in $(BindComponentList)
ForListDo $(TypeList)
set Protocol = $($)
set Usage = *($($(Protocol)UsageList), $(AdapterIndex))

ifint $(Usage) > 0
Ifcontains(i) $(Service) in $($(Protocol)ServiceList)
set Activate = 1
else
ForListDo $($(Protocol)ServiceList)
Ifcontains(i) $($) in $(BindComponentList)
set Activate = 1
endif
EndForListDo
Endif
endif
EndForListDo
endif
EndForListDo

set BindValue = *($(DisabledBindList), $(#))
set RouteValue = *($(DisabledRouteList), $(#))
set ExportValue = *($(DisabledExportList), $(#))

ifint $(Activate) == 1
set NewBindList = >($(NewBindList), $(BindValue))
set NewRouteList = >($(NewRouteList), $(BindValue))
set NewExportList = >($(NewExportList), $(ExportValue))
else
set NewDisabledBindList = >($(NewDisabledBindList), $(BindValue))
set NewDisabledRouteList = >($(NewDisabledRouteList), $(RouteValue))
set NewDisabledExportList = >($(NewDisabledExportList), $(ExportValue))
endif
EndForListDo

set BindValueList = { +
{ "Bind", 0, $(!REG_VT_MULTI_SZ), $(NewBindList) }, +
{ "Route", 0, $(!REG_VT_MULTI_SZ), $(NewRouteList) }, +
{ "Export", 0, $(!REG_VT_MULTI_SZ), $(NewExportList) } }
shell "" SetValuesFromList $(KeyBind) $(BindValueList)

set DisabledBindValueList = { +
{ "Bind", 0, $(!REG_VT_MULTI_SZ), $(NewDisabledBindList) }, +
{ "Route", 0, $(!REG_VT_MULTI_SZ), $(NewDisabledRouteList) }, +
{ "Export", 0, $(!REG_VT_MULTI_SZ), $(NewDisabledExportList) } }
shell "" SetValuesFromList $(KeyDisabledBind) $(DisabledBindValueList)

NextService = +

shell "" CloseOpenRegKey $(KeyDisabledBind)
shell "" CloseOpenRegKey $(KeyBind)

EndForListDo

shell "" CloseOpenRegKey $(KeyServiceRoot)

EndWait

Exit = +

set Status = "STATUS_SUCCESSFUL"

Return $(Status)

[EnumAdapters]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set ProductTypeList = $($0)
set WantAdapterKeys = $($1)

set ProductNameList = {}
ForListDo $(ProductTypeList)
read-syms DriverConstants-$($)
set ProductNameList = >($(ProductNameList), $(ProductHardwareName))
EndForListDo

set AdapterDataList = {}

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_NETWORKCARDS) 33554432 KeyNetCards
ifstr $(KeyNetCards) != ""
EnumRegKey $(KeyNetCards) KeyNameList
ForListDo $(KeyNameList)
set NetCardNum = *($($), 1)

OpenRegKey $(KeyNetCards) "" $(NetCardNum) 33554432 KeyNetCard
ifstr $(KeyNetCard) != ""
shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyNetCard) "ProductName"

set ProductName = $($R1)

Ifcontains(i) $(ProductName) in $(ProductNameList)
shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyNetCard) "ServiceName"

set ServiceName = $($R1)

ifint $(WantAdapterKeys) == 0
CloseRegKey $(KeyNetCard)
set KeyNetCard = ""
endif

set AdapterData = { $(ServiceName), $(NetCardNum), $(KeyNetCard) }

set AdapterDataList = >($(AdapterDataList), $(AdapterData))
else
CloseRegKey $(KeyNetCard)
endif
endif
EndForListDo
CloseRegKey $(KeyNetCards)
endif

Exit = +

Return $(AdapterDataList)

[FindAdapter]
read-syms GlobalConstants
read-syms GlobalRegistryConstants

set ProductHardwareName = $($0)

set Success = 0
set AdapterNumber = ""

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_NETWORKCARDS) 33554432 KeyNetCards
ifstr $(KeyNetCards) != ""
EnumRegKey $(KeyNetCards) NetworkCardList
ForListDo $(NetworkCardList)
ifint $(Success) == 0
set NetworkCardKeyName = *($($), 1)

OpenRegKey $(KeyNetCards) "" $(NetworkCardKeyName) 33554432 NetworkCardKey
ifstr $(NetworkCardKey) != ""
shell "" GetRegValueByKey $(!REG_VT_SZ) $(NetworkCardKey) "ProductName"

set ProductName = $($R1)

ifstr(i) $(ProductName) == $(ProductHardwareName)
set AdapterNumber = $(NetworkCardKeyName)
set Success = 1
endif
endif
endif
EndForListDo
endif

Exit = +

Return $(Success) $(AdapterNumber)

[AddAdapter]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Type = $($0)
set Option = $($1)
set StringsOverride = $($2)
set AdapterNumberStartingPoint = $($3)
set AdditionalNetCardValues = $($4)
set AdditionalAdapterRules = $($5)
set AdditionalParameters = $($6)

read-syms DriverConstants-$(Type)
read-syms $(Type)-Strings-$(!STF_LANGUAGE)

ifstr $(StringsOverride) != ""
read-syms $(StringsOverride)
endif

set Success = 0
set AdapterNumber = 0

set KeyNetCard = ""
set KeyAdapterRules = ""
set KeyParameters = ""

set HardwareInstalled = 0

shell "utility.inf" AssignAdapterNumber "" $(AdapterNumberStartingPoint)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Error 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Error 
endif

set AssignedAdapterNumber = $($R1)

shell "utility.inf" AddHardwareComponent +
$(ProductHardwareName) +
$(STF_CONTEXTINFNAME) +
$(ProductKeyName) +
"" +
"" +
$(AssignedAdapterNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Error 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Error 
endif

set KeyNetCard = $($R1)
set KeyAdapterRules = $($R2)
set KeyParameters = $($R3)
set AdapterNumber = $($R4)
set AdapterServiceName = $($R5)

set HardwareInstalled = 1
set NewAdapterTitle = "["$(AdapterNumber)"] "$(AdapterTitle)

shell "" SetRefCountByKey $(KeyNetCard) 1
ifint $($R0) == 0 
goto Error 
endif

shell "" GetElapsedTime
set CurrentTime = $($R0)

set NetCardValueList = { +
{ "Manufacturer", 0, $(!REG_VT_SZ), $(Manufacturer) }, +
{ "Title", 0, $(!REG_VT_SZ), $(NewAdapterTitle) }, +
{ "Description", 0, $(!REG_VT_SZ), $(AdapterDescription) }, +
{ "ProductName", 0, $(!REG_VT_SZ), $(ProductHardwareName) }, +
{ "ServiceName", 0, $(!REG_VT_SZ), $(AdapterServiceName) }, +
{ "InstallDate", 0, $(!REG_VT_DWORD), $(CurrentTime) } }

shell "" SetValuesFromList $(KeyNetCard) $(NetCardValueList)
ifint $($R0) == 0 
goto Error 
endif

shell "" SetValuesFromList $(KeyNetCard) $(AdditionalNetCardValues)
ifint $($R0) == 0 
goto Error 
endif

set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
set AdapterRulesValueList = { +
{ "type", 0, $(!REG_VT_SZ), $(NetRuleHardwareType) }, +
{ "bindform", 0, $(!REG_VT_SZ), $(TempBindForm) }, +
{ "class", 0, $(!REG_VT_MULTI_SZ), $(NetRuleHardwareClass) }, +
{ "InfOption", 0, $(!REG_VT_SZ), $(Option) } }

shell "" SetValuesFromList $(KeyAdapterRules) $(AdapterRulesValueList)
ifint $($R0) == 0 
goto Error 
endif

shell "" SetValuesFromList $(KeyAdapterRules) $(AdditionalAdapterRules)
ifint $($R0) == 0 
goto Error 
endif

set DeviceName = $(AdapterServiceName)

ifcontains(i) $(Option) in $(OptionsThatNeedStreams)
set DeviceName = $(StreamsDevice)
endif

set ParametersValueList = { +
{ "ServiceName", 0, $(!REG_VT_SZ), $(AdapterServiceName) }, +
{ "Device", 0, $(!REG_VT_SZ), $(DeviceName) }, +
{ "VAdapterNum", 0, $(!REG_VT_SZ), $(AdapterNumber) } }

shell "" SetValuesFromList $(KeyParameters) $(ParametersValueList)
ifint $($R0) == 0 
goto Error 
endif

shell "" SetValuesFromList $(KeyParameters) $(AdditionalParameters)
ifint $($R0) == 0 
goto Error 
endif

set Success = 1
goto Exit

Error = +

ifint $(HardwareInstalled) == 1
shell "utility.inf" RemoveHardwareComponent $(Manufacturer) $(ProductHardwareName) $(KEY_NETWORKCARDS)"\"$(AdapterNumber)

endif

Exit = +

set KeyCloseList = { $(KeyNetCard), $(KeyAdapterRules), $(KeyParameters) }
shell "" CloseOpenRegKeyList $(KeyCloseList)

Return $(Success) $(AdapterNumber)

[SetParams]

set AdapterParametersKey = $($0)
set DLCI = $($1)
set DLCIList = $($2)
set KeyPVCList = $($3)
set KeyNetCard = $($4)

read-syms GlobalConstants

set Success = 0
set NeedBindingReview = 0

ForListDo $(DLCIList)
ifint $(DLCI) == $($)
set ItemNumber = $(#)
endif
EndForListDo

set KeyPVC = *($(KeyPVCList), $(ItemNumber))

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyPVC) "Desc"

set Desc = $($R1)
shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyNetCard) "Title" $(Desc)

set ValueNameList = { "TCPIP", "IPX", "Ethernet" }
ForListDo $(ValueNameList)
set ValueName = $($)

shell "" GetRegValueByKey $(TYPECHECK_NONE) $(KeyPVC) $(ValueName)

ifint $($R1) != 0 
set PVCHasConnections = 1 
else 
set PVCHasConnections = 0 
endif

shell "" GetRegValueByKey $(TYPECHECK_NONE) $(AdapterParametersKey) $(ValueName)
ifint $($R1) != 0 
set AdapterHasConnections = 1 
else 
set AdapterHasConnections = 0 
endif

shell "" Boolean-Xor $(PVCHasConnections) $(AdapterHasConnections)
ifint $($R0) == 1
set NeedBindingReview = 1
endif
EndForListDo

shell "" CopyRegTree $(KeyPVC) $(AdapterParametersKey)
ifint $($R0) == 0 
goto Exit 
endif

set Success = 1

Exit = +

Return $(Success) $(NeedBindingReview)

[CreateVirtualAdapters]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Type = $($0)
set Line = $($1)
set AdapterNameNumber = $($2)
set Option = $($3)

read-syms DriverConstants-$(Type)

set Success = 0
set NeedBindingReview = 0

set KeyParams = ""
shell "" OpenServiceParamKey $(AdapterNameNumber) 
set KeyParams = $($R0)
ifstr $(KeyParams) == ""
ifstr(i) "UNABLE_ACCESS_SOFTWARE_REG" != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString "UNABLE_ACCESS_SOFTWARE_REG" 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Exit 
endif
endif

set Key = ""
set KeySubPVCList = {}

OpenRegKey $(KeyParams) "" $(LineServiceKeyName)\$(Line) 33554432 Key
ifstr $(Key) == ""
ifstr(i) "UNABLE_ACCESS_SOFTWARE_REG" != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString "UNABLE_ACCESS_SOFTWARE_REG" 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Exit 
endif
endif

set DLCIList = {}
EnumRegKey $(Key) SubKeyList
ForListDo $(SubKeyList)
set SubKeyName = *($($), 1)
OpenRegKey $(Key) "" $(SubKeyName) 33554432 KeySubPVC
shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeySubPVC) $(CircuitName)
ifint $($R0) == 0 
goto NextSubKey1 
endif

set DLCI = $($R1)
set DLCIList = >($(DLCIList), $(DLCI))
set KeySubPVCList = >($(KeySubPVCList), $(KeySubPVC))

NextSubKey1 = +
EndForListDo

set ProcessedDLCIList = {}

shell "" EnumAdapters { $(Type) } 1
set AdapterDataList = $($R0)

ForListDo $(AdapterDataList)
set ServiceName = *($($), 1)
set NetCardNum = *($($), 2)
set KeyNetworkCard = *($($), 3)

set KeyVirtualAdapterService = ""

shell "" OpenServiceParamKey $(ServiceName) 
set KeyVirtualAdapterService = $($R0)
shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyVirtualAdapterService) "Adapter"
ifint $($R0) == 0 
goto NextNetCard 
endif
set AdapterName = $($R1)
ifstr(i) $(AdapterName) != $(AdapterNameNumber)
goto NextNetCard
endif

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyVirtualAdapterService) "Line"
ifint $($R0) == 0 
goto NextNetCard 
endif
set AdapterLine = $($R1)
ifstr(i) $(AdapterLine) != $(Line)
goto NextNetCard
endif

shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeyVirtualAdapterService) $(CircuitName)
ifint $($R0) == 0 
goto NextNetCard 
endif
set DLCI = $($R1)

Ifcontains $(DLCI) in $(DLCIList)
shell "" SetParams $(KeyVirtualAdapterService) $(DLCI) $(DLCIList) $(KeySubPVCList) $(KeyNetworkCard)
ifint $($R0) == 0 
goto NextNetCard 
endif

ifint $($R1) == 1
set NeedBindingReview = 1
endif
else
shell "utility.inf" RemoveHardwareComponent $(Manufacturer) $(ProductHardwareName) $(KEY_NETWORKCARDS)"\"$(NetCardNum)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto NextNetCard 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto NextNetCard 
endif
set NeedBindingReview = 1
endif

set ProcessedDLCIList = >($(ProcessedDLCIList), $(DLCI))

NextNetCard = +

set KeyCloseList = { $(KeyNetworkCard), $(KeyVirtualAdapterService) }
shell "" CloseOpenRegKeyList $(KeyCloseList)

EndForListDo

ForListDo $(SubKeyList)
set SubKeyName = *($($), 1)

OpenRegKey $(Key) "" $(SubKeyName) 33554432 KeySubPVC
shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeySubPVC) $(CircuitName)
ifint $($R0) == 0 
goto NextSubKey2 
endif

set DLCI = $($R1)
Ifcontains $(DLCI) not-in $(ProcessedDLCIList)
set RegPath = $(AdapterNameNumber)"\Parameters\"$(LineServiceKeyName)"\"$(Line)"\"$(SubKeyName)
shell "" AddVirtualAdapter $(Type) $(Line) $(AdapterNameNumber) $(DLCI) $(Option) $(RegPath)

set VAdapterNum = $($R1)
OpenRegKey $(!REG_H_LOCAL) "" $(KEY_NETWORKCARDS)"\"$(VAdapterNum) 33554432 KeyNetcard
shell "" OpenServiceParamKey $(ProductHardwareName)$(VAdapterNum) 
set KeyParameters = $($R0)
shell "" SetParams $(KeyParameters) $(DLCI) $(DLCIList) $(KeySubPVCList) $(KeyNetcard)
CloseRegKey $(KeyParameters)
CloseRegKey $(KeyNetcard)
set NeedBindingReview = 1
endif

NextSubKey2 = +

CloseRegKey $(KeySubPVC)
EndForListDo

set Success = 1

Exit = +

set KeyCloseList = >($(KeySubPVCList), $(Key))
shell "" CloseOpenRegKeyList $(KeyCloseList)

Return $(Success) $(NeedBindingReview)

[AddVirtualAdapter]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Type = $($0)
set Line = $($1)
set ParentAdapterServiceName = $($2)
set Circuit = $($3)
set Option = $($4)
set RegPath = $($5)

set Success = 0
set AdapterNumber = 0

set	PhysicalAdapterServiceName = $(ParentAdapterServiceName)

ifcontains(i) $(Option) in $(OptionsThatNeedStreams)

read-syms DriverConstants-Streams
set ParentAdapterServiceName = $(ProductSoftwareName)

endif

set NetCardValueList = { +
{ "Adapter", 0, $(!REG_VT_SZ), $(ParentAdapterServiceName) }, +
{ "Hidden", 0, $(!REG_VT_DWORD), 1 } }

ifstr(i) $(Type) == "X25"

set ParametersValueList = { +
{ "Device", 0, $(!REG_VT_SZ), $(ParentAdapterServiceName) }, +
{ "Line", 0, $(!REG_VT_SZ), $(Line) }, +
{ "Protocol", 0, $(!REG_VT_SZ), $(Type) }, +
{ "RegPath", 0, $(!REG_VT_SZ), $(RegPath) } }

else

set ParametersValueList = { +
{ "Adapter", 0, $(!REG_VT_SZ), $(PhysicalAdapterServiceName) }, +
{ "Device", 0, $(!REG_VT_SZ), $(ParentAdapterServiceName) }, +
{ "Line", 0, $(!REG_VT_SZ), $(Line) }, +
{ "Protocol", 0, $(!REG_VT_SZ), $(Type) }, +
{ "RegPath", 0, $(!REG_VT_SZ), $(RegPath) } }

endif

ifstr $(CircuitName) != ""
set ParametersValueList = >($(ParametersValueList), { $(CircuitName), 0, $(!REG_VT_DWORD), $(Circuit) })
endif

shell "" AddAdapter $(Type) $(Option) "" "1000" $(NetCardValueList) {} $(ParametersValueList)

set Success = $($R0)
set AdapterNumber = $($R1)

Exit = +

Return $(Success) $(AdapterNumber)

[RemoveVirtual]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Type = $($0)
set VAdapterNum = $($1)
set Manufacturer = $($2)

read-syms DriverConstants-$(Type)

set AdapterKeyName = $(KEY_NETWORKCARDS)"\"$(VAdapterNum)

shell "utility.inf" DecrementRefCount $(AdapterKeyName)
shell "utility.inf" IsRefCountEqualZero $(AdapterKeyName)
ifint $($R1) == 0
goto Exit
endif

shell "utility.inf" RemoveHardwareComponent $(Manufacturer) $(ProductHardwareName) $(AdapterKeyName)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Exit 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Exit 
endif

Exit = +

Return

[RemoveVirtualAdapters]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Type = $($0)
set Line = $($1)
set AdapterNameNumber = $($2)
set Manufacturer = $($3)

read-syms DriverConstants-$(Type)

shell "" EnumAdapters { $(Type) } 0
set AdapterDataList = $($R0)

ForListDo $(AdapterDataList)
set ServiceName = *($($), 1)
set NetCardNum = *($($), 2)

shell "" OpenServiceParamKey $(ServiceName) 
set KeyService = $($R0)
ifstr $(KeyService) != ""
shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyService) "Adapter"
ifint $($R0) == 0 
goto NextNetCard 
endif

set AdapterName = $($R1)
ifstr(i) $(AdapterName) != $(AdapterNameNumber)
goto NextNetCard
endif

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyService) "Line"
ifint $($R0) == 0 
goto NextNetCard 
endif

set AdapterLine = $($R1)
ifstr(i) $(AdapterLine) != $(Line)
goto NextNetCard
endif
endif

shell "utility.inf" RemoveHardwareComponent $(Manufacturer) $(ProductHardwareName) $(KEY_NETWORKCARDS)"\"$(NetCardNum)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto NextNetCard 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto NextNetCard 
endif

NextNetCard = +

shell "" CloseOpenRegKey $(KeyService)

EndForListDo

Return

[PCIVendorInfo-DigiRAS]
VendorIDList = { 4431, +
4116, +
}

[PCIVendorInfo-PowerSync]
VendorIDList = { 4431 }

[PCIVendorInfo-Sync570]
VendorIDList = { 4431 }

[PCIVendorInfo-AccelePort2000]
VendorIDList = { 4431 }

[PCICardInfo-DigiRAS]
PciIDList = { 29, +
53, +
36, +
35, +

193, +
191, +
195, +
}

[PCICardInfo-PowerSync]
PciIDList = { 34, +
33, +
32, +
31, +
61, +
60, +
59, +
58, +
129, +
128, +
}

[PCICardInfo-Sync570]
PciIDList = { 20498, +
20499, +
}

[PCICardInfo-AccelePort2000]
PciIDList = { 64 }

[BusTypesSupported-DigiRAS]
5

[BusTypesSupported-PowerSync]
5

[BusTypesSupported-Sync570]
1
2
5

[BusTypesSupported-AccelePort2000]
5

[BusTypesSupported]
BusTypeList = ^(BusTypesSupported-$(BoardType),1)

[ISABoardOptionsIn-Sync570]
"2 Port ISA SYNC570"
"4 Port ISA SYNC570"

[ISABoardOptionsIn]
BoardTypesIn = ^(ISABoardOptionsIn-$(BoardType),1)

[ISABoardIdentityOut-Sync570]
"DigiSync570Port2Isa"
"DigiSync570Port4Isa"

[ISABoardIdentityOut]
BoardIdentityOut = ^(ISABoardIdentityOut-$(BoardType),1)

[BusInterfaceMap]
1 = ISA
2 = ISA
5 = PCI

[GetBusData]

set BoardType = $($0)
set Description = $($1)

read-syms BusTypesSupported

set Success = 0
set BusName = ""

ifstr $(!STF_NCDETINFO) == {}

QueryListSize NumberOfBusesSupported $(BusTypeList)

ifint $(NumberOfBusesSupported) > 1

shell "utility.inf" GetBusTypeDialog $(Description)

ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Exit 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Exit 
endif

set BusType = $($R1)
set BusNumber = $($R2)
else
set BusType = *($(BusTypeList), 1)
set BusNumber = -1
endif

else

set BusType = *($(!STF_NCDETINFO), 5)
set BusNumber = *($(!STF_NCDETINFO), 6)
endif

Ifcontains(i) $(BusType) not-in $(BusTypeList)

read-syms InstallMessages-$(!STF_LANGUAGE)
shell "" SetupMessage "FATAL" $(BusTypeNotSupported)
goto Exit
endif

set BusName = #(BusInterfaceMap, $(BusType), 1)

set Success = 1

Exit = +

Return $(Success) $(BusName) $(BusType) $(BusNumber)

[InitBaseVars]
KeyNull            = ""
33554432    = 33554432
KeyInfo            = {}
RegistryErrorIndex = NO_ERROR
NoTitle            = 0
CurrentControlSet  = "SYSTEM\CurrentControlSet"
ServicesBaseName   = $(CurrentControlSet)"\Services"
NetworkCardKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
!RegLastError      = NO_ERROR

[IsThisCardAlreadyInstalled]

read-syms InitBaseVars

set AlreadyExisted  = "NO"
set CardBusNum  = $($0)
set CardSlotNum = $($1)
set CardPciId = $($2)
set CardSubId = $($3)
set CardVendorId = $($4)

OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardKeyName) $(33554432) IE_KeyNetcards
Ifstr $(IE_KeyNetcards) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto IE_Return
endif

EnumRegKey $(IE_KeyNetcards) IE_KeyNameList

ForListDo  $(IE_KeyNameList)
set IE_KeyName = *($($),1)
OpenRegKey $(IE_KeyNetcards) "" $(IE_KeyName) $(33554432) IE_Card
Ifstr $(IE_Card) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto IE_Return
endif

GetRegValue $(IE_Card), "ServiceName", ServiceNameInfo
set ServiceName = *($(ServiceNameInfo), 4)
OpenRegKey $(!REG_H_LOCAL) "" +
$(ServicesBaseName)"\"$(ServiceName)"\Parameters" +
$(33554432) IE_KeyService
Ifstr $(IE_KeyService) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto IE_Return
endif

GetRegValue $(IE_KeyService), "BusNumber", BusInfo
GetRegValue $(IE_KeyService), "SlotNumber", SlotInfo
GetRegValue $(IE_KeyService), "PciId", PciInfo
GetRegValue $(IE_KeyService), "SubDeviceId", SubIdInfo
GetRegValue $(IE_KeyService), "VendorId", VendorIdInfo

set RegBusNum = *($(BusInfo), 4)
set RegSlotNum = *($(SlotInfo), 4)
set RegPciId = *($(PciInfo), 4)
set RegSubId = *($(SubIdInfo), 4)
set RegVendorId = *($(VendorIdInfo), 4)

ifint $(RegBusNum) == $(CardBusNum)
ifint $(RegSlotNum) == $(CardSlotNum)
ifint $(RegPciId) == $(CardPciId)
ifint $(RegSubId) == $(CardSubId)
ifint $(RegVendorId) == $(CardVendorId)
set AlreadyExisted = "YES"
endif
endif
endif
endif
endif

EndForListDo

IE_Return = +

return $(RegistryErrorIndex) $(AlreadyExisted)

[FirstUninstalledAdapter]

set AdapterList = $($0)
set BusNumber = $($1)

set Adapter = {}

ForListDo $(AdapterList)
set AdapterBusNum = *($($), 1)

ifint $(BusNumber) == -1 
set _B1 = 1 
else 
set _B1 = 0 
endif 
ifint $(AdapterBusNum) == $(BusNumber) 
set _B2 = 1 
else 
set _B2 = 0 
endif 
shell "" Boolean-Or $(_B1) $(_B2) 
ifint $($R0) == 1 

set AdapterSlotNum = *($($), 2)
set AdapterVendorId = *($($), 3)
set AdapterPciId = *($($), 4)
set AdapterSubId = *($($), 6)

shell "" IsThisCardAlreadyInstalled $(AdapterBusNum) $(AdapterSlotNum) $(AdapterPciId) $(AdapterSubId) $(AdapterVendorId)

ifstr(i) $($R1) != "YES"
set Adapter = $($)
goto Exit
endif

endif

EndForListDo

Exit = +

Return $(Adapter)

[FindPCI]
set InterfaceType = $($0)
set BusNumberIn = $($1)
set BoardType = $($2)

read-syms PCIVendorInfo-$(BoardType)
read-syms PCICardInfo-$(BoardType)

set AdapterData = {}
set AdapterFullList = {}

read-syms DetectionConstants
LoadLibrary "x" $(DETECTDLL_PATH) DetectHandle

ForListDo $(VendorIDList)
set VendorID = $($)

ForListDo $(PciIDList)
set PciID = $($)

shell "utility.inf" GetPCIInformation $(VendorID) $(PciID)

ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Exit 
endif
set AdapterList = $($R0)

ForListDo $(AdapterList)
set BusNumber = *($($), 1)
set SlotNumber = *($($), 2)

LibraryProcedure Result $(DetectHandle) DetectEntry $(!STF_HWND) $(BoardType) $(InterfaceType) $(BusNumber) $(SlotNumber)

set DetectionResult = *($(Result), 1)

ifstr(i) $(DetectionResult) == "SUCCESS" 
set DetectionWorked = 1 
else 
set DetectionWorked = 0 
endif
ifint $(DetectionWorked) == 0 
goto Exit 
endif
set NewElement = *($(Result), 2)
set AdapterFullList = >($(AdapterFullList), $(NewElement))

EndForListDo

EndForListDo

EndForListDo

ifstr $(AdapterFullList) != {}
shell "" FirstUninstalledAdapter $(AdapterFullList) $(BusNumberIn)
set AdapterData = $($R0)
ifstr $(AdapterData) != {}

goto Exit
endif
endif

Exit = +

FreeLibrary $(DetectHandle)

Return $(AdapterData)

[FindISA]
set InterfaceType = $($0)
set BusNumber = $($1)
set BoardType = $($2)

read-syms ISABoardOptionsIn
read-syms ISABoardIdentityOut

LoadLibrary "x" $(!STF_SRCDIR)\DigiDlg.dll !DIGIDLGHANDLE

set DlgType = "Combination"
set DlgTemplate = "IDD_ISABOARDTYPE"

set Caption = "Select The Board Type"
set Combo1Label = "&Board Type:"
set Combo1List = $(BoardTypesIn)
set Combo1Out  = *($(BoardTypesIn), 1)
set ComboListItemsIn  = {Combo1List}
set ComboListItemsOut = {Combo1Out}

ui start "DlgTemplate" $(!DIGIDLGHANDLE)
ui pop 1

ForListDo $(Combo1List)
ifstr(i) $(Combo1Out) == $($)
set Identity = *($(BoardIdentityOut),$(#))
goto BoardTypeSet
endif
EndForListDo

BoardTypeSet = +

set AdapterData = { $(BusNumber), 0, 768, 851968, 7, $(Identity) }

Exit = +

ifstr(i) $(DIGIDLGHANDLE) != ""
FreeLibrary $(DIGIDLGHANDLE)
set $(DIGIDLGHANDLE) = ""
Endif

Return $(AdapterData)

[TapiConstants]

KEY_DEVICEMAPROOT	= "HARDWARE\DEVICEMAP"
KEY_TAPIDEVICES	= "TAPI DEVICES"
VALUE_ADDRESS		= "Address"
VALUE_MEDIATYPE   = "Media Type"

[SetTapi]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms TapiConstants

set SvcType = $($0)
set VirtualAdapterNumber = $($1)
set PortCount = $($2)
set AddrScheme = $($3)

read-syms DriverConstants-$(SvcType)

set Success = 0

set KeyDeviceMap = ""
set KeyTapiDevices = ""
set KeyServiceProvider = ""

StartWait

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_DEVICEMAPROOT) 33554432 KeyDeviceMap
ifstr $(KeyDeviceMap) == ""
ifstr(i) "UNABLE_ACCESS_DEVICEMAP_REG" != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString "UNABLE_ACCESS_DEVICEMAP_REG" 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Error 
endif
endif

shell "" MakeRegKey $(KeyDeviceMap) { $(KEY_TAPIDEVICES), 0, "GenericClass" } 
set KeyTapiDevices = $($R0)
ifstr $(KeyTapiDevices) == ""
ifstr(i) "UNABLE_ACCESS_TAPIDEVICES_REG" != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString "UNABLE_ACCESS_TAPIDEVICES_REG" 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Error 
endif
endif

shell "" MakeRegKey $(KeyTapiDevices) { $(ProductSoftwareName), 0, "GenericClass" } 
set KeyServiceProvider = $($R0)
ifstr $(KeyServiceProvider) == ""
ifstr(i) "UNABLE_ACCESS_SOFTWARE_REG" != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString "UNABLE_ACCESS_SOFTWARE_REG" 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Error 
endif
endif

set PreviousAddressList = {}
shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyServiceProvider) $(VALUE_ADDRESS)
ifint $($R0) == 1)
set PreviousAddressList = $($R1)
endif

set CurrentAddressList = {}
ForListDo $(PreviousAddressList)
set Address = $($)
Split-String $(Address) "-" AddressParts

ifstr(i) *($(AddressParts), 1) != $(VirtualAdapterNumber)
set CurrentAddressList = >($(CurrentAddressList), $(Address))
endif

EndForListDo

set BuildDigit2 = 0
set BuildDigit3 = 0

set DigitToInc = BuildDigit$(AddrScheme)

goto Continue_Build 
Top_Build = +
set BuildAddress = $(VirtualAdapterNumber)"-"$(BuildDigit2)"-"$(BuildDigit3)
set CurrentAddressList = >($(CurrentAddressList), $(BuildAddress))

set-add $(DigitToInc) = $($(DigitToInc)), 1

Continue_Build = + 
ifint $($(DigitToInc)) < $(PortCount) 
goto Top_Build 
endif 
Break_Build = +

QueryListSize AddressListSize $(CurrentAddressList)

ifint $(AddressListSize) == 0

shell "" CloseOpenRegKey $(KeyServiceProvider)
DeleteRegKey $(KeyTapiDevices) $(ProductSoftwareName)
goto Exit
endif

set NewValueList = { +
{ $(VALUE_MEDIATYPE), 0, $(!REG_VT_SZ), $(MediaType) } +
{ $(VALUE_ADDRESS), 0, $(!REG_VT_MULTI_SZ), $(CurrentAddressList) } }

shell "" SetValuesFromList $(KeyServiceProvider) $(NewValueList)
ifint $($R0) == 0 
goto Error 
endif

Exit = +
set Success = 1

Error = +
shell "" CloseOpenRegKey $(KeyDeviceMap)
shell "" CloseOpenRegKey $(KeyTapiDevices)
shell "" CloseOpenRegKey $(KeyServiceProvider)

EndWait

Return $(Success)

[CopyPVCData]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Type = $($0)
set Line = $($1)
set KeyLine = $($2)
set AdapterName = $($3)

read-syms DriverConstants-$(Type)

set KeyParams = ""
shell "" OpenServiceParamKey $(AdapterName) 
set KeyParams = $($R0)
ifstr $(KeyParams) == ""
ifint 0 == 0 
goto Exit 
endif
endif

OpenRegKey $(KeyParams) "" $(LineServiceKeyName)\$(Line) 33554432 KeyPVC
ifstr $(KeyPVC) == ""
ifint 0 == 0 
goto Exit 
endif
endif

shell "" EnumAdapters { $(Type) } 1
set AdapterDataList = $($R0)

ForListDo $(AdapterDataList)
set ServiceName = *($($), 1)
set NetworkCardKey = *($($), 3)

shell "" OpenServiceParamKey $(ServiceName) 
set KeyVirtualAdapterService = $($R0)

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyVirtualAdapterService) "Adapter"
ifint $($R0) == 0 
goto NextNetCard 
endif
ifstr(i) $($R1) != $(AdapterName)
goto NextNetCard
endif

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyVirtualAdapterService) "Line"
ifint $($R0) == 0 
goto NextNetCard 
endif
ifstr(i) $($R1) != $(Line)
goto NextNetCard
endif

shell "" GetRegValueByKey $(!REG_VT_SZ) $(NetworkCardKey) "Title"
ifint $($R0) == 0 
goto NextNetCard 
endif
set Description = $($R1)

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyVirtualAdapterService) "Description" $(Description)
ifint $($R0) == 0 
goto NextNetCard 
endif

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyVirtualAdapterService) "RegPath"
ifint $($R0) == 0 
goto NextNetCard 
endif
set Circuit = $($R1)

shell "" MakeRegKey $(!REG_H_LOCAL) { $(!NTN_ServiceBase)"\"$(Circuit), 0, "GenericClass" } 
set PVCKey = $($R0)
ifstr $(PVCKey) == ""
ifint 0 == 0 
goto NextNetCard 
endif
endif

shell "" CopyRegTree $(KeyVirtualAdapterService) $(PVCKey)
ifint $($R0) == 0 
goto NextNetCard 
endif

CloseRegKey $(PVCKey)

NextNetCard = +

CloseRegKey $(NetworkCardKey)
EndForListDo

CloseRegKey $(KeyParams)
CloseRegKey $(KeyPVC)

Exit = +

Return

[CopyRouterData]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-X25

set KeyParameters = $($0)

set KeyX25Adapter = ""
set AdapterNumber = ""

shell "" FindAdapter $(ProductSoftwareName)
ifint $($R0) == 1
set AdapterNumber = $($R1)

shell "" OpenServiceParamKey $(ProductHardwareName)$(AdapterNumber) 
set KeyX25Adapter = $($R0)
shell "" MakeRegKey $(KeyParameters) { "WanX", 0, "GenericClass" } 
set KeyX25Route = $($R0)

shell "" CopyRegTree $(KeyX25Adapter) $(KeyX25Route)

shell "" CloseOpenRegKey $(KeyX25Adapter)
shell "" CloseOpenRegKey $(KeyX25Route)
endif

Return

[UpdateRouter]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-X25

set KeyParameters = $($0)

set KeyX25Adapter = ""
set AdapterNumber = ""

shell "" FindAdapter $(ProductSoftwareName)
ifint $($R0) == 1
set AdapterNumber = $($R1)

shell "" OpenServiceParamKey $(ProductHardwareName)$(AdapterNumber) 
set KeyX25Adapter = $($R0)
OpenRegKey $(KeyParameters) "" "WanX" 33554432 KeyX25Route

ifstr $(KeyX25Route) != ""
shell "" CopyRegTree $(KeyX25Route) $(KeyX25Adapter)
shell "" CloseOpenRegKey $(KeyX25Route)
endif
endif

Return

[ToggleServiceStartValue]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set ServiceName = $($0)
set Toggle = $($1)

set KeyService = ""

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName) 33554432 KeyService
ifstr $(KeyService) != ""

set Start = 4

ifstr(i) $(Toggle) == "On"
shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeyService) "PrevStart"
ifint $($R0) == 1
set Start = $($R1)
else

goto Exit
endif
else
shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeyService) "Start"
ifint $($R0) == 0 
goto Exit 
endif
ifint $($R1) != 4
shell "" SetRegValueByKey $(!REG_VT_DWORD) $(KeyService) "PrevStart" $($R1)

endif
endif

shell "" SetRegValueByKey $(!REG_VT_DWORD) $(KeyService) "Start" $(Start)

endif

Exit = +

shell "" CloseOpenRegKey $(KeyService)

Return

[CleanUpAfterConfig]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Type = $($0)
set Line = $($1)
set LineKey = $($2)

read-syms DriverConstants-$(Type)

ifstr(i) $(Type) == "ASYN"

shell "utility.inf" IsRefCountEqualZero $(ProductKeyName)
ifint $($R1) == 1
shell "" ToggleServiceStartValue $(ProductSoftwareName) "Off"
endif

else

shell "" FindAdapter $(ProductHardwareName)

ifint $($R0) == 0

shell "" ToggleServiceStartValue $(ProductSoftwareName) "Off"
else

shell "" ToggleServiceStartValue $(ProductSoftwareName) "On"
endif

endif

Return

[AddService]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms Identification

set Option = $($0)

read-syms DriverConstants-$(Option)
read-syms $(Option)-Strings-$(!STF_LANGUAGE)

set Installed = 1

set SoftwareInstalled = 0

set KeyProduct = ""
set KeyNetRules = ""
set KeyService = ""
set KeyParameters = ""
set KeyLinkage = ""

OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) 33554432 KeyProduct
ifstr $(KeyProduct) != ""
shell "" ToggleServiceStartValue $(ProductSoftwareName) "On"
goto Exit
endif

StartWait

shell "utility.inf" AddSoftwareComponent +
$(Manufacturer), +
$(ProductSoftwareName) +
$(ProductSoftwareName) +
$(DriverTitle) +
$(STF_CONTEXTINFNAME) +
$(ProductSoftwareImagePath) +
$(ServiceType) +
$(Group) +
$(DependsOn) +
"" +
$(ProductSoftwareImagePath)";"$(IoLogMsgDLLPath)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Error 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Error 
endif

set KeyProduct = $($R1)
set KeyNetRules = $($R2)
set KeyService = $($R3)
set KeyParameters = $($R4)
set KeyLinkage = $($R5)

set SoftwareInstalled = 1

shell "" GetElapsedTime
set CurrentTime = $($R0)

set ProductValueList = { +
{ "SoftwareType", 0, $(!REG_VT_SZ), $(SoftwareType) }, +
{ "SoftwareVersion", 0, $(!REG_VT_SZ), $(InstallVersion) }, +
{ "ProductVersion", 0, $(!REG_VT_SZ), $(ProductVersion) }, +
{ "MajorVersion", 0, $(!REG_VT_SZ), $(ProductMajorVersion) }, +
{ "MinorVersion", 0, $(!REG_VT_SZ), $(ProductMinorVersion) }, +
{ "BuildNumber", 0, $(!REG_VT_SZ), $(ProductBuildNumber) }, +
{ "Title", 0, $(!REG_VT_SZ), $(DriverTitle) }, +
{ "Description", 0, $(!REG_VT_SZ), $(DriverDescription) }, +
{ "ServiceName", 0, $(!REG_VT_SZ), $(ProductSoftwareName) }, +
{ "Review", 0, $(!REG_VT_DWORD), $(Review) }, +
{ "InstallDate", 0, $(!REG_VT_DWORD), $(CurrentTime) }, +
{ "Hidden", 0, $(!REG_VT_DWORD), $(Hidden) } }

shell "" SetValuesFromList $(KeyProduct) $(ProductValueList)
ifint $($R0) == 0 
goto Error 
endif

set NetRulesValueList = { +
{ "type", 0, $(!REG_VT_SZ), $(NetRuleSoftwareType) }, +
{ "use", 0, $(!REG_VT_SZ), $(NetRuleSoftwareUse) }, +
{ "bindform", 0, $(!REG_VT_SZ), $(NetRuleSoftwareBindForm) }, +
{ "class", 0, $(!REG_VT_MULTI_SZ), $(NetRuleSoftwareClass) }, +
{ "bindable", 0, $(!REG_VT_MULTI_SZ), $(NetRuleSoftwareBindable) }, +
{ "InfOption", 0, $(!REG_VT_SZ), $(Option) } }

shell "" SetValuesFromList $(KeyNetRules) $(NetRulesValueList)
ifint $($R0) == 0 
goto Error 
endif

ifstr(i) $(DependOnGroup) != {}
set OtherDependenciesList = { +
{ "OtherDependencies", 0, $(!REG_VT_MULTI_SZ), $(DependOnGroup) } }

shell "" SetValuesFromList $(KeyLinkage) $(OtherDependenciesList)
ifint $($R0) == 0 
goto Error 
endif

endif

goto Exit

Error = +

ifint $(SoftwareInstalled) == 1
set SoftwareInstalled = 0
shell "utility.inf" RemoveSoftwareComponent $(Manufacturer) $(ProductSoftwareName) "FALSE"

endif

set Installed = 0

Exit = +

shell "" CloseOpenRegKey $(KeyProduct)
shell "" CloseOpenRegKey $(KeyNetRules)
shell "" CloseOpenRegKey $(KeyService)
shell "" CloseOpenRegKey $(KeyParameters)
shell "" CloseOpenRegKey $(KeyLinkage)

EndWait

Return $(Installed)

[SetUp-FRService]
set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

shell "" CopyPVCData "FR" $(Line) $(KeyLine) $(AdapterServiceName)

Return

[CleanUp-FRService]
set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set ConfigResult = $($3)

shell "" CleanUpAfterConfig "FR" $(Line) $(KeyLine)

Return

[Add-FRService]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-FR

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set LineNum = $($3)
set SrcDir = $($4)
set Option = $($5)

shell "" AddService "FR"
set Installed = $($R0)
ifint $(Installed) == 0 
goto Exit 
endif

shell "utility.inf" IncrementRefCount $(ProductKeyName)

Exit = +

Return $(Installed)

[Remove-FRService]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-FR

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

shell "" RemoveVirtualAdapters "FR" $(Line) $(AdapterServiceName) $(Manufacturer)

shell "utility.inf" DecrementRefCount $(ProductKeyName)

Exit = +

Return

[Config-FRService]
set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set Option = $($3)

shell "" CreateVirtualAdapters "FR" $(Line) $(AdapterServiceName) $(Option)
set Success = $($R0)
set NeedBindingReview = $($R1)

shell "" CopyPVCData "FR" $(Line) $(KeyLine) $(AdapterServiceName)

Return $(Success) $(NeedBindingReview)

[SetUp-X25Service]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

shell "" CopyPVCData "X25L" $(Line) $(KeyLine) $(AdapterServiceName)

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""
shell "" CopyRouterData $(KeyAdapterParams)
endif

Return

[CleanUp-X25Service]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set ConfigResult = $($3)

shell "" CleanUpAfterConfig "X25L" $(Line) $(KeyLine)

Return

[Add-X25Service]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set LineNum = $($3)
set SrcDir = $($4)
set Option = $($5)

shell "" AddService "X25"
set Installed = $($R0)
ifint $(Installed) == 0 
goto Exit 
endif

read-syms DriverConstants-X25
shell "" FindAdapter $(ProductHardwareName)

ifint $($R0) == 0
shell "" AddVirtualAdapter "X25" $(Line) $(AdapterServiceName) "" $(Option) ""

else
set VAdapterNum = $($R1)
shell "utility.inf" IncrementRefCount $(KEY_NETWORKCARDS)"\"$(VAdapterNum)
endif

read-syms DriverConstants-X25L
shell "" AddService "X25L"
shell "utility.inf" IncrementRefCount $(ProductKeyName)

Exit = +

Return $(Installed)

[Remove-X25Service]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

read-syms DriverConstants-X25L
shell ""	RemoveVirtualAdapters "X25L" $(Line) $(AdapterServiceName) $(Manufacturer)

shell "utility.inf" DecrementRefCount $(ProductKeyName)

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

OpenRegKey $(KeyAdapterParams) "" "WanX" 33554432 KeyWanX
ifstr $(KeyWanX) != ""

OpenRegKey $(KeyAdapterParams) "" $(Line)\"X25" 33554432 KeyX25Line
ifstr $(KeyX25Line) != ""

shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyX25Line) "Alias"

set ThisAlias = $($R1)

read-syms DriverConstants-X25
shell "" FindAdapter $(ProductHardwareName)

set RouterVAdapterNum = $($R1)

shell "" OpenServiceParamKey $(ProductHardwareName)$(RouterVAdapterNum) 
set KeyX25Adapter = $($R0)
ifstr $(KeyX25Adapter) != ""

set AliasList = {}
set DeviceList = {}
set SnidList = {}
set NumVCList = {}

shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "Alias"
ifint $($R0) == 1
set AliasList = $($R1)
endif

shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "Device"
ifint $($R0) == 1
set DeviceList = $($R1)
endif

shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "Snid"
ifint $($R0) == 1
set SnidList = $($R1)
endif

shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "NumVC"
ifint $($R0) == 1
set NumVCList = $($R1)
endif

set NewAliasList = {}
set NewDeviceList = {}
set NewSnidList = {}
set NewNumVCList = {}

set NewTotal = 0
ForListDo $(AliasList)

set Alias = *($(AliasList), $(#))
set Device = *($(DeviceList), $(#))
set Snid = *($(SnidList), $(#))
set NumVC = *($(NumVCList), $(#))

ifstr(i) $(ThisAlias) != $(Alias)
set NewAliasList = >($(NewAliasList), $(Alias))
set NewDeviceList = >($(NewDeviceList), $(Device))
set NewSnidList = >($(NewSnidList), $(Snid))
set NewNumVCList = >($(NewNumVCList), $(NumVC))

set-add NewTotal = $(NewTotal), $(NumVC)
endif
EndForListDo

shell "" SetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "Alias" $(NewAliasList)

shell "" SetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "Device" $(NewDeviceList)

shell "" SetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "SNID" $(NewSnidList)

shell "" SetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "NumVC" $(NewNumVCList)

ifint $(NewTotal) > 255
ifstr(i) $(!NTVER) == "3.51"
set NewTotal = 255
endif
endif

shell "" SetRegValueByKey $(!REG_VT_DWORD) $(KeyX25Adapter) "NumRASPorts" $(NewTotal)

set RouteAddressList = {}
set RouteAliasList = {})

shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "RouteAddress"
ifint $($R0) == 1
set RouteAddressList = $($R1)
endif

shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "RouteAlias"
ifint $($R0) == 1
set RouteAliasList = $($R1)
endif

set NewRouteAddressList = {}
set NewRouteAliasList = {}

ForListDo $(RouteAliasList)
set RouteAddress = *($(RouteAddressList), $(#))
set RouteAlias = *($(RouteAliasList), $(#))

ifstr(i) $(RouteAlias) != $(ThisAlias)
set NewRouteAddressList = >($(NewRouteAddressList), $(RouteAddress))
set NewRouteAliasList = >($(NewRouteAliasList), $(RouteAlias))
endif
EndForListDo

shell "" SetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "RouteAddress" $(NewRouteAddressList)

shell "" SetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyX25Adapter) "RouteAlias" $(NewRouteAliasList)

CloseRegKey $(KeyX25Adapter)
endif

CloseRegKey $(KeyX25Line)
DeleteRegTree $(KeyAdapterParams) $(Line)\"X25"
endif

CloseRegKey $(KeyWanX)
endif

CloseRegKey $(KeyAdapterParams)
endif

shell "" SetTapi "X25" $(RouterVAdapterNum) $(NewTotal) 3
shell "" RemoveVirtual "X25" $(RouterVAdapterNum) $(Manufacturer)

Return

[Config-X25Service]
set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set Option = $($3)

shell "" CreateVirtualAdapters "X25L" $(Line) $(AdapterServiceName) $(Option)
set Success = $($R0)
set NeedBindingReview = $($R1)

shell "" CopyPVCData "X25L" $(Line) $(KeyLine) $(AdapterServiceName)

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""
shell "" UpdateRouter $(KeyAdapterParams)
endif

Return $(Success) $(NeedBindingReview)

[SetUp-SNAService]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

Return

[CleanUp-SNAService]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set ConfigResult = $($3)

Return

[Add-SNAService]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set LineNum = $($3)
set SrcDir = $($4)
set Option = $($5)

set Installed = 1

Return $(Installed)

[Remove-SNAService]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

Return

[Config-SNAService]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set Option = $($3)

read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-SNA

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

OpenRegKey $(KeyAdapterParams) "" $(LineServiceKeyName)"\"$(Line) 33554432 KeyLineService
ifstr $(KeyLineService) != ""
set	DeviceName = $(AdapterServiceName)
ifcontains(i) $(Option) in $(OptionsThatNeedStreams)

read-syms DriverConstants-Streams
set DeviceName = $(ProductSoftwareName)

endif

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyLineService) "Adapter" $(AdapterServiceName)
shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyLineService) "Device" $(DeviceName)
CloseRegKey $(KeyLineService)
endif

CloseRegKey $(KeyAdapterParams)
endif

set Success = 1
set NeedBindingReview = 0

Return $(Success) $(NeedBindingReview)

[SetUp-ASYN]
set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

Return

[CleanUp-ASYN]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-ASYN

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set ConfigResult = $($3)

shell "" CleanUpAfterConfig "ASYN" $(Line) $(KeyLine)

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

OpenRegKey $(KeyAdapterParams) "" $(LineServiceKeyName) 33554432 KeyLineService
ifstr $(KeyLineService) != ""

EnumRegKey $(KeyLineService) SubKeyList
CloseRegKey $(KeyLineService)

ifstr $(SubKeyList) == {}

DeleteRegTree $(KeyAdapterParams) $(LineServiceKeyName)
endif
endif

CloseRegKey $(KeyAdapterParams)
endif

Return

[Add-ASYN]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-ASYN

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set LineNum = $($3)
set SrcDir = $($4)
set Option = $($5)

shell "" AddService "ASYN"
set Installed = $($R0)
ifint $(Installed) == 0 
goto Exit 
endif

shell "utility.inf" IncrementRefCount $(ProductKeyName)

Exit = +

Return $(Installed)

[Remove-ASYN]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-ASYN

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

OpenRegKey $(KeyAdapterParams) "" $(LineServiceKeyName) 33554432 KeyLineService
ifstr $(KeyLineService) != ""

DeleteRegTree $(KeyLineService) $(Line)

EnumRegKey $(KeyLineService) SubKeyList
ifstr $(SubKeyList) == {}

shell "" OpenServiceParamKey $(ProductHardwareName) 
set KeyAsynParams = $($R0)
ifstr $(KeyAsynParams) != ""

DeleteRegTree $(KeyAsynParams) $(AdapterServiceName)

CloseRegKey $(KeyAsynParams)
endif

endif

CloseRegKey $(KeyLineService)
endif

CloseRegKey $(KeyAdapterParams)
endif

shell "utility.inf" DecrementRefCount $(ProductKeyName)

Return

[Config-ASYN]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-ASYN

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set Option = $($3)

set Success = 0
set NeedBindingReview = 0

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

shell "" MakeRegKey $(KeyAdapterParams) { $(LineServiceKeyName), 0, "GenericClass" } 
set KeyLineService = $($R0)
ifstr $(KeyLineService) != ""

shell "" MakeRegKey $(KeyLineService) { $(Line), 0, "GenericClass" } 
set KeyLineServiceLine = $($R0)
ifstr $(KeyLineServiceLine) != ""
CloseRegKey $(KeyLineServiceLine)
endif

CloseRegKey $(KeyLineService)
endif

CloseRegKey $(KeyAdapterParams)
endif

shell "" OpenServiceParamKey $(ProductHardwareName) 
set KeyAsynParams = $($R0)
ifstr $(KeyAsynParams) != ""

shell "" MakeRegKey $(KeyAsynParams) { $(AdapterServiceName), 0, "GenericClass" } 
set KeyAsynParamsAdapter = $($R0)
ifstr $(KeyAsynParamsAdapter) != ""

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyAsynParamsAdapter) "Adapter" $(AdapterServiceName)
shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyAsynParamsAdapter) "Device" $(AdapterServiceName)
set RegPath = $(AdapterServiceName)"\Parameters\"$(LineServiceKeyName)
shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyAsynParamsAdapter) "RegPath" $(RegPath)

CloseRegKey $(KeyAsynParamsAdapter)
endif

CloseRegKey $(KeyAsynParams)
endif

set Success = 1

Exit = +

Return $(Success) $(NeedBindingReview)

[SetUp-ISDN]
set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

Return

[CleanUp-ISDN]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-ISDN

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set ConfigResult = $($3)

shell "" CleanUpAfterConfig "ISDN" $(Line) $(KeyLine)

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

OpenRegKey $(KeyAdapterParams) "" $(LineServiceKeyName) 33554432 KeyLineService
ifstr $(KeyLineService) != ""

EnumRegKey $(KeyLineService) SubKeyList
CloseRegKey $(KeyLineService)

ifstr $(SubKeyList) == {}

DeleteRegTree $(KeyAdapterParams) $(LineServiceKeyName)
endif
endif

CloseRegKey $(KeyAdapterParams)
endif

Return

[Add-ISDN]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-ISDN

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set LineNum = $($3)
set SrcDir = $($4)
set Option = $($5)

shell "" AddService "ISDN"
set Installed = $($R0)
ifint $(Installed) == 0 
goto Exit 
endif

shell "utility.inf" IncrementRefCount $(ProductKeyName)

Exit = +

Return $(Installed)

[Remove-ISDN]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-ISDN

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

OpenRegKey $(KeyAdapterParams) "" $(LineServiceKeyName) 33554432 KeyLineService
ifstr $(KeyLineService) != ""

OpenRegKey $(KeyLineService) "" $(Line) 33554432 KeyLineServiceLine
ifstr $(KeyLineServiceLine) != ""
set VAdapterNum = ""
shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "VAdapterNum"
ifint $($R0) == 1
set VAdapterNum = $($R1)
endif

ifstr $(VAdapterNum) != ""
shell "" RemoveVirtual "ISDN" $(VAdapterNum) $(Manufacturer)
shell "" SetTapi "ISDN" $(VAdapterNum) 0 2
endif

CloseRegKey $(KeyLineServiceLine)
endif

DeleteRegTree $(KeyLineService) $(Line)

CloseRegKey $(KeyLineService)
endif

CloseRegKey $(KeyAdapterParams)
endif

shell "utility.inf" DecrementRefCount $(ProductKeyName)

Return

[Config-ISDN]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-ISDN

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set Option = $($3)

set Success = 0
set NeedBindingReview = 0

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

shell "" MakeRegKey $(KeyAdapterParams) { $(LineServiceKeyName), 0, "GenericClass" } 
set KeyLineService = $($R0)
ifstr $(KeyLineService) != ""

shell "" MakeRegKey $(KeyLineService) { $(Line), 0, "GenericClass" } 
set KeyLineServiceLine = $($R0)
ifstr $(KeyLineServiceLine) != ""

set VAdapterNum = ""
shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "VAdapterNum"
ifint $($R0) == 1
set VAdapterNum = $($R1)
endif

ifstr $(VAdapterNum) == ""

set RegPath = $(AdapterServiceName)"\Parameters\"$(LineServiceKeyName)"\"$(Line)
shell "" AddVirtualAdapter "ISDN" $(Line) $(AdapterServiceName) "" $(Option) $(RegPath)

set VAdapterNum = $($R1)

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "VAdapterNum" $(VAdapterNum)

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "Adapter" $(AdapterServiceName)
shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "Device" $(AdapterServiceName)

set VAServiceName = $(ProductHardwareName)$(VAdapterNum)
shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "ServiceName" $(VAServiceName)

endif

set EndPoints = 0
shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeyLineServiceLine) "Endpoints"
ifint $($R0) == 1
set EndPoints = $($R1)
endif
shell "" SetTapi "ISDN" $(VAdapterNum) $(EndPoints) 2

set NeedBindingReview = 1

CloseRegKey $(KeyLineServiceLine)
endif

CloseRegKey $(KeyLineService)
endif

CloseRegKey $(KeyAdapterParams)
endif

set Success = 1

Exit = +

Return $(Success) $(NeedBindingReview)

[SetUp-PPPService]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

Return

[CleanUp-PPPService]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-PPP

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set ConfigResult = $($3)

shell "" CleanUpAfterConfig "PPP" $(Line) $(KeyLine)

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

OpenRegKey $(KeyAdapterParams) "" $(LineServiceKeyName) 33554432 KeyLineService
ifstr $(KeyLineService) != ""

EnumRegKey $(KeyLineService) SubKeyList
CloseRegKey $(KeyLineService)

ifstr $(SubKeyList) == {}

DeleteRegTree $(KeyAdapterParams) $(LineServiceKeyName)
endif
endif

CloseRegKey $(KeyAdapterParams)
endif

Return

[Add-PPPService]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-PPP

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set LineNum = $($3)
set SrcDir = $($4)
set Option = $($5)

shell "" AddService "PPP"
set Installed = $($R0)
ifint $(Installed) == 0 
goto Exit 
endif

shell "utility.inf" IncrementRefCount $(ProductKeyName)

Exit = +

Return $(Installed)

[Remove-PPPService]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-PPP

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

OpenRegKey $(KeyAdapterParams) "" $(LineServiceKeyName) 33554432 KeyLineService
ifstr $(KeyLineService) != ""

OpenRegKey $(KeyLineService) "" $(Line) 33554432 KeyLineServiceLine
ifstr $(KeyLineServiceLine) != ""

set VAdapterNum = ""
shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "VAdapterNum"
ifint $($R0) == 1
set VAdapterNum = $($R1)
endif

ifstr $(VAdapterNum) != ""

shell "" RemoveVirtual "PPP" $(VAdapterNum) $(Manufacturer)
shell "" SetTapi "PPP" $(VAdapterNum) 0 2
endif

CloseRegKey $(KeyLineServiceLine)
endif

DeleteRegTree $(KeyLineService) $(Line)

CloseRegKey $(KeyLineService)
endif

CloseRegKey $(KeyAdapterParams)
endif

shell "utility.inf" DecrementRefCount $(ProductKeyName)

Return

[Config-PPPService]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms GlobalPathConstants
read-syms DriverConstants
read-syms DriverConstants-PPP

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set Option = $($3)

set Success = 1
set NeedBindingReview = 0

shell "" OpenServiceParamKey $(AdapterServiceName) 
set KeyAdapterParams = $($R0)
ifstr $(KeyAdapterParams) != ""

shell "" MakeRegKey $(KeyAdapterParams) { $(LineServiceKeyName), 0, "GenericClass" } 
set KeyLineService = $($R0)
ifstr $(KeyLineService) != ""

shell "" MakeRegKey $(KeyLineService) { $(Line), 0, "GenericClass" } 
set KeyLineServiceLine = $($R0)
ifstr $(KeyLineServiceLine) != ""

set VAdapterNum = ""
shell "" GetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "VAdapterNum"
ifint $($R0) == 1
set VAdapterNum = $($R1)
endif

ifstr $(VAdapterNum) == ""

set RegPath = $(AdapterServiceName)"\Parameters\"$(LineServiceKeyName)"\"$(Line)
shell "" AddVirtualAdapter "PPP" $(Line) $(AdapterServiceName) "" $(Option) $(RegPath)

set VAdapterNum = $($R1)

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "VAdapterNum" $(VAdapterNum)

set	DeviceName = $(AdapterServiceName)
ifcontains(i) $(Option) in $(OptionsThatNeedStreams)

read-syms DriverConstants-Streams
set DeviceName = $(ProductSoftwareName)

endif

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "Adapter" $(AdapterServiceName)
shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "Device" $(DeviceName)

set VAServiceName = $(ProductHardwareName)$(VAdapterNum)
shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyLineServiceLine) "ServiceName" $(VAServiceName)

set EndPoints = 1
shell "" SetTapi "PPP" $(VAdapterNum) $(EndPoints) 2

set NeedBindingReview = 1
endif

CloseRegKey $(KeyLineServiceLine)
endif

CloseRegKey $(KeyLineService)
endif

CloseRegKey $(KeyAdapterParams)
endif

set Success = 1

Exit = +

Return $(Success) $(NeedBindingReview)

[SetUp-None]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

Return

[CleanUp-None]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set ConfigResult = $($3)

Return

[Add-None]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set LineNum = $($3)
set SrcDir = $($4)
set Option = $($5)

set Installed = 1

Return $(Installed)

[Remove-None]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)

Return

[Config-None]

set Line = $($0)
set KeyLine = $($1)
set AdapterServiceName = $($2)
set Option = $($3)

set Success = 1
set NeedBindingReview = 0

Return $(Success) $(NeedBindingReview)

[AddGroupToServiceGroupOrder]

read-syms GlobalRegistryConstants

set GroupToAdd = $($0)
set BeforeGroup = $($1)

set Added = 0

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_SERVICEGROUPORDER) 33554432 KeyServiceGroupOrder
ifstr $(KeyServiceGroupOrder) != ""

shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyServiceGroupOrder) "List"

set TmpList = $($R1)

set OldList = {}
ForListDo $(TmpList)
set OldList = >($(OldList), $($))
EndForListDo

Ifcontains(i) $(GroupToAdd) not-in $(OldList)

ifstr $(BeforeGroup) == {}

set NewGroupList = >($(OldList), $(GroupToAdd) )
set Added = 1

else

set NewGroupList = {}
ForListDo $(OldList)
ifstr(i) $($) == $(BeforeGroup)
set NewGroupList = >($(NewGroupList), $(GroupToAdd) )
set Added = 1
endif
set NewGroupList = >($(NewGroupList), $($))
EndForListDo

endif

shell "" SetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyServiceGroupOrder) "List" $(NewGroupList)

else

set Added = 1

endif

CloseRegKey $(KeyServiceGroupOrder)

endif

Return $(Added)

[RemoveGroupFromServiceGroupOrder]

read-syms GlobalRegistryConstants

set GroupToRemove = $($0)
set NewGroupList = {}

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_SERVICEGROUPORDER) 33554432 KeyServiceGroupOrder
ifstr $(KeyServiceGroupOrder) != ""

shell "" GetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyServiceGroupOrder) "List"

set TmpList = $($R1)

ForListDo $(TmpList)
ifstr(i) $(GroupToRemove) != $($)
set NewGroupList = >($(NewGroupList), $($))
Endif
EndForListDo

shell "" SetRegValueByKey $(!REG_VT_MULTI_SZ) $(KeyServiceGroupOrder) "List" $(NewGroupList)

CloseRegKey $(KeyServiceGroupOrder)

endif

Return

[SNMPConstants]
SNMPAgentNameList = ^(Files-SNMP, 0)
SNMPDllNameList   = ^(Files-SNMP, 2)

[LocalSNMPRegistryConstants]
KEY_SNMPROOT = $(!NTN_ServiceBase)"\SNMP"
KEY_PARAMETERS = $(KEY_SNMPROOT)"\Parameters"
KEY_AGENTLIST = $(KEY_PARAMETERS)"\ExtensionAgents"

[IsSNMPServiceInstalled]
read-syms LocalSNMPRegistryConstants

set Installed = 0

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_SNMPROOT) 33554432 KeySNMPRoot
ifstr $(KeySNMPRoot) == ""
goto Exit
endif
CloseRegKey $(KeySNMPRoot)
set Installed = 1

Exit = +

Return $(Installed)

[InstallAgent]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms LocalSNMPRegistryConstants

set AgentSuffix = $($0)
set AgentPath = $($1)

set Result = 0

set KEY_AGENTSOFTWARE = $(KEY_DIGIROOT)"\SNMP\"$(AgentSuffix)"\CurrentVersion"

shell "" MakeRegKey $(!REG_H_LOCAL) { $(KEY_AGENTSOFTWARE), 0, "GenericClass" } 
set KeyCurrentVersion = $($R0)
ifstr $(KeyCurrentVersion) == ""
ifint 0 == 0 
goto Exit 
endif
endif

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyCurrentVersion) "PathName" $(AgentPath)

CloseRegKey $(KeyCurrentVersion)

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_PARAMETERS) 33554432 KeyParams
ifstr $(KeyParams) == ""
ifint 0 == 0 
goto Exit 
endif
endif

shell "" MakeRegKey $(KeyParams) { "ExtensionAgents", 0, "GenericClass" } 
set KeyAgent = $($R0)
ifstr $(KeyAgent) == ""
ifint 0 == 0 
goto Exit 
endif
endif

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyAgent) "Digi-"$(AgentSuffix) $(KEY_AGENTSOFTWARE)

shell "" CloseOpenRegKey $(KeyAgent)
shell "" CloseOpenRegKey $(KeyParams)

set Result = 1

Exit = +

Return $(Result)

[RemoveAgent]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms LocalSNMPRegistryConstants

set AgentSuffix = $($0)

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_DIGIROOT)"\SNMP" 33554432 KeyRoot
ifstr $(KeyRoot) != ""

DeleteRegTree $(KeyRoot) $(AgentSuffix)
CloseRegKey $(KeyRoot)
endif

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_AGENTLIST) 33554432 KeyAgents
ifstr $(KeyAgents) != ""

DeleteRegValue $(KeyAgents) "Digi-"$(AgentSuffix)
CloseRegKey $(KeyAgents)
endif

Return

[InstallSNMP]
read-syms GlobalConstants
read-syms GlobalPathConstants
read-syms SNMPConstants

set Success = 0

shell "" IsSNMPServiceInstalled
ifint $($R0) == 0
goto Exit
endif

ForListDo $(SNMPAgentNameList)
set AgentSuffix = $($)
set AgentDll = *($(SNMPDllNameList), $(#))
set AgentPath = $(!STF_WINDOWSSYSPATH)"\"$(AgentDll)

shell "" InstallAgent $(AgentSuffix) $(AgentPath)
set Success = $($R0)

ifint $(Success) == 0
read-syms SNMPMessages-$(!STF_LANGUAGE)
shell "" StatusMessage $(InstallError)
goto Exit
endif

EndForListDo

Exit = +

Return $(Success)

[RemoveSNMP]
read-syms GlobalConstants
read-syms GlobalRegistryConstants
read-syms SNMPConstants

ForListDo $(SNMPAgentNameList)

shell "" RemoveAgent $($)
EndForListDo

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_DIGIROOT)"\SNMP" 33554432 KeyRoot
ifstr $(KeyRoot) != ""

EnumRegKey $(KeyRoot) OtherSnmpsList
QueryListSize NumOtherSnmps $(OtherSnmpsList)

CloseRegKey $(KeyRoot)

ifint $(NumOtherSnmps) == 0

OpenRegKey $(!REG_H_LOCAL) "" $(KEY_DIGIROOT) 33554432 KeyRoot
DeleteRegTree $(KeyRoot) "SNMP"
CloseRegKey $(KeyRoot)
endif
endif

Exit = +

Return

[InvokeRAS]

read-syms InvokeRasDlg-$(!STF_LANGUAGE)

set Success = 1

shell "oemnsvra.inf" CheckRasInstalled
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Error 
endif

set RasInstalled = $($R0)

ifstr(i) $(RasInstalled) == "FALSE"
goto Exit
endif

shell "" MessageBox $(InvokeRasTitle) $(InvokeRasConfigMsg) 3 4 1
ifstr(i) $($R0) != "YES"
goto Exit
endif

set AddCopy = "YES"
set DoCopy = "YES"
set DoConfig = "YES"

set SaveSTF_SRCDIR_OVERRIDE = $(!STF_SRCDIR_OVERRIDE)
set !STF_SRCDIR_OVERRIDE = ""

set SaveNTN_InstallMode = $(!NTN_InstallMode)
set !NTN_InstallMode = "configure"

shell "oemnsvra.inf" InstallOption $(!STF_LANGUAGE) "RAS" $(SourceDir) $(AddCopy) $(DoCopy) $(DoConfig)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Error 
endif

set !STF_SRCDIR_OVERRIDE = $(SaveSTF_SRCDIR_OVERRIDE)
set !NTN_InstallMode = $(SaveNTN_InstallMode)

ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Error 
endif

goto Exit

Error = +
set Success = 0

shell "" StatusMessage $(InvokeRasError)

Exit = +

Return $(Success)

[RefCountConstants]
ValueName = "RefCount"

[GetRefCountByKey]
read-syms RefCountConstants

set Key = $($0)
set Name = $($1)

set Success = 0
set RefCount = "Invalid"

shell "" GetRegValueByKey $(!REG_VT_DWORD) $(Key) $(Name)$(ValueName)
ifint $($R0) == 0 
goto Exit 
endif

set Test = $($R1)
ifint $(Test) < 0

goto Exit
endif

set RefCount = $(Test)
set Success = 1

Exit = +

Return $(Success) $(RefCount)

[SetRefCountByKey]
read-syms RefCountConstants

set Key = $($0)
set RefCount = $($1)
set Name = $($2)

shell "" SetRegValueByKey $(!REG_VT_DWORD) $(Key) $(Name)$(ValueName) $(RefCount)
set Success = $($R0)

Return $(Success)

[ModRefCountByKey]

set Key = $($0)
set Delta = $($1)
set Name = $($2)

set Success = 0
set RefCount = "Invalid"

shell "" GetRefCountByKey $(Key) $(Name)
ifint $($R0) == 0 
goto Exit 
endif

set RefCount = $($R1)
set-add RefCount = $(RefCount), $(Delta)

shell "" SetRefCountByKey $(Key) $(RefCount) $(Name)
ifint $($R0) == 0 
goto Exit 
endif

set Success = $($R0)

Exit = +

Return $(Success) $(RefCount)

[GetRefCountByName]

set Path = $($0)
set Name = $($2)

set Success = 0
set RefCount = "Invalid"

OpenRegKey $(!REG_H_LOCAL) "" $(Path) 33554432 Key
ifstr $(Key) == ""
goto Exit
endif

shell "" GetRefCountByKey $(Key) $(Name) $(Default)
ifint $($R0) == 0 
goto Exit 
endif

set Success = 1
set RefCount = $($R1)

CloseRegKey $(Key)

Exit = +

Return $(Success) $(RefCount)

[SetRefCountByName]

set Path = $($0)
set RefCount = $($1)
set Name = $($2)

set Success = 0

shell "" MakeRegKey $(!REG_H_LOCAL) { $(Path), 0, "GenericClass" } 
set Key = $($R0)
ifstr $(Key) == ""
ifint 0 == 0 
goto Exit 
endif
endif

shell "" SetRefCountByKey $(Key) $(RefCount) $(Name)
set Success = $($R0)

CloseRegKey $(Key)

Exit = +

Return $(Success)

[ModRefCountByName]

set Path = $($0)
set Delta = $($1)
set Name = $($2)

set Success = 0
set RefCount = "Invalid"

OpenRegKey $(!REG_H_LOCAL) "" $(Path) 33554432 Key
ifstr $(Key) == ""
goto Exit
endif

shell "" ModRefCountByKey $(Key) $(Delta) $(Name)
ifint $($R0) == 0 
goto Exit 
endif

set Success = 1
set RefCount = $($R1)

CloseRegKey $(Key)

Exit = +

Return $(Success) $(RefCount)

[DirectoryFromPath]

set Path = $($0)

set Directory = ""

Split-String $(Path) "\" PathComponents
QueryListSize Size $(PathComponents)

ifint $(Size) == 1
goto Exit
endif

ForListDo $(PathComponents)
ifint $(#) < $(Size)
set Directory = $(Directory)$($)
endif
EndForListDo

Return $(Directory)

[FilenameFromPath]

set Path = $($0)

Split-String $(Path) "\" PathComponents
QueryListSize Size $(PathComponents)

set Filename = *($(PathComponents), $(Size))

Return $(Filename)

[BaseFromFilename]

set Filename = $($0)

Split-String $(Filename) "." FilenameComponents
QueryListSize Size $(FilenameComponents)

set Dot = $(Size)
ifstr *($(FilenameComponents), $(Dot)) == "."

goto Make
endif

set-sub Dot = $(Dot), 1
ifstr *($(FilenameComponents), $(Dot)) == "."

goto Make
endif

set Base = $(Filename)
goto Exit

Make = +

set Base = ""
ForListDo $(FilenameComponents)
ifint $(#) < $(Dot)
set Base = $(Base)$($)
endif
EndForListDo

Exit = +

Return $(Base)

[ExtensionFromFilename]

set Filename = $($0)

set Extension = ""

Split-String $(Filename) "." FilenameComponents
QueryListSize Size $(FilenameComponents)

set Dot = $(Size)
ifstr *($(FilenameComponents), $(Dot)) == "."

goto Exit
endif

set-sub Dot = $(Dot), 1
ifstr *($(FilenameComponents), $(Dot)) == "."

goto Make
endif

goto Exit

Make = +

set Extension = *($(FilenameComponents), Size)

Exit = +

Return $(Extension)

[BaseFromPath]

set Path = $($0)

shell "" FilenameFromPath $(Path)
set Filename = $($R0)

shell "" BaseFromFilename $(Filename)
set Base = $($R0)

Return $(Base)

[MakeRegKey]

set KeyRoot = $($0)
set Data = $($1)

set KeyName = *($(Data), 1)

OpenRegKey $(KeyRoot) "" $(KeyName) 33554432 KeyResult
ifstr $(KeyResult) == ""
CreateRegKey $(KeyRoot) $(Data) "" 33554432 "" KeyResult
endif

Return $(KeyResult)

[SetRegValueByKey]

set Type = $($0)
set Key = $($1)
set ValueName = $($2)
set Value = $($3)

set Success = 0

set ValueData = { $(ValueName), 0, $(Type), $(Value) }

SetRegValue $(Key) $(ValueData)
ifint $(RegLastError) == 0
set Success = 1
endif

Return $(Success)

[GetRegValueByKey]
read-syms GlobalConstants

set Type = $($0)
set Key = $($1)
set ValueName = $($2)

set Success = 0
set Value = ""

GetRegValue $(Key) $(ValueName) ValueData
ifint $(RegLastError) != 0
goto Exit
endif

set Value = *($(ValueData), 4)

ifstr(i) $(Type) != $(TYPECHECK_NONE)
set TypeRead = *($(ValueData), 3)
ifstr(i) $(TypeRead) != $(Type)

goto Exit
endif
endif

set Success = 1

Exit = +

Return $(Success) $(Value)

[DefaultGetRegValueByKey]

set Type = $($0)
set Key = $($1)
set ValueName = $($2)
set Default = $($3)

set Value = $(Default)

shell "" GetRegValueByKey $(Type) $(Key) $(ValueName)
ifint $($R0) == 1
set Value = $($R1)
endif

Return $(Value)

[SetRegValueByName]

set Type = $($0)
set Path = $($1)
set ValueName = $($2)
set Value = $($3)

set Success = 0

shell "" MakeRegKey $(!REG_H_LOCAL) { $(Path), 0, "GenericClass" } 
set Key = $($R0)
ifstr $(Key) == ""
ifint 0 == 0 
goto Exit 
endif
endif

shell "" SetRegValueByKey $(Type) $(Key) $(ValueName) $(Value)
ifint $($R0) == 0 
goto Exit 
endif

set Success = 1

CloseRegKey $(Key)

Exit = +

Return $(Success)

[GetRegValueByName]

set Type = $($0)
set Path = $($1)
set ValueName = $($2)

set Success = 0
set Value = ""

OpenRegKey $(!REG_H_LOCAL) "" $(Path) 33554432 Key
ifstr $(Key) == ""
goto Exit
endif

shell "" GetRegValueByKey $(Type) $(Key) $(ValueName)
ifint $($R0) == 0
goto Exit
endif

set Success = 1
set Value = $($R1)

CloseRegKey $(Key)

Exit = +

Return $(Success) $(Value)

[SetValuesFromList]

set Key = $($0)
set List = $($1)

set Success = 0

shell "utility.inf" AddValueList $(Key) $(List)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Exit 
endif
ifstr(i) $($R0) != "NO_ERROR" 
set _UE = 1 
else 
set _UE = 0 
endif 
ifint $(_UE) == 1 

shell "" GetRegistryErrorString $($R0) 
shell "" SetupMessage "FATAL" $($R0) 
endif 
ifint $(_UE) == 1 
goto Exit 
endif

set Success = 1

Exit = +

Return $(Success)

[CloseOpenRegKey]

set Key = $($0)

ifstr $(Key) != ""
CloseRegKey $(Key)
endif

Return

[CloseOpenRegKeyList]

set KeyList = $($0)

ForListDo $(KeyList)
shell "" CloseOpenRegKey $($)
EndForListDo

Return

[CopyRegValues]

set KeySource = $($0)
set KeyDestination = $($1)

set Success = 0

ifstr $(KeySource) == ""
goto Error
endif

ifstr $(KeyDestination) == ""
goto Error
endif

EnumRegValue $(KeySource) ValueList

shell "" SetValuesFromList $(KeyDestination) $(ValueList)
ifint $($R0) == 0 
goto Error 
endif

Exit = +
set Success = 1

Error = +

Return $(Success)

[CopyRegTree]

set KeySource = $($0)
set KeyDestination = $($1)

set Success = 0

shell "" CopyRegValues $(KeySource) $(KeyDestination)
ifint $($R0) == 0 
goto Error 
endif

EnumRegKey $(KeySource) SourceSubKeyList
QueryListSize NumSubKeys $(SourceSubKeyList)
ifint $(NumSubKeys) == 0
goto Exit
endif

ForListDo $(SourceSubKeyList)
set SubKeyName = *($($), 1)

OpenRegKey $(KeySource) "" $(SubKeyName) 33554432 KeySourceSubKey
ifstr $(KeySourceSubKey) == ""
;
endif

shell "" MakeRegKey $(KeyDestination) { $(SubKeyName), 0, "GenericClass" } 
set KeyDestinationSubKey = $($R0)

shell "" CopyRegTree $(KeySourceSubKey) $(KeyDestinationSubKey)
ifint $($R0) == 0 
goto Error 
endif

shell "" CloseOpenRegKey $(KeySourceSubKey)
shell "" CloseOpenRegKey $(KeyDestinationSubKey)
EndForListDo

Exit = +
set Success = 1

Error = +

Return $(Success)

[OpenServiceParamKey]

set ServiceName = $($0)

set KeyParameters = ""

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters" 33554432 KeyParameters

Return $(KeyParameters)

[SystemDate]
DateList = {} ? $(!LIBHANDLE) GetSystemDate

[ShellCodeError]

read-syms ShellCodeError-$(!STF_LANGUAGE)

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"

Return

[SetupMessage]

set Type = $($0)
set Message = $($1)

set Status = "STATUS_FAILURE"
set Button = ""

shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) $(Type) $(Message)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Exit 
endif

set Status = $($R0)
set Button = $($R1)

Exit = +

Return $(Status) $(Button)

[StatusMessage]
shell "" SetupMessage "STATUS" $($0)
Return $($R0)

[MessageBox]

set Title = $($0)
set Text = $($1)
set Type = $($2)
set Icon = $($3)
set DefButton = $($4)

ifstr(i) $(Type) == ""
set Type = 1
endif

ifstr(i) $(Icon) == ""
set Icon = 2
endif

ifstr(i) $(DefButton) == EMPTY_ST
set DefButton = 1
endif

set DlgType = "MessageBox"
set STF_MB_TITLE = $(Title)
set STF_MB_TEXT  = $(Text)
set STF_MB_TYPE  = $(Type)
set STF_MB_ICON  = $(Icon)
set STF_MB_DEF   = $(DefButton)
ui start "MessageBox"

Exit = +

Return $(DLGEVENT)

[GetRegistryErrorString]

set ErrorString = $(GenericError)

shell "utility.inf" RegistryErrorString $($0)
ifint $($ShellCode) != $(!SHELL_CODE_OK) 
set _SE = 1 
else 
set _SE = 0 
endif 
ifint $(_SE) == 1 

shell "" ShellCodeError 
endif 
ifint $(_SE) == 1 
goto Exit 
endif

set ErrorString = $($R0)

Exit = +

Return $(ErrorString)

[GetElapsedTime]
Detect SystemDate

set ElapsedTime = *($(DateList), 1)

Return $(ElapsedTime)

[GetNTVersion]

shell "" GetRegValueByName $(!REG_VT_SZ) "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" "CurrentVersion"

set Version = $($R1)

Return $(Version)

[Boolean-Not]

set A = $($0)

ifint $(A) == 1
set Result = 0
else
set Result = 1
endif

Return $(Result)

[Boolean-Or]

set A = $($0)
set B = $($1)

ifint $(A) == 1
set Result = 1
else
set Result = $(B)
endif

Return $(Result)

[Boolean-And]

set A = $($0)
set B = $($1)

ifint $(A) == 1
set Result = $(B)
else
set Result = 0
endif

Return $(Result)

[Boolean-Xor]

set A = $($0)
set B = $($1)

ifint $(A) == 1
shell "" Boolean-Not $(B) 
set Result = $($R0)
else
set Result = $(B)
endif

Return $(Result)

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

[Files-Detect]
1, DigiDtct.dll, SIZE=57470, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Detect-Driver]
1, DigiPci.sys, SIZE=3158, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Redistributable]

1, mfc42.dll, SIZE=995383, OVERWRITE=OLDER, VERSION="6,0,8168,0"
1, msvcrt.dll, SIZE=266293, OVERWRITE=OLDER, VERSION="6,0,8397,0"

[Files-Config]
1, DigiInf.dll, SIZE=77953, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiFWrk.dll, SIZE=229507, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DxbMgt.dll, SIZE=102516, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiPamA.exe, SIZE=82040, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Delete]
1, DigiRas.gid
1, DigiCfg.inf
1, DigiCfg.pnf

[Files-SxbDiag]
1, SxbDiag.exe
1, SxbDiag.cnt
1, SxbDiag.hlp

[Files-SNMP]

[Files-Config-Houston]
1, DigiHLC.dll, SIZE=155777, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiDBP.dll, SIZE=135297, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiAsyn.dll, SIZE=61571, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiIsdn.dll, SIZE=41091, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiRAS.hlp, SIZE=92665

[Files-Diags-Houston]
1, DigiView.exe, SIZE=614520, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiView.hlp, SIZE=108021
1, DigiView.cnt, SIZE=923

[Files-Driver-Houston]
1, DigiDxb.sys, SIZE=61622, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiAsyn.sys, SIZE=33209, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiIsdn.sys, SIZE=22840, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Firmware-Houston]
FEPPCI = 1, FepDense.Bin, SIZE=1966080

[Files-Config-London]
1, DigiHLC.dll, SIZE=155777, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiDBP.dll, SIZE=135297, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiAsyn.dll, SIZE=61571, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiIsdn.dll, SIZE=41091, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiRAS.hlp, SIZE=92665

[Files-Diags-London]
1, DigiView.exe, SIZE=614520, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiView.hlp, SIZE=108021
1, DigiView.cnt, SIZE=923

[Files-Driver-London]
1, DigiDxb.sys, SIZE=61622, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiAsyn.sys, SIZE=33209, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiIsdn.sys, SIZE=22840, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Firmware-London]
FEPPCI = 1, FepDense.Bin, SIZE=1966080

[Files-Config-Chaska]
1, DigiHLC.dll, SIZE=155777, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiDBP.dll, SIZE=135297, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiAsyn.dll, SIZE=61571, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiIsdn.dll, SIZE=41091, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiRAS.hlp, SIZE=92665

[Files-Diags-Chaska]
1, DigiView.exe, SIZE=614520, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiView.hlp, SIZE=108021
1, DigiView.cnt, SIZE=923

[Files-Driver-Chaska]
1, DigiDxb.sys, SIZE=61622, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiAsyn.sys, SIZE=33209, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Firmware-Chaska]
FEPPCI = 1, FepDense.Bin, SIZE=1966080

[Files-Modem]
1, MdmDgDen.inf, SIZE=25000

[Files-Config-Clydesdale]
1, DigiClyd.dll, SIZE=49279, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiFrX.dll, SIZE=200833, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiSna.dll, SIZE=36993, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiPPP.dll, SIZE=32893, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiRAS.hlp, SIZE=92665

[Files-Driver-Clydesdale]
1, DigiDxb.sys, SIZE=61622, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiLan.sys, SIZE=17782, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiWanX.sys, SIZE=27640, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiPPP.sys, SIZE=21594, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Diags-Clydesdale]
1, DigiView.exe, SIZE=614520, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiView.hlp, SIZE=108021
1, DigiView.cnt, SIZE=923

[Files-SNA-Driver-Clydesdale]
1, DigiSna.sys, SIZE=14934, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-SNA-Config-Clydesdale]
1, DigSDCfg.dll, SIZE=131195, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigXCfg.dll, SIZE=135289, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiCSNT.dll, SIZE=36988, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Firmware-Clydesdale]
FEPPCI = 1, FepClyde.Bin, SIZE=457624

[Files-Driver-Sync570]
1, DigiSoh.sys, SIZE=675706, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, Dg570mp.sys, SIZE=30996, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiLan.sys, SIZE=17782, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiWanX.sys, SIZE=27640, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiPPP.sys, SIZE=21594, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Config-Sync570]
1, DigiClyd.dll, SIZE=49279, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiFrX.dll, SIZE=200833, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiSna.dll, SIZE=36993, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiPPP.dll, SIZE=32893, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiRAS.hlp, SIZE=92665

[Files-SNA-Driver-Sync570]
1, DigiSna.sys, SIZE=14934, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-SNA-Config-Sync570]
1, DigSDCfg.dll, SIZE=131195, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigXCfg.dll, SIZE=135289, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiCSNT.dll, SIZE=36988, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Diags-Sync570]
1, DigiView.exe, SIZE=614520, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiView.hlp, SIZE=108021
1, DigiView.cnt, SIZE=923

[Files-PERFMON-Streams]
1, sohperf.dll, SIZE=77950, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiDlg.dll, SIZE=82046, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, sohctrs.ini, SIZE=2082
1, sohctrs.h, SIZE=1248
1, sohperf.reg, SIZE=439

[Files-Config-AccelePort2000]
1, DigiHLC.dll, SIZE=155777, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiDBP.dll, SIZE=135297, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiAsyn.dll, SIZE=61571, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiIsdn.dll, SIZE=41091, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiRAS.hlp, SIZE=92665

[Files-Driver-AccelePort2000]
1, DigiDxb.sys, SIZE=61622, OVERWRITE=OLDER, VERSION="4,0,219,0"
1, DigiAsyn.sys, SIZE=33209, OVERWRITE=OLDER, VERSION="4,0,219,0"

[Files-Firmware-AccelePort2000]
FEPPCI = 1, FepHerc.Bin, SIZE=192512

[LanguagesSupported]
ENG

[InstallOptionsText-4.0-ENG]

DigiRAS = "Digi RAS Family Adapter"

PowerSync = "Digi DataFire Sync 2000"

Sync570 = "Digi Sync570"

AccelePort2000 = "Digi AccelePort Xp Adapter"

[InstallOptionsText-3.51-ENG]

DigiRAS = "Digi RAS Family Adapter"

[UpdateOptionsText-4.0-ENG]
"Houston" = "DataFire RAS P/T/E"
"London" = "DataFire RAS B Series"
"Chaska" = "AccelePort RAS 4/8"
"Clydesdale" = "DataFire Sync 2000"

"Sync570" = "DataFire Sync/570"
"AccelePort2000" = "Digi AccelePort Xp Family"

[UpdateOptionsText-3.51-ENG]
"Houston" = "DataFire RAS P/T/E"
"London" = "DataFire RAS B Series"
"Chaska" = "AccelePort RAS 4/8"

[InstallProgress-Strings-ENG]
ProCaption   = $(AdapterDescription)" Setup"
ProCancel    = "Cancel"
ProCancelMsg = $(AdapterDescription)" is not correctly installed."$(!LF)$(!LF)+
"Are you sure you want to cancel copying files?"
ProCancelCap = "Cancel "$(AdapterDescription)" Setup?"
ProText1     = "Copying:"
ProText2     = "To:"

[UpdateProgress-Strings-ENG]
ProCaption   = "Digi Software Update"
ProCancel    = "Cancel"
ProCancelMsg = "The Digi Software Update is not complete.  Canceling now may have"$(!LF)+
"adverse effects on the operation of any Digi adapters currently"$(!LF)+
"installed in this system."$(!LF)$(!LF)+
"Are you sure you want to cancel copying files?"
ProCancelCap = "Cancel Digi Software Update?"
ProText1     = "Copying:"
ProText2     = "To:"

[Streams-Strings-ENG]
HumanName = "Streams On Host"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[Sync570-Strings-ENG]
HumanName = "Sync/570 MiniPort"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[Houston-Strings-ENG]
HumanName = "DataFire RAS P/T/E"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[London-Strings-ENG]
HumanName = "DataFire RAS B Series"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[Chaska-Strings-ENG]
HumanName = "AccelePort RAS 4/8"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[Clydesdale-Strings-ENG]
HumanName = "DataFire Sync 2000"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[AccelePort2000-Strings-ENG]
HumanName = "AccelePort Xp Family"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[PCI-Strings-ENG]
HumanName = "PCI Adapter Identification"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[PAMA-Strings-ENG]
HumanName = "PortAssist Manager Communication Agent"
DriverDescription	         = "Digi "$(HumanName)
DriverTitle		            = "Digi "$(HumanName)
AdapterDescription	      = "Digi "$(HumanName)
AdapterTitle		         = "Digi "$(HumanName)

[X25-Strings-ENG]
HumanName = "X.25"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[X25L-Strings-ENG]
HumanName = "LAN"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[FR-Strings-ENG]
HumanName = "LAN"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[SNA-Strings-ENG]
HumanName = "SNA"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[PPP-Strings-ENG]
HumanName = "PPP"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[ASYN-Strings-ENG]
HumanName = "ASYN"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[ISDN-Strings-ENG]
HumanName = "ISDN"
DriverDescription	         = "Digi "$(HumanName)" Driver"
DriverTitle		            = "Digi "$(HumanName)" Driver"
AdapterDescription	      = "Digi "$(HumanName)" Adapter"
AdapterTitle		         = "Digi "$(HumanName)" Adapter"

[UpdateMessages-4.0-ENG]
UpdateWarningTitle = "Digi Software Update"
UpdateWarning  = "You have selected to update your current Digi software.  Please note that"$(!LF)+
"this is a comprehensive update for all of the following adapters:"$(!LF)$(!LF)+
$(!TAB)"DataFire RAS P/T/E"$(!LF)+
$(!TAB)"DataFire RAS B Series"$(!LF)+
$(!TAB)"AccelePort RAS 4/8"$(!LF)+
$(!TAB)"DataFire Sync 2000"$(!LF)+
$(!TAB)"DataFire SYNC/570"$(!LF)$(!LF)+
$(!TAB)"AccelePort Xp Family"$(!LF)$(!LF)+
"By continuing, all adapters of these types currently installed in this"$(!LF)+
"system will be updated to this newer version of software."$(!LF)+
"Do you wish to continue with this update?"
AlreadyUpdated = "This software has already been updated to the latest version."
UpdateFailed   = "The Digi Software Update failed."
UpdateSucceded = "The Digi Software Update completed successfully."

[UpdateMessages-3.51-ENG]
UpdateWarningTitle = "Digi Software Update"
UpdateWarning  = "You have selected to update your current Digi software.  Please note that"$(!LF)+
"this is a comprehensive update for all of the following adapters:"$(!LF)$(!LF)+
$(!TAB)"DataFire RAS P/T/E"$(!LF)+
$(!TAB)"DataFire RAS B Series"$(!LF)+
$(!TAB)"AccelePort RAS 4/8"$(!LF)$(!LF)+
"By continuing, all adapters of these types currently installed in this"$(!LF)+
"system will be updated to this newer version of software."$(!LF)+
"Do you wish to continue with this update?"
AlreadyUpdated = "This software has already been updated to the latest version."
UpdateFailed   = "The Digi Software Update failed."
UpdateSucceded = "The Digi Software Update completed successfully."

[InstallMessages-ENG]
NoNetworkCard        = "Network card is not present in the system."
BusTypeNotSupported  = "This adapter cannot be installed using the bus type you have selected."
CfgDllFailed         = "The configuration DLL failed to load."
UserCanceledInstall  = "Installation of the software has been canceled."
UpdateLater          = "Remember, you can still update your software by pressing the Update button"$(!LF)+
"in the Network Control Panel, then enter the path to this INF."
UpdateNowTitle       = "Update software now?"
UpdateNow            = "An older version of this software is already installed."$(!LF)$(!LF)+
"In order to continue, setup must update your old software."$(!LF)+
"Do you wish to proceed with updating your old software now?"
NewerInstalled       = "A newer version of this software is already installed."
DeleteCheckTitle     = "Install Adapter"
DeleteCheck          = "One or more previously installed services are marked for deletion."$(!LF)$(!LF)+
"A reboot is required before an adapter can be installed."
CannotRemoveThisService = "This service cannot be removed.  "+
"Remove your Digi adapter to remove this service."

[InvokeRasDlg-ENG]
InvokeRasTitle       =  "Invoke RAS setup?"
InvokeRasConfigMsg   =	"In order to enable you to use your Digi adapter with Remote Access Services (RAS), "$(!LF)+
"you must configure one or more ports in RAS setup.  "$(!LF)$(!LF)+
"Do you wish to invoke RAS setup now?"
RemindRasConfigMsg   =	"Remote Access Services (RAS) is not installed.  "$(!LF)$(!LF)+
"Please remember to install Remote Access Services (RAS) to enable you "$(!LF)+
"to use RAS ports with your Digi adapter."
InvokeRasError       =	"Setup encountered an error while invoking the RAS setup INF file (OEMNSVRA.INF)."

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

[IconInfoENG]
IconGroupName = "Digi PortAssist Viewer"
IconDiagName  = "PortAssist Viewer"
IconDiagHelp  = "PortAssist Viewer Help"
IconCfgHelp   = "Digi Adapter Help"
IconRelNotes  = "Release Notes"

[SNMPMessages-ENG]
InstallError = "Due to an error, SNMP support will not be installed at this time."

[RegistryErrorString-ENG]
GenericError = "An unknown registry error has occurred."

[ShellCodeError-ENG]
ShellCodeErrorTitle = "Error!"
ShellCodeErrorText = "Shell code error!"

[AddStreamsService]

read-syms DriverConstants
read-syms DriverConstants-Streams

set Installed = 1

shell "" AddService "Streams"
ifint $($R0) == 0 
goto Error 
endif

shell "" InstallPerfMon "Streams"

shell "" AddGroupToServiceGroupOrder $(MiniPortDependOnGroup) $(DStreamsDependOnGroup)
ifint $($R0) == 0 
goto Error 
endif

goto Exit

Error = +

set Installed = 0

Exit = +

Return $(Installed)

[AddAdapterToMiniportAdapters]

set AdapterName = $($0)

read-syms DriverConstants-Streams

set Status = "STATUS_SUCCESSFUL"

set KeyParameters = ""
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductSoftwareName)"\Parameters" 33554432 KeyParameters
ifstr $(KeyParameters) == ""
set Status = "STATUS_UNSUCCESSFUL"
goto Exit
endif

shell "" MakeRegKey $(KeyParameters) { $(MiniportAdapterKey), 0, "GenericClass" } 
set KeyMiniportAdapters = $($R0)
shell "" MakeRegKey $(KeyMiniportAdapters) { $(AdapterName), 0, "GenericClass" } 
set KeyService = $($R0)
shell "" CloseOpenRegKey $(KeyService)
shell "" CloseOpenRegKey $(KeyMiniportAdapters)
shell "" CloseOpenRegKey $(KeyParameters)

Exit = +

Return $(Status)

[RemoveAdapterFromMiniportAdapters]

set AdapterName = $($0)

read-syms GlobalConstants
read-syms DriverConstants-Streams

set Status = "STATUS_SUCCESSFUL"

set KeyMiniportAdapters = ""
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductSoftwareName)"\Parameters\"$(MiniportAdapterKey) 33554432 KeyMiniportAdapters
ifstr $(KeyMiniportAdapters) == ""
set Status = "STATUS_UNSUCCESSFUL"
goto Exit
endif

DeleteRegKey $(KeyMiniportAdapters) $(AdapterName)
EnumRegKey $(KeyMiniportAdapters) MiniportAdaptersList
shell "" CloseOpenRegKey $(KeyMiniportAdapters)

QueryListSize NumMiniportAdapters $(MiniportAdaptersList)

ifint $(NumMiniportAdapters) == 0

shell "" RemoveGroupFromServiceGroupOrder $(MiniPortDependOnGroup)

shell "" UnInstallPerfMon "Streams"

shell "utility.inf" RemoveSoftwareComponent $(Manufacturer) $(ProductSoftwareName)

endif

Exit = +

Return $(Status)

[ConfigureAdapter-Houston]

set SrcDir = $($0)
set Option = $($1)
set KeyParameters = $($2)
set AdapterServiceName = $($3)

shell "" ConfigureAdapter $(SrcDir) $(Option) $(KeyParameters) $(AdapterServiceName) $(!STF_CWDDIR)"DigiInf.Dll" "Configure"

set Status = $($R0)
set NeedBindingReview = $($R1)

ifstr(i) $(Status) != "STATUS_SUCCESSFUL"
goto Exit
endif

ifstr(i) $(!NTN_InstallMode) == "Install"
shell "" InvokeRAS
endif

ifint $(NeedBindingReview) == 1
set Status = "STATUS_SUCCESSFUL"
else
set Status = "STATUS_REBOOT"
endif

Exit = +

Return $(Status)

[ConfigureAdapter-London]

set SrcDir = $($0)
set Option = $($1)
set KeyParameters = $($2)
set AdapterServiceName = $($3)

shell "" ConfigureAdapter $(SrcDir) $(Option) $(KeyParameters) $(AdapterServiceName) $(!STF_CWDDIR)"DigiInf.Dll" "Configure"

set Status = $($R0)
set NeedBindingReview = $($R1)

ifstr(i) $(Status) != "STATUS_SUCCESSFUL"
goto Exit
endif

ifstr(i) $(!NTN_InstallMode) == "Install"
shell "" InvokeRAS
endif

ifint $(NeedBindingReview) == 1
set Status = "STATUS_SUCCESSFUL"
else
set Status = "STATUS_REBOOT"
endif

Exit = +

Return $(Status)

[ConfigureAdapter-Chaska]

set SrcDir = $($0)
set Option = $($1)
set KeyParameters = $($2)
set AdapterServiceName = $($3)

shell "" ConfigureAdapter $(SrcDir) $(Option) $(KeyParameters) $(AdapterServiceName) $(!STF_CWDDIR)"DigiInf.Dll" "Configure"

set Status = $($R0)
set NeedBindingReview = $($R1)

ifstr(i) $(Status) != "STATUS_SUCCESSFUL"
goto Exit
endif

ifstr(i) $(!NTN_InstallMode) == "Install"
shell "" InvokeRAS
endif

ifint $(NeedBindingReview) == 1
set Status = "STATUS_SUCCESSFUL"
else
set Status = "STATUS_REBOOT"
endif

Exit = +

Return $(Status)

[ConfigureAdapter-Clydesdale]
read-syms DriverConstants-X25

set SrcDir = $($0)
set Option = $($1)
set KeyParameters = $($2)
set AdapterServiceName = $($3)

shell "" ConfigureAdapter $(SrcDir) $(Option) $(KeyParameters) $(AdapterServiceName) $(!STF_CWDDIR)"DigiInf.Dll" "Configure"

set Status = $($R0)
set NeedBindingReview = $($R1)

ifstr(i) $(Status) != "STATUS_SUCCESSFUL"
goto Exit
endif

set KeyX25Adapter = ""
set AdapterNumber = ""
set NumRasPorts = 0

shell "" FindAdapter $(ProductSoftwareName)
ifint $($R0) == 1
set AdapterNumber = $($R1)

shell "" OpenServiceParamKey $(ProductHardwareName)$(AdapterNumber) 
set KeyX25Adapter = $($R0)
ifstr $(KeyX25Adapter) != ""

shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeyX25Adapter) "NumRASPorts"
ifint $($R0) == 1
set NumRasPorts = $($R1)

endif
CloseRegKey $(KeyX25Adapter)

ifint $(NumRasPorts) == 0
set Start = 4
else
set Start = 2
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName) 33554432 KeyDriverService
shell "" SetRegValueByKey $(!REG_VT_DWORD) $(KeyDriverService) "Start" $(Start)

CloseRegKey $(KeyDriverService)

shell "" SetTapi "X25" $(AdapterNumber) $(NumRasPorts) 3
endif
endif

ifint $(NumRasPorts) > 0
ifstr(i) $(!NTN_InstallMode) == "Install"
shell "" InvokeRAS
endif
endif

ifint $(NeedBindingReview) == 1
set Status = "STATUS_SUCCESSFUL"
else
set Status = "STATUS_REBOOT"
endif

Exit = +

Return $(Status)

[ConfigureAdapter-Sync570]
read-syms DriverConstants-X25

set SrcDir = $($0)
set Option = $($1)
set KeyParameters = $($2)
set AdapterServiceName = $($3)

shell "" AddAdapterToMiniportAdapters $(AdapterServiceName)

shell "" ConfigureAdapter $(SrcDir) $(Option) $(KeyParameters) $(AdapterServiceName) $(!STF_CWDDIR)"DigiInf.Dll" "INFEntryPoint"

set Status = $($R0)
set NeedBindingReview = $($R1)

ifstr(i) $(Status) != "STATUS_SUCCESSFUL"
goto Exit
endif

set KeyX25Adapter = ""
set AdapterNumber = ""
set NumRasPorts = 0

shell "" FindAdapter $(ProductSoftwareName)
ifint $($R0) == 1
set AdapterNumber = $($R1)

shell "" OpenServiceParamKey $(ProductHardwareName)$(AdapterNumber) 
set KeyX25Adapter = $($R0)
ifstr $(KeyX25Adapter) != ""

shell "" GetRegValueByKey $(!REG_VT_DWORD) $(KeyX25Adapter) "NumRASPorts"
ifint $($R0) == 1
set NumRasPorts = $($R1)

endif
CloseRegKey $(KeyX25Adapter)

ifint $(NumRasPorts) == 0
set Start = 4
else
set Start = 2
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName) 33554432 KeyDriverService
shell "" SetRegValueByKey $(!REG_VT_DWORD) $(KeyDriverService) "Start" $(Start)

CloseRegKey $(KeyDriverService)

shell "" SetTapi "X25" $(AdapterNumber) $(NumRasPorts) 3
endif
endif

ifint $(NumRasPorts) > 0
ifstr(i) $(!NTN_InstallMode) == "Install"
shell "" InvokeRAS
endif
endif

ifint $(NeedBindingReview) == 1
set Status = "STATUS_SUCCESSFUL"
else
set Status = "STATUS_REBOOT"
endif

Exit = +

Return $(Status)

[ConfigureAdapter-AccelePort2000]

set SrcDir = $($0)
set Option = $($1)
set KeyParameters = $($2)
set AdapterServiceName = $($3)

shell "" ConfigureAdapter $(SrcDir) $(Option) $(KeyParameters) $(AdapterServiceName) $(!STF_CWDDIR)"DigiInf.Dll" "Configure"

set Status = $($R0)
set NeedBindingReview = $($R1)

ifstr(i) $(Status) != "STATUS_SUCCESSFUL"
goto Exit
endif

ifint $(NeedBindingReview) == 1
set Status = "STATUS_SUCCESSFUL"
else
set Status = "STATUS_REBOOT"
endif

Exit = +

Return $(Status)

[InstallPerfMon]

set Option = $($0)

read-syms DriverConstants
read-syms DriverConstants-$(Option)

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductSoftwareName) 33554432 KeyDriverService
ifstr $(KeyDriverService) == ""

endif

shell "" MakeRegKey $(KeyDriverService) { "Performance", 0, "GenericClass" } 
set KeyPerformance = $($R0)
ifstr $(KeyPerformance) == ""
ifint 0 == 0 
goto "Cannot mke the performance key" 
endif
endif

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyPerformance) "Library" $(PerfLibrary)

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyPerformance) "Open"    $(PerfOpen)

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyPerformance) "Collect" $(PerfCollect)

shell "" SetRegValueByKey $(!REG_VT_SZ) $(KeyPerformance) "Close"   $(PerfClose)

CloseRegKey $(KeyDriverService)

LoadLibrary "x" $(!STF_WINDOWSSYSPATH)\DigiDlg.dll !DIGIDLGHANDLE
Set FLibraryErrCtl = 1
LibraryProcedure Result $(!DIGIDLGHANDLE) PerfMonUtilities $(!STF_WINDOWSSYSPATH)"\lodctr.exe "$(PerfLoadIni)
Set FLibraryErrCtl = 0

FreeLibrary $(!DIGIDLGHANDLE)

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EventLog\System" 33554432 KeyEventLog
ifstr $(KeyEventLog) == ""

else

shell "" MakeRegKey $(KeyEventLog) { $(PerfEventLog), 0, "GenericClass" } 
set KeyEventLogAppl = $($R0)
Ifstr $(KeyEventLogAppl) != ""
shell "" SetRegValueByKey $(!REG_VT_EXPAND_SZ) $(KeyEventLogAppl) "EventMessageFile"   "%SystemRoot%\System32\"$(PerfLibrary)

set TypesSupported = 7
shell "" SetRegValueByKey $(!REG_VT_DWORD) $(KeyEventLogAppl) "TypesSupported" $(TypesSupported)

endif

endif

Return

[UnInstallPerfMon]

set Option = $($0)

read-syms DriverConstants
read-syms DriverConstants-$(Option)

LoadLibrary "x" $(!STF_WINDOWSSYSPATH)\DigiDlg.dll !DIGIDLGHANDLE
Set FLibraryErrCtl = 1
LibraryProcedure Result $(!DIGIDLGHANDLE) PerfMonUtilities $(!STF_WINDOWSSYSPATH)"\unlodctr.exe "$(ProductHardwareName)
Set FLibraryErrCtl = 0

FreeLibrary $(!DIGIDLGHANDLE)

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EventLog\System" 33554432 KeyEventLog
ifstr $(KeyEventLog) == ""

else
DeleteRegTree $(KeyEventLog) $(PerfEventLog)
endif

Return

[ConfigureAdapter-PAMA]

set SrcDir = $($0)
set Option = $($1)
set KeyParameters = $($2)
set AdapterServiceName = $($3)

set CfgDllPath = $(!STF_CWDDIR)"DigiInf.Dll"
set CfgDllEntry = "Configure"

set Status = "STATUS_USERCANCEL"

shell "subroutn.inf" PopBillboard
LoadLibrary "x" $(CfgDllPath) DIGIHANDLE

LibraryProcedure Result $(DIGIHANDLE) $(CfgDllEntry) $(!STF_HWND) $(Option) $(AdapterServiceName)

FreeLibrary $(DIGIHANDLE)

ifstr(i) $(Result) != "OK"
read-syms InstallMessages-$(!STF_LANGUAGE)
shell "" SetupMessage "FATAL" $(CfgDllFailed)
endif

Exit = +

Return $(Status)

[Signature]
FileType = MICROSOFT_FILE

[GetSignature]
read-syms Signature
Return $(FileType)

[Source Media Descriptions]
1 = "WAN Links for Windows NT CD-ROM"

[ProductType]
STF_PRODUCT = Winnt

STF_PLATFORM = I386

[PlatformsSupported]

PCI

[InstallOptions-4.0]

DigiRAS

PowerSync

Sync570

AccelePort2000

[InstallOptions-3.51]

DigiRAS

[UpdateOptions-4.0]
"Houston"
"London"
"Chaska"
"Clydesdale"

"Sync570"

"AccelePort2000"

[UpdateOptions-3.51]
"Houston"
"London"
"Chaska"

[Identify]
read-syms Identification

set Status = "STATUS_SUCCESSFUL"
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)

Exit = +

return $(Status) $(Identifier) $(Media)

[ReturnOptions]

set DesiredLanguage = $($0)
set DesiredPlatform = $($1)

set Status = "STATUS_FAILED"
set OptionList = {}
set OptionTextList = {}

set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $(DesiredLanguage) not-in $(LanguageList)
set Status = "STATUS_NOLANGUAGE"
goto Exit
endif

ifstr $(DesiredPlatform) != ""
set PlatformList = ^(PlatformsSupported, 1)
Ifcontains(i) $(DesiredPlatform) not-in $(PlatformList)
set Status = "STATUS_NOTSUPPORTED"
goto Exit
endif
endif

read-syms ProductType
ifstr(i) $(STF_PLATFORM) != $(!STF_PLATFORM)
set Status = "STATUS_NOTSUPPORTED"
goto Exit
endif

read-syms Identification

shell "" GetNTVersion
set !NTVER = $($R0)

set OptionList = ^($(!NTN_InstallMode)"Options-"$(!NTVER), 1)
set OptionTextList = ^($(!NTN_InstallMode)"OptionsText-"$(!NTVER)"-"$(DesiredLanguage), 1)

set Status = "STATUS_SUCCESSFUL"

Exit = +

return $(Status) $(OptionList) $(OptionTextList)

[InstallOption]

set Language = $($0)
set Option = $($1)
set SrcDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)

set Status = "STATUS_FAILED"

set-subst !LF = "\n"
set-subst !TAB = "\t"

shell "" GetNTVersion
set !NTVER = $($R0)

set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $(Language) not-in $(LanguageList)
set Status = "STATUS_NOLANGUAGE"
goto Error
endif

ifstr(i) $(!NTN_Origination) == "NCPA"
set Continue = $(OK)
endif

set Mode = "Install"
ifstr(i) $(!NTN_InstallMode) == $(Mode)
goto RunMode
endif

set Mode = "Deinstall"
ifstr(i) $(!NTN_InstallMode) == $(Mode)
goto RunMode
endif

set Mode = "Configure"
ifstr(i) $(!NTN_InstallMode) == $(Mode)
goto RunMode
endif

set Mode = "Bind"
ifstr(i) $(!NTN_InstallMode) == $(Mode)
goto RunMode
endif

set Mode = "Update"
ifstr(i) $(!NTN_InstallMode) == $(Mode)
goto RunMode
endif

goto Error

RunMode = +

shell "" $(Mode)Mode $(Option) $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig)
set Status = $($R0)

Error = +

ifstr(i) $(Status) == "STATUS_SUCCESSFUL"
goto Exit
endif

ifstr(i) $(Status) == "STATUS_REBOOT"
goto Exit
endif

ifstr(i) $(Status) == "STATUS_USERCANCEL"
goto Exit
endif

ifstr(i) "SETUP_FAIL" != "NO_ERROR" 
set DontCare = 1 
else 
set DontCare = 0 
endif 
ifint $(DontCare) == 1 

shell "" GetRegistryErrorString "SETUP_FAIL" 
shell "" SetupMessage "FATAL" $($R0) 
endif

Exit = +

return $(Status)
Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: ftp, load: 1.43