Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1131 lines
43 KiB

[Identification]
OptionType = NetTransport
[LanguagesSupported]
ENG
[Options]
atmarpc
[OptionsTextENG]
atmarpc = "IP over ATM (RFC 1577) Client"
[FileConstants]
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
SoftwareType = "transport"
TSoftwareType = "driver"
Exit_Code = 0
NetEventDLL = "%SystemRoot%\System32\netevent.dll"
Manufacturer = "Microsoft"
ProductMajorVersion = "1"
ProductMinorVersion = "0"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
TProductMajorVersion = "1"
TProductMinorVersion = "0"
TProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
ProductSoftwareName = "atmarpc"
ProductSoftwareImagePath = "\SystemRoot\System32\drivers\atmarpc.sys"
TProductSoftwareName = "ipatmarp"
TProductSoftwareImagePath = "\SystemRoot\System32\drivers\ipatmarp.sys"
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
TProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(TProductSoftwareName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductSoftwareName)"\Parameters"
ServiceKeyName = $(!NTN_ServiceBase)"\"$(ProductSoftwareName)
TServiceKeyName = $(!NTN_ServiceBase)"\"$(TProductSoftwareName)
LinkageKeyName = $(!NTN_ServiceBase)"\"$(ProductSoftwareName)"\Linkage"
TLinkageKeyName = $(!NTN_ServiceBase)"\"$(TProductSoftwareName)"\Linkage"
ProductRegBase = "SOFTWARE\Microsoft\atmarpc\CurrentVersion"
TProductRegBase = "SOFTWARE\Microsoft\ipatmarp\CurrentVersion"
; type = Name,Class
NetRuleSoftwareType = "atmarpc ipatmclient"
TNetRuleSoftwareType = "ipatmarpsys atmvirtualdriver ipatmarpdriver"
; Class = new class name {existing class name | basic no|yes }
NetRuleSoftwareClass = {"ipatmclient basic"}
TNetRuleSoftwareClass = {"ipatmarpdriver basic", "atmvirtualdriver basic"}
; Use = Service | Transport | driver | adapter, yes|no, yes|no
NetRuleSoftwareUse = $(SoftwareType)" no yes"
TNetRuleSoftwareUse = $(TSoftwareType)
; BindForm = ObjectName yes|no yes|no container|simple|stream
NetRuleSoftwareBindForm = """atmarpc"" yes no container"
TNetRuleSoftwareBindForm = """ipatmarpsys"" yes no container"
TNetRuleSoftwareBindable = {"ipatmarpdriver AtmArpVirtualAdapter non exclusive 100",+
"tcpipTransport atmvirtualdriver non non 100",+
"netbtTransport atmvirtualdriver non non 100"}
TcpipLLInterface = "AtmArpC"
TpcipUseZeroBroadcast = 0
[HardwareConstants]
ProductHardwareName = "ipatmarp"
ProductHardwareTitle = "Virtual ATMARP Interface Adapter"
ProductHardwareDescription = "ATMARP Interface Adapter"
NetRuleHardwareType = "ipatmarp AtmArpVirtualAdapter"
NetRuleHardwareBindForm = " yes yes container"
NetRuleHardwareClass = {"AtmArpVirtualAdapter basic"}
[GeneralConstants]
from = ""
to = ""
ExitCodeOk = 0
ExitCodeCancel = 1
ExitCodeFatal = 2
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
RegistryErrorIndex = NO_ERROR
KeyProduct = ""
KeyParameters = ""
TRUE = 1
FALSE = 0
NoTitle = 0
ExitState = "Active"
OldVersionExisted = $(FALSE)
DriverPath = $(!STF_NTPATH)\drivers
[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
[platform]
STF_PLATFORM = "" ? $(!LIBHANDLE) GetPlatform
[Identify]
read-syms Identification
set Status = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)
[ReturnOptions]
set Status = STATUS_FAILED
set OptionList = {}
set OptionTextList = {}
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
goto returnoptions
else
set Status = STATUS_NOLANGUAGE
goto finish_ReturnOptions
endif
returnoptions = +
set OptionList = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = +
Return $(Status) $(OptionList) $(OptionTextList)
[InstallOption]
set !DebugOutputControl = 1
set Option = $($1)
set SrcDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)
Debug-Output "ATMARPC: NTN_REGBASE is "$(!NTN_RegBase)
Debug-Output "ATMARPC: Arg 1"$($1)
Debug-Output "ATMARPC: Arg 2"$($2)
Debug-Output "ATMARPC: Arg 3"$($3)
Debug-Output "ATMARPC: Arg 4"$($4)
Debug-Output "ATMARPC: Arg 5"$($5)
Debug-Output "ATMARPC: Arg 6"$($6)
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) NOT-IN $(LanguageList)
Return STATUS_NOLANGUAGE
endif
Debug-Output "ATMARPC: STF_CWDDIR is: "$(!STF_CWDDIR)
Debug-Output "ATMARPC: STF_LANGUAGE is: "$(!STF_LANGUAGE)
set-subst LF = "\n"
read-syms GeneralConstants
read-syms FileConstants
read-syms HardwareConstants
read-syms DialogConstants$(!STF_LANGUAGE)
ifstr(i) $(!NTN_Origination) == "NCPA"
set Continue = $(OK)
endif
read-syms FileConstants$(!STF_LANGUAGE)
detect date
detect platform
set-title $(FunctionTitle)
set to = Begin
set from = Begin
set CommonStatus = STATUS_SUCCESSFUL
EndWait
Begin = +
Debug-Output "ATMARPC: Install mode "$(!NTN_InstallMode)
Debug-Output "ATMARPC: Registry base "$(!NTN_RegBase)
Ifstr(i) $(!NTN_InstallMode) == deinstall
set StartLabel = removeadapter
else-Ifstr(i) $(!NTN_InstallMode) == Update
set StartLabel = UpgradeSoftware
else-Ifstr(i) $(!NTN_InstallMode) == bind
set StartLabel = bindingadapter
else-Ifstr(i) $(!NTN_InstallMode) == configure
; Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
; ifint $($ShellCode) != $(!SHELL_CODE_OK)
; Debug-Output "ATMARPC: ShellCode error: cannot get an error string."
; goto ShellCodeError
; endif
; set Error = $($R0)
; set from = end
; set to = end
; goto nonfatalinfo
Goto successful
else
set StartLabel = installadapter
endif
set RadioDefault = 2
set RadioIn = {$(RadioDefault)}
set from = $(fatal)
set to = $(fatal)
goto $(StartLabel)
installadapter = +
Debug-Output "ATMARPC: Installadapter"
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
$(ProductVersion)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ATMARPC: ShellCode error: cannot get an error string."
goto ShellCodeError
endif
goto end
endif
CloseRegKey $(KeyProduct)
goto installproduct
installproduct = +
StartWait
ifint $(OldVersionExisted) == $(FALSE)
Ifstr(i) $(DoCopy) == "YES"
Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
Else-Ifstr(i) $($R0) == STATUS_FAILED
Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
Goto fatal
Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
Goto successful
Endif
Set SrcDir = $($R1)
Endif
Shell "" StripTrailSlash $(SrcDir)
set PlatformDir = $($R0)"\"$(STF_PLATFORM)
set InfDir = $($R0)"\"
install "Install-Option"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
endif
set OEM_ABANDON_ON = TRUE
Debug-Output "ATMARPC: AddSoftwareing "$(ProductSoftwareName)" now"
Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName), +
$(ProductSoftwareName), +
$(ProductSoftwareDisplayName), $(STF_CONTEXTINFNAME), +
$(ProductSoftwareImagePath), "kernel", "PNP_TDI", {}, "",+
$(NetEventDLL)
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
Debug-Output "ATMARPC: ** Failed to Add myself -- 1"
goto fatalRegistry
endif
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
Set SoftServiceKey = $($R3)
set SoftParameterKey = $($R4)
Set SoftLinkageKey = $($R5)
set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
{Review,$(NoTitle),$(!REG_VT_DWORD),1},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
set RegistryErrorIndex = $($R0)
Ifstr $(RegistryErrorIndex) != NO_ERROR
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
goto fatalRegistry
endif
; Setup the bindings net rules
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)}, +
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
set RegistryErrorIndex = $($R0)
Ifstr $(RegistryErrorIndex) != NO_ERROR
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
goto fatalRegistry
endif
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
; Dummy driver now
set OEM_ABANDON_ON = TRUE
Debug-Output "ATMARPC: AddSoftwareing "$(TProductSoftwareName)" now"
Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
$(TProductSoftwareName), +
$(TProductSoftwareName), +
$(TProductSoftwareDisplayName), $(STF_CONTEXTINFNAME), +
$(TProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
$(NetEventDLL)
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "ATMARPC: ** Failed to Add myself -- 2"
goto fatalRegistry
endif
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
Set SoftServiceKey = $($R3)
set SoftParameterKey = $($R4)
Set SoftLinkageKey = $($R5)
Debug-Output "ATMARPC: Bind: SoftProductKey is "$(SoftProductKey)
Debug-Output "ATMARPC: Bind: SoftNetRuleKey is "$(SoftNetRuleKey)
Debug-Output "ATMARPC: Bind: SoftServiceKey is "$(SoftServiceKey)
Debug-Output "ATMARPC: Bind: SoftParameterKey is "$(SoftParameterKey)
Debug-Output "ATMARPC: Bind: SoftLinkageKey is "$(SoftLinkageKey)
set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(TSoftwareType)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(TProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(TProductMinorVersion)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(TProductSoftwareTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(TProductSoftwareDescription)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(TProductSoftwareName)},+
{Review,$(NoTitle),$(!REG_VT_DWORD),1},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
set RegistryErrorIndex = $($R0)
Ifstr $(RegistryErrorIndex) != NO_ERROR
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
goto fatalRegistry
endif
; Setup the bindings net rules
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(TNetRuleSoftwareType)}, +
{use,$(NoTitle),$(!REG_VT_SZ),$(TNetRuleSoftwareUse)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TNetRuleSoftwareClass)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TNetRuleSoftwareBindForm)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TNetRuleSoftwareBindable)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
set RegistryErrorIndex = $($R0)
Ifstr $(RegistryErrorIndex) != NO_ERROR
Debug-Output "ATMARPC: failed to add netrules for dummy driver"
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
goto fatalRegistry
endif
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
endif
goto successful
bindingadapter =+
; Trying to avoid "cannot start service" for dummy driver by setting its
; Start type to "Manual" rather than "Automatic"
;
Debug-Output "ATMARPC: Updating Start value to 3 for "$(TServiceKeyName)
OpenRegKey $(!REG_H_LOCAL) "" $(TServiceKeyName) $(MAXIMUM_ALLOWED) TServiceKey
ifstr(i) $(TServiceKey) != ""
set ModuleStartValue = 3
set NewValueList = {{Start,$(NoTitle),$(!REG_VT_DWORD),$(ModuleStartValue)}}
Shell $(UtilityInf), AddValueList, $(TServiceKey), $(NewValueList)
Debug-Output "Set start value to 3 under "$(TServiceKeyName)
CloseRegKey $(TServiceKey)
endif
ifstr(i) $(!NTN_RegBase) == $(ProductRegBase)
Debug-Output "ATMARPC: Binding Adapter, LinkageKeyName "$(LinkageKeyName)
OpenRegKey $(!REG_H_LOCAL) "" $(LinkageKeyName) $(MAXIMUM_ALLOWED) LinkageKey
ifstr(i) $(LinkageKey) != ""
GetRegValue $(LinkageKey) "Bind" BindList
Debug-Output "BindList: "$(BindList)
Set Binding = *($(BindList),4)
Debug-Output "Binding: "$(Binding)
CloseRegKey $(LinkageKey)
else
Debug-Output "failed to open linkage for adapter"
goto fatalregistry
endif
set CardList = {}
set CreateCardList = {}
ForListDo $(Binding)
Split-String $($), "\", BindInfo
QueryListSize BindListSize $(BindInfo)
set CardName = *($(BindInfo),$(BindListSize))
Debug-Output "Cardname: "$(CardName)
ifstr(i) $(CardList) == {}
set CardList = {$(CardName)}
else
set CardList = >($(CardList),$(CardName))
endif
EndForListDo
Set AddedNewVirtualAdapter = "No"
Debug-Output "Cardlist: "$(CardList)
ForListDo $(CardList)
;
; For each real adapter we are bound to, we create a Logical IP Subnet (LIS).
; As of now, we create exactly ONE LIS, LIS0. For each LIS created, we
; AddHardwareComponent a dummy adapter, which is bindable to TCP/IP etc.
;
Debug-Output "Will create LIS0 for "$($)
Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\AtmArpC"
Debug-Output "about to open "$(RegKey)
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) ArpParamsKey
ifstr(i) $(ArpParamsKey) == ""
Debug-Output "creating ArpParamsKey key under the adapter"
CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" ArpParamsKey
else
Debug-Output "ATMARPC: Have processed "$($)" already"
CloseRegKey $(ArpParamsKey)
goto continueCardList
endif
ifstr(i) $(ArpParamsKey) == ""
Debug-Output "Failed to open/create the ArpParamsKey key under the adapter"
goto fatalRegistry
endif
Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\atmarpc\LIS0"
Debug-Output "about to open "$(RegKey)
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) LISKey
ifstr(i) $(LISKey) == ""
Debug-Output "creating LIS0 key under the adapter"
CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" LISKey
endif
set DefaultSapSelector = 1
set DefaultPVCOnly = 0
;
; All timeouts and intervals are in terms of seconds.
;
set DefaultServerConnectInterval = 5
set DefaultServerRegistrationTimeout = 3
set DefaultAddressResolutionTimeout = 3
set DefaultARPEntryAgingTimeout = 900
set DefaultInARPWaitTimeout = 5
set DefaultServerRefreshTimeout = 900
set DefaultMinWaitAfterNak = 10
set DefaultMaxRegistrationAttempts = 5
set DefaultMaxResolutionAttempts = 4
;
; Bandwidth is in bytes/sec
;
set DefaultSendBandwidth = 50000
set DefaultRecvBandwidth = 50000
set DefaultSendMaxSize = 65535
set DefaultRecvMaxSize = 65535
; Default MTU size, in bytes. This is what is reported to the IP layer.
; If this value isn't present, the ATMARP Client will use the value of
; Max AAL5 packet size supported by the miniport as the MTU.
set DefaultMTUSize = 9180
;
; FlowInfoEnabled is set to 1 if we want the ATMARP Client to look below the
; FlowInfo subkey for information about configured flows. If FlowInfoEnabled
; is set to 0, the client will ignore all configured flow info.
;
set DefaultFlowInfoEnabled = 0
set NewValueList = {{SapSelector,$(NoTitle),$(!REG_VT_DWORD),$(DefaultSapSelector)},+
{ServerConnectInterval,$(NoTitle),$(!REG_VT_DWORD),$(DefaultServerConnectInterval)},+
{ServerRegistrationTimeout,$(NoTitle),$(!REG_VT_DWORD),$(DefaultServerRegistrationTimeout)},+
{AddressResolutionTimeout,$(NoTitle),$(!REG_VT_DWORD),$(DefaultAddressResolutionTimeout)},+
{ARPEntryAgingTimeout,$(NoTitle),$(!REG_VT_DWORD),$(DefaultARPEntryAgingTimeout)},+
{InARPWaitTimeout,$(NoTitle),$(!REG_VT_DWORD),$(DefaultInARPWaitTimeout)},+
{ServerRefreshTimeout,$(NoTitle),$(!REG_VT_DWORD),$(DefaultServerRefreshTimeout)},+
{MinWaitAfterNak,$(NoTitle),$(!REG_VT_DWORD),$(DefaultMinWaitAfterNak)},+
{MaxRegistrationAttempts,$(NoTitle),$(!REG_VT_DWORD),$(DefaultMaxRegistrationAttempts)},+
{MaxResolutionAttempts,$(NoTitle),$(!REG_VT_DWORD),$(DefaultMaxResolutionAttempts)},+
{MTU,$(NoTitle),$(!REG_VT_DWORD),$(DefaultMTUSize)},+
{FlowInfoEnabled,$(NoTitle),$(!REG_VT_DWORD),$(DefaultFlowInfoEnabled)}}
Shell $(UtilityInf), AddValueList, $(LISKey), $(NewValueList)
;
; Now create the FlowInfo key. NOTE: To enable all the following, set
; FlowInfoEnabled, above, to 1.
;
Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\atmarpc\LIS0\FlowInfo"
Debug-Output "about to open "$(RegKey)
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) FlowInfoKey
ifstr(i) $(FlowInfoKey) == ""
Debug-Output "creating LIS0\FlowInfo key under the adapter"
CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" FlowInfoKey
endif
ifstr(i) $(FlowInfoKey) == ""
Debug-Output "Failed to create FlowInfo subkey"
goto fatalRegistry
endif
;
; Create High Bandwidth FlowInfo subkey
;
Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\atmarpc\LIS0\FlowInfo\HighBw"
Debug-Output "about to open "$(RegKey)
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) HighBwKey
ifstr(i) $(HighBwKey) == ""
Debug-Output "creating LIS0\FlowInfo\HighBw key under the adapter"
CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" HighBwKey
endif
ifstr(i) $(HighBwKey) == ""
Debug-Output "Failed to create HighBw subkey"
goto fatalRegistry
endif
;
; Fill in flow info values for High Bandwidth flows
;
Set DefaultHighBwPacketSizeLimit = 65536
Set DefaultHighBwSendBandwidth = 249984
Set DefaultHighBwRecvBandwidth = 249984
Set DefaultHighBwGuarantee = 3
Set DefaultHighBwVcAgingTime = 10
set NewValueList = {{PacketSizeLimit,$(NoTitle),$(!REG_VT_DWORD),$(DefaultHighBwPacketSizeLimit)},+
{SendBandwidth,$(NoTitle),$(!REG_VT_DWORD),$(DefaultHighBwSendBandwidth)},+
{ReceiveBandwidth,$(NoTitle),$(!REG_VT_DWORD),$(DefaultHighBwRecvBandwidth)},+
{Guarantee,$(NoTitle),$(!REG_VT_DWORD),$(DefaultHighBwGuarantee)},+
{AgingTime,$(NoTitle),$(!REG_VT_DWORD),$(DefaultHighBwVcAgingTime)}}
Shell $(UtilityInf), AddValueList, $(HighBwKey), $(NewValueList)
CloseRegKey $(HighBwKey)
;
; Create Low Bandwidth FlowInfo subkey
;
Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\atmarpc\LIS0\FlowInfo\LowBw"
Debug-Output "about to open "$(RegKey)
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) LowBwKey
ifstr(i) $(LowBwKey) == ""
Debug-Output "creating LIS0\FlowInfo\LowBw key under the adapter"
CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" LowBwKey
endif
ifstr(i) $(LowBwKey) == ""
Debug-Output "Failed to create LowBw subkey"
goto fatalRegistry
endif
;
; Fill in flow info values for Low Bandwidth flows
;
Set DefaultLowBwPacketSizeLimit = 256
Set DefaultLowBwSendBandwidth = 6240
Set DefaultLowBwRecvBandwidth = 6240
Set DefaultLowBwGuarantee = 0
Set DefaultLowBwVcAgingTime = 30
set NewValueList = {{PacketSizeLimit,$(NoTitle),$(!REG_VT_DWORD),$(DefaultLowBwPacketSizeLimit)},+
{SendBandwidth,$(NoTitle),$(!REG_VT_DWORD),$(DefaultLowBwSendBandwidth)},+
{ReceiveBandwidth,$(NoTitle),$(!REG_VT_DWORD),$(DefaultLowBwRecvBandwidth)},+
{Guarantee,$(NoTitle),$(!REG_VT_DWORD),$(DefaultLowBwGuarantee)},+
{AgingTime,$(NoTitle),$(!REG_VT_DWORD),$(DefaultLowBwVcAgingTime)}}
Shell $(UtilityInf), AddValueList, $(LowBwKey), $(NewValueList)
CloseRegKey $(LowBwKey)
;
; Now create the ARP Server List subkey
;
Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\atmarpc\LIS0\ARPServerList"
Debug-Output "about to open "$(RegKey)
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) ServerListKey
ifstr(i) $(ServerListKey) == ""
Debug-Output "creating LIS0\ARPServerList key under the adapter"
CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" ServerListKey
endif
ifstr(i) $(ServerListKey) == ""
Debug-Output "Failed to create ARP Server list key"
goto fatalRegistry
endif
set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\atmarpc\LIS0\ARPServerList\Server1"
Debug-Output "atmarpc: will open/create "$(RegKey)
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) Server1Key
ifstr(i) $(Server1Key) == ""
Debug-Output "creating LIS0\ARPServerList\Server1 key under the adapter"
CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" Server1Key
endif
ifstr(i) $(Server1Key) == ""
Debug-Output "Failed to create ARP Server 1 key"
goto fatalRegistry
endif
set ServerAddress1 = "4700918100000000613e5bfe010000d10f9f5e00"
set NewValueList = {{AtmAddress,$(NoTitle),$(!REG_VT_SZ),$(ServerAddress1)}}
Shell $(UtilityInf), AddValueList, $(Server1Key), $(NewValueList)
CloseRegKey $(Server1Key)
; set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\atmarpc\LIS0\ARPServerList\Server2"
; Debug-Output "atmarpc: will open/create "$(RegKey)
; OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) Server2Key
; ifstr(i) $(Server2Key) == ""
; Debug-Output "creating LIS0\ARPServerList\Server2 key under the adapter"
; CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" Server2Key
; endif
; ifstr(i) $(Server2Key) == ""
; Debug-Output "Failed to create ARP Server 2 key"
; goto fatalRegistry
; endif
; set ServerAddress2 = "4700000000003c0000a000000000000000000800"
; set NewValueList = {{AtmAddress,$(NoTitle),$(!REG_VT_SZ),$(ServerAddress1)}}
; Shell $(UtilityInf), AddValueList, $(Server2Key), $(NewValueList)
; CloseRegKey $(Server2Key)
CloseRegKey $(ServerListKey)
;
; Now create the MARS Server List subkey
;
Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\atmarpc\LIS0\MARSList"
Debug-Output "about to open "$(RegKey)
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) ServerListKey
ifstr(i) $(ServerListKey) == ""
Debug-Output "creating LIS0\MARSList key under the adapter"
CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" ServerListKey
endif
ifstr(i) $(ServerListKey) == ""
Debug-Output "Failed to create MARS Server list key"
goto fatalRegistry
endif
set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\atmarpc\LIS0\MARSList\Server1"
Debug-Output "atmarpc: will open/create "$(RegKey)
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) Server1Key
ifstr(i) $(Server1Key) == ""
Debug-Output "creating LIS0\MARSList\Server1 key under the adapter"
CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" Server1Key
endif
ifstr(i) $(Server1Key) == ""
Debug-Output "Failed to create MARS Server 1 key"
goto fatalRegistry
endif
set ServerAddress1 = "4700918100000000613e5bfe010000d10f9f5e00"
set NewValueList = {{AtmAddress,$(NoTitle),$(!REG_VT_SZ),$(ServerAddress1)}}
Shell $(UtilityInf), AddValueList, $(Server1Key), $(NewValueList)
CloseRegKey $(Server1Key)
CloseRegKey $(ServerListKey)
;
; Create the virtual adapter now.
;
Debug-Output "ATMARPC: AddHardwareing ipatmarp now"
Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(TProductKeyName)
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "ATMARPC: ** Failed to AddHardware myself"
goto fatalRegistry
endif
set HardNetCardKey = $($R1)
set HardNetRuleKey = $($R2)
set HardParameterKey = $($R3)
set AdapterNumber = $($R4)
set LogicalAdapterName = $($R5)
Debug-Output "ATMARPC: After AddHw, ServiceName "$($R5)
Debug-Output "ATMARPC: HardParameterKey "$(HardParameterKey)
set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ATMARPC: AddValueList failed for HardNetCardKey"
goto ShellCodeError
endif
set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
Debug-Output "ATMARPC: ProductHardwareName "$(ProductHardwareName)
Debug-Output "ATMARPC: AdapterNumber "$(AdapterNumber)
Debug-Output "ATMARPC: TempProdName "$(TempProdName)
Debug-Output "ATMARPC: TempBindForm "$(TempBindForm)
Debug-Output "ATMARPC: NetRuleHardwareType "$(NetRuleHardwareType)
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList)
CloseRegKey $(HardNetCardKey)
CloseRegKey $(HardNetRuleKey)
CloseRegKey $(HardParameterKey)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
Set AddedNewVirtualAdapter = "Yes"
;
; Use the Logical Adapter name we got above to create the IP Config
; string to be used in the IPAddInterface() call. We store this within
; the LIS configuration.
;
ifstr(i) $(LISKey) != ""
set IPConfigString = $(LogicalAdapterName)"\Parameters\Tcpip"
set NewValueList = {{IPConfig,$(NoTitle),$(!REG_VT_SZ),$(IPConfigString)}}
Shell $(UtilityInf), AddValueList, $(LISKey), $(NewValueList)
;
; Save Adapter Number in LIS0 for use in RemoveAdapter
;
set NewValueList = {{AdapterNumber,$(NoTitle),$(!REG_VT_SZ),$(AdapterNumber)}}
Shell $(UtilityInf), AddValueList, $(LISKey), $(NewValueList)
CloseRegKey $(LISKey)
endif
ifstr(i) $(ArpParamsKey) != ""
CloseRegKey $(ArpParamsKey)
endif
; TCP/IP parameters: first open/create TCP/IP's subkey
Set TcpKeyName = $(!NTN_ServiceBase)"\"$(LogicalAdapterName)"\Parameters\Tcpip"
Debug-Output "about to open "$(TcpKeyName)
OpenRegKey $(!REG_H_LOCAL) "" $(TcpKeyName) $(MAXIMUM_ALLOWED) TcpKey
ifstr(i) $(TcpKey) == ""
CreateRegKey $(!REG_H_LOCAL) {$(TcpKeyName),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" TcpKey
endif
ifstr(i) $(TcpKey) == ""
Debug-Output "Failed to open/create the TCP key under the virtual adapter"
goto fatalRegistry
endif
set NewValueList = {{LLInterface,$(NoTitle),$(!REG_VT_SZ),$(TcpipLLInterface)},+
{UseZeroBroadcast,$(NoTitle),$(!REG_VT_DWORD),$(UseZeroBroadcast)}}
Shell $(UtilityInf), AddValueList, $(TcpKey), $(NewValueList)
continueCardList = +
EndForListDo
;
; If we added atleast one virtual adapter, tell NCPA to review bindings
; after this completes.
;
ifstr(i) $(AddedNewVirtualAdapter) == "Yes"
Set RegKey = $(!NTN_SoftwareBase)"\Microsoft\NCPA\CurrentVersion"
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) NcpaKey
ifstr(i) $(NcpaKey) != ""
SetRegValue $(NcpaKey) {"BindRestart",$(NoTitle),$(!REG_VT_DWORD),1}
Debug-Output "ATMARPC: set BindRestart to 1 in "$(RegKey)
CloseRegKey $(NcpaKey)
else
Debug-Output "ATMARPC: failed to open "$(RegKey)
endif
endif
Set RegKey = $(!NTN_ServiceBase)"\atmarpc"
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) ArpCKey
ifstr(i) $(ArpCKey) != ""
SetRegValue $(ArpCKey) {"DependOnService",$(NoTitle),$(!REG_VT_MULTI_SZ),{"Tcpip","ATMCallManager"}}
CloseRegKey $(ArpCKey)
else
Debug-Output "failed to open ArpCKey key "$(RegKey)
goto fatalRegistry
endif
endif
ifstr(i) $(!NTN_RegBase) == $(TProductRegBase)
Debug-Output "ATMARPC/Virtual: Binding Adapter, LinkageKeyName "$(TLinkageKeyName)
OpenRegKey $(!REG_H_LOCAL) "" $(TLinkageKeyName) $(MAXIMUM_ALLOWED) LinkageKey
ifstr(i) $(LinkageKey) != ""
GetRegValue $(LinkageKey) "Bind" BindList
Debug-Output "BindList: "$(BindList)
Set Binding = *($(BindList),4)
Debug-Output "Binding: "$(Binding)
CloseRegKey $(LinkageKey)
else
Debug-Output "failed to open linkage for adapter"
goto fatalregistry
endif
set CardList = {}
set CreateCardList = {}
ForListDo $(Binding)
Split-String $($), "\", BindInfo
QueryListSize BindListSize $(BindInfo)
set CardName = *($(BindInfo),$(BindListSize))
Debug-Output "Cardname: "$(CardName)
ifstr(i) $(CardList) == {}
set CardList = {$(CardName)}
else
set CardList = >($(CardList),$(CardName))
endif
EndForListDo
Debug-Output "Cardlist: "$(CardList)
ForListDo $(CardList)
Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\atmarpc"
Debug-Output "about to open "$(RegKey)
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) AdapterParamKey
ifstr(i) $(AdapterParamKey) == ""
Debug-Output "creating atmarpc key under the adapter"
CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" AdapterParamKey
endif
ifstr(i) $(AdapterParamKey) != ""
CloseRegKey $(AdapterParamKey)
else
Debug-Output "Failed to open/create the atmarpc key under the adapter"
goto fatalRegistry
endif
EndForListDo
Set RegKey = $(!NTN_ServiceBase)"\ipatmarp"
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) IpAtmArpKey
ifstr(i) $(IpAtmArpKey) != ""
SetRegValue $(IpAtmArpKey) {"DependOnService",$(NoTitle),$(!REG_VT_MULTI_SZ),{"Tcpip","ATMCallManager"}}
CloseRegKey $(IpAtmArpKey)
else
Debug-Output "failed to open IPATMARP key "$(RegKey)
goto fatalRegistry
endif
endif
goto successful
removeadapter = +
Debug-Output "ATMARPC: removeadapter: NTN_REGBASE is "$(!NTN_RegBase)
Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Debug-Output "ATMARPC: removing software "$(ProductSoftwareName)
; Go thru all our bindings and remove the ATMARPC subkey there so
; that we will redo parameter keys if we are installed again.
;
OpenRegKey $(!REG_H_LOCAL) "" $(LinkageKeyName) $(MAXIMUM_ALLOWED) LinkageKey
ifstr(i) $(LinkageKey) != ""
GetRegValue $(LinkageKey) "Bind" BindList
Debug-Output "Remove: BindList: "$(BindList)
Set Binding = *($(BindList),4)
Debug-Output "Remove: Binding: "$(Binding)
CloseRegKey $(LinkageKey)
else
Debug-Output "failed to open linkage for adapter"
goto skipRemoveBindings
endif
set CardList = {}
set CreateCardList = {}
ForListDo $(Binding)
Split-String $($), "\", BindInfo
QueryListSize BindListSize $(BindInfo)
set CardName = *($(BindInfo),$(BindListSize))
Debug-Output "Remove: Cardname: "$(CardName)
ifstr(i) $(CardList) == {}
set CardList = {$(CardName)}
else
set CardList = >($(CardList),$(CardName))
endif
EndForListDo
Debug-Output "Cardlist: "$(CardList)
ForListDo $(CardList)
Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters"
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) ParamsKey
ifstr(i) $(ParamsKey) != ""
;
;
; Go into the LIS0 subkey, get the Virtual Adapter number, and delete the
; virtual adapter for LIS0. NOTE: this has to be repeated for each LISi.
;
Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\AtmArpC\LIS0"
OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) LISKey
ifstr(i) $(LISKey) != ""
GetRegValue $(LISKey) "AdapterNumber" AdapterNoValue
CloseRegKey $(LISKey)
endif
Set AdapterNo = *($(AdapterNoValue),4)
Set AdapterRegBase = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(AdapterNo)
Debug-Output "ATMARPC: removing adapter "$(AdapterNo)
Debug-Output "ATMARPC: remove: AdapterRegBase "$(AdapterRegBase)
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductHardwareName), $(AdapterRegBase)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error"
goto ShellCodeError
endif
Debug-Output "Remove: deleting AtmArpC under "$(RegKey)
DeleteRegTree $(ParamsKey) "AtmArpC"
CloseRegKey $(ParamsKey)
endif
EndForListDo
skipRemoveBindings =+
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error"
goto ShellCodeError
endif
else
Ifstr(i) $(TProductKeyName) == $(!NTN_RegBase)
Debug-Output "ATMARPC: removing software "$(TProductSoftwareName)
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(TProductSoftwareName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error"
goto ShellCodeError
endif
else
Debug-Output "ATMARPC: removing hardware "$(ProductHardwareName)
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductHardwareName), $(!NTN_RegBase)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error"
goto ShellCodeError
endif
endif
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
goto end
UpgradeSoftware = +
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
install "Install-Update"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
goto fatal
endif
SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
SetRegValue $(KeyProduct) {"Description",$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)}
SetRegValue $(KeyProduct) {"Title",$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)}
CloseRegKey $(KeyProduct)
OpenRegKey $(!REG_H_LOCAL) "" $(ServiceKeyName) $(MAXIMUM_ALLOWED) ServiceKey
ifstr(i) $(ServiceKey) != ""
SetRegValue $(ServiceKey) {"DisplayName",$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDisplayName)}
CloseRegKey $(ServiceKey)
endif
else
goto fatalregistry
endif
goto end
successful = +
goto end
warning = +
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(to)
else-ifstr(i) $($R1) == "CANCEL"
goto $(from)
else
goto "end"
endif
nonfatalinfo = +
Set CommonStatus = STATUS_USERCANCEL
Set Severity = STATUS
goto nonfatalmsg
nonfatal = +
Set Severity = NONFATAL
goto nonfatalmsg
nonfatalmsg = +
ifstr(i) $(Error) == ""
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(from)
else
goto "end"
endif
fatalregistry = +
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
fatal = +
ifstr(i) $(Error) == ""
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto setfailed
ShellCodeError = +
set DlgType = "MessageBox"
set STF_MB_TITLE = $(ShellCodeErrorTitle)
set STF_MB_TEXT = $(ShellCodeErrorText)
set STF_MB_TYPE = 1
set STF_MB_ICON = 3
set STF_MB_DEF = 1
ui start "Error Message"
goto setfailed
setfailed = +
set CommonStatus = STATUS_FAILED
ifstr(i) $(OEM_ABANDON_ON) == TRUE
set OEM_ABANDON_ON = FALSE
goto removeadapter
endif
goto end
end = +
goto term
term = +
Return $(CommonStatus)
[StripTrailSlash]
Split-String $($0) "\" InList
QueryListSize InListSize, $(InList)
Ifint $(InListSize) <= 1
Return $($0)
Endif
Set NewString = ""
ForListDo $(InList)
ifint $(#) < $(InListSize)
Set NewString = $(NewString)$($)
else-ifstr $($) != "\"
Set NewString = $(NewString)$($)
endif
EndForListDo
Return $(NewString)
[Install-Option]
set STF_VITAL = ""
ifstr(i) $(AddCopy) == "YES"
AddSectionFilesToCopyList Files-Platform-Drivers $(PlatformDir) $(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-Platform-Utils $(PlatformDir) $(!STF_WINDOWSSYSPATH)
endif
ifstr(i) $(DoCopy) == "YES"
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
endif
ifstr(i) $(DoConfig) == "YES"
endif
Exit
[Install-Update]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-Platform-Drivers $(PlatformDir) $(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-Platform-Utils $(PlatformDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Inf $(InfDir) $(!STF_WINDOWSSYSPATH)
exit
[Source Media Descriptions]
1 = "Microsoft ATMARP Client Installation Disk"
[ProductType]
STF_PRODUCT = Winnt
[Files-Inf]
1, OEMSETUP.INF, SIZE=999, RENAME=$(!UG_Filename)
[Files-Platform-Drivers]
1, ATMARPC.SYS , SIZE=999
[Files-Platform-Utils]
[FileConstantsENG]
ProCaption = "Windows NT Setup"
ProCancel = "Cancel"
ProCancelMsg = "Windows NT Networking is not correctly installed. "+
"Are you sure you want to cancel copying files?"
ProCancelCap = "Network Setup Message"
ProText1 = "Copying:"
ProText2 = "To:"
FunctionTitle = "IP Over ATM Client"
ProductSoftwareDescription = "IP Over ATM (RFC 1577) Client Software"
ProductSoftwareDisplayName = "IP Over ATM Client (ATM ARP Module)"
ProductSoftwareTitle = "IP over ATM Client"
TProductSoftwareDescription = "Virtual ATMARP Interface"
TProductSoftwareDisplayName = "Virtual ATMARP Adapter"
TProductSoftwareTitle = "Virtual ATMARP Interface"
ShellCodeErrorTitle = "Error: "$(FunctionTitle)
ShellCodeErrorText = "Shell Code Error."
[DialogConstantsENG]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"