Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

10489 lines
394 KiB

;***********************************************************************
;
; OEMNSVRA.INF
;
; NT Routing & Remote Access Service (RAS) Network Setup INF file.
;
; This file is derived from the main RAS setup INF file.
;
; Modification History:
;
; 11-June-96 RamC Changed all instance of STATUS_NO_EFFECT to
; STATUS_USERCANCEL.
; 17-July-95 MikeMi System is not a valid SoftwareType,
; changed to service
; 01-Aug-92 Ram Cherala Created
;
; NOTE: Please don't randomly change the order of the program or the
; function calls (Shell commands). A lot depends on the order
; in which the functions are called.
;
;-----------------------------------------------------------------------
; OPTION TYPE
; -----------
; This identifies the Option type we are dealing with.
;
; NetAdapter, a netcard / transport combination or just a netcard
; NetDriver, just a netcard driver
; NetTransport, a complete NDIS-compliant TDI transport stack
; NetService, an NT networking service
; NetWork, a complete network ensemble.
; NetProvider a complete network which supports NT MPR protocol
;-----------------------------------------------------------------------
[Identification]
OptionType = NetService
[Options]
RAS
[GeneralConstants]
;
; Constants to support the use of checkbox dialogs
Chosen = "ON"
NotChosen = "OFF"
TRUE = 1
FALSE = 0
NoTitle = 0
; set this value to 0 to disable debug output during setup
FLibraryErrCtl = 1
OldVersionExisted = FALSE
[FileConstants]
HandleNull = ""
PORTSDLGHANDLE = $(HandleNull)
RasServerOption = "Server"
RasClientOption = "Client"
RasAdminOption = "Admin"
RasClientAndServerOption = "ClientAndServer"
; flag that indicates if the proxy service wspsrv is installed
!PROXY_INSTALLED = FALSE
ROUTER_TYPE_RAS = 1
ROUTER_TYPE_LAN = 2
ROUTER_TYPE_WAN = 4
; Product Info
!Manufacturer = "Microsoft"
!ProductMajorVersion = "4"
!ProductMinorVersion = "0"
ProductVersion = $(!ProductMajorVersion)"."$(!ProductMinorVersion)
; ProductOpSupport = 134 ; 0x0086 ; Display,Removable,Properties,Not Updatable
; BUGBUG temporarily enable update so that ITG and others can update the router binaries
ProductOpSupport = 135 ; 0x0087 ; Display,Removable,Properties,Updatable
; EventLog Message File
NetEventDLL = "%SystemRoot%\System32\netevent.dll"
IoLogMsgDll = "%SystemRoot%\System32\drivers\IoLogMsg.dll"
!RouterMsgDll = "%SystemRoot%\System32\mprmsg.dll"
; 0x1f (31) allows audit success/failure events to be filtered in the
; event viewer
!RasEventTypeSupported = 31
RouterEventTypeSupported = 31
; this variable is used to hide the selected component so that it is
; not displayed in the list of software/hardware installed by NCPA
; set this to any value other than 0 to hide the component
; set it to 0 to disable hiding.
!HideComponent = 1
; this variable is used to hide the selected component from appearing
; in the bindings list. We want to hide the ndiswan and asyncmac bindings
; so that the user cannot disable them. This variable can take value
; 16 for hiding bindings and 32 for disabling reordering of bindings.
; HideBindings = 16
; it has been decided not to hide the bindings afterall, so it shall
; be written, and so it shall be done!!
HideBindings = 0
; set this flag to 1 to force NCPA to call our inf file for review bindings
fReviewBindings = 1
!RasInfName = "OEMNSVRA.INF"
; !STF_CWDDIR is the directory from where this INF file was invoked & is
; set by NT setup (or NCPA) as the case may be.
ProductFullInfName = $(!STF_CWDDIR)$(!RasInfName)
RasDir = $(!STF_CWDDIR)RAS
ProductPath = $(RasDir)"\"
; Remote Access Service Software data
ProductRASName = "RAS"
ProductRASImagePath = "%SystemRoot%\system32\ras"
ProductRASSvcType = "service"
NetRuleRASClass = "classRasService ""basic"""
NetRuleRASType = "RasService classRasService"
NetRuleRASUse = "system"
!ProductPCIMACName = "PCIMAC"
; RAS Server Software data
ProductRASSVRName = "RemoteAccess"
ProductRASSVRImagePath = "%SystemRoot%\system32\mprouter.exe"
ProductRASSVRSvcType = "service"
NetRuleRASSVRClass = "classRasServer ""basic"""
NetRuleRASSVRType = "RasServer classRasServer"
NetRuleRASSVRUse = $(ProductRASSVRSvcType)
NetRuleRASSVRBindForm = """RasServer"" yes yes container"
; we provide the bindable rule below to enable rassvr to bind to all
; netbios transports. doing this enables an admin to selectively disable
; bindings from the NCPA to disallow client access to particular nets.
; setup, enumerates the bound lanas and provides the non-ras lanas to
; the rasserver as available lannets.
NetRuleRASSVRBindable = {"classRasServer netBiosTransport non non 100",+
"classRasServer ipxTransport non non 100"}
; Router registry values
; the product name is RemoteAccess and not RasServer because we want to
; be compatible with down level RAS software - i.e. ability to say
; "net start remoteaccess"
ProductROUTINGName = "Router"
ProductROUTINGImagePath = "%SystemRoot%\system32\mprouter.exe"
ProductROUTINGSvcType = "service"
NetRuleROUTINGClass = "classRasServer ""basic"""
NetRuleROUTINGType = "RasServer classRasServer"
NetRuleROUTINGUse = $(ProductROUTINGSvcType)
NetRuleROUTINGBindForm = """RasServer"" yes yes container"
; we provide the bindable rule below to enable rassvr to bind to all
; netbios transports. doing this enables an admin to selectively disable
; bindings from the NCPA to disallow client access to particular nets.
; setup, enumerates the bound lanas and provides the non-ras lanas to
; the rasserver as available lannets.
NetRuleROUTINGBindable = {"classRouter netBiosTransport non non 100",+
"classRouter ipxTransport non non 100"}
PROTO_IP = 33
PROTO_IPX = 43
; RAS Manager Software data
ProductRASMANName = "RasMan"
ProductRASMANImagePath = "%SystemRoot%\system32\mprouter.exe"
ProductRASMANSvcType = "service"
NetRuleRASMANClass = "classRasManager ""basic"""
NetRuleRASMANType = "RasManager classRasManager"
NetRuleRASMANUse = $(ProductRASMANSvcType)
NetRuleRASMANBindForm = """RasManager"" yes no container"
NetRuleRASMANBindable = ""
; service data
!ProductRASARPName = "RasArp"
!ProductRASARPImagePath = "\SystemRoot\system32\drivers\rasarp.sys"
!ProductWANARPName = "WanArp"
!ProductWANARPImagePath = "\SystemRoot\system32\drivers\wanarp.sys"
!ProductIPFLTName = "IPFilterDriver"
!ProductIPFLTImagePath = "\SystemRoot\system32\drivers\ipfltdrv.sys"
!ProductIPXPINGName = "IpxPing"
!ProductIPXPINGImagePath = "%SystemRoot%\system32\mprouter.exe"
!ProductNWLNKFWDName = "NwLnkFwd"
!ProductNWLNKFWDImagePath = "\SystemRoot\system32\drivers\nwlnkfwd.sys"
!ProductNWLNKFLTName = "NwLnkFlt"
!ProductNWLNKFLTImagePath = "\SystemRoot\system32\drivers\nwlnkflt.sys"
; NWLNKRIP AND SAP service data
!ProductRASISNRIPName = "NwlnkRip"
!ProductRASISNSAPName = "NwSapAgent"
!ProductRASISNRIPImagePath = "\SystemRoot\system32\drivers\nwlnkrip.sys"
!ProductRASISNSAPImagePath = "%SystemRoot%\system32\services.exe"
; RAS Autodial Software data
!ProductRASAUTODIALName = "RasAuto"
!ProductRASAUTODIALImagePath = "%SystemRoot%\system32\mprouter.exe"
!ProductRASAUTODIALSvcType = "service"
; RAS acd driver data
!ProductRASACDName = "RasAcd"
!ProductRASACDImagePath = "\SystemRoot\system32\drivers\rasacd.sys"
; NDISWAN Software data
!ProductNDISWANName = "NdisWan"
!ProductNDISWANImagePath = "\SystemRoot\system32\drivers\ndiswan.sys"
ProductNDISWANSvcType = "kernel"
ProductNDISWANType = "transport"
!NetRuleNDISWANType = "ndisWanDrv ndisWanTransport"
!NetRuleNDISWANClass = {"ndisWanTransport basic"}
NetRuleNDISWANUse = $(ProductNDISWANType)" yes yes"
!NetRuleNDISWANBindForm = """NdisWan"" yes no container"
; the following variable is global because it is used in the
; UpdateNdisWanInfo routine during ras upgrade.
!NetRuleNDISWANBindable = +
{"rasCapableTransport ndisWanAdapterDialIn non non 100",+
"rasCapableTransport ndisWanAdapterDialOut non non 100",+
"tcpipTransport ndisWanAdapterDialInIP non non 100",+
"tcpipTransport ndisWanAdapterDialOutIP non non 100",+
"netbtTransport ndisWanAdapterDialInIP non non 100",+
"netbtTransport ndisWanAdapterDialOutIP non non 100",+
"ipxTransport ndisWanAdapterDialInOutIPX non non 100",+
"bhService ndisWanAdapterBH non non 100",+
"ndisWanTransport ndisWanAdapterBH non non 100",+
"ndisWanTransport ndisWanAdapterDialIn non non 100",+
"ndisWanTransport ndisWanAdapterDialOut non non 100",+
"ndisWanTransport ndisWanAdapterDialInIP non non 100",+
"ndisWanTransport ndisWanAdapterDialOutIP non non 100",+
"ndisWanTransport ndisWanAdapterDialInOutIPX non non 100"}
; RAS Asymac Software data
ProductRASASYMACName = "AsyncMac"
ProductRASASYMACImagePath = "\SystemRoot\system32\drivers\asyncmac.sys"
ProductRASASYMACType = "driver"
ProductRASASYMACSvcType = "kernel"
NetRuleRASASYMACType = "rasAsyMacDrv rasAsyMacDriver"
NetRuleRASASYMACClass = {"rasAsyMacDriver basic"}
NetRuleRASASYMACUse = $(ProductRASASYMACType)
NetRuleRASASYMACBindForm = """RasAsyMac"" yes no container"
!NetRuleRASASYMACBindable = +
{"rasAsyMacDriver rasAsyMacAdapter non non 100"}
;
; NDISWAN adapter data - we separate the two cases of dialin and dialout
; adapters corresponding to dialin/out ports
!ProductRASHUBDIALINName = "RasHubDialin"
!ProductRASHUBDIALOUTName = "RasHubDialout"
!ProductRASHUBDIALINIPName = "RasHubDialinIp"
!ProductRASHUBDIALOUTIPName = "RasHubDialoutIp"
!ProductRASHUBDIALINOUTIPXName = "RasHubDialinoutIpx"
!ProductNDISWANDIALINName = "NdisWanDialin"
!ProductNDISWANDIALOUTName = "NdisWanDialout"
!ProductNDISWANDIALINIPName = "NdisWanDialinIp"
!ProductNDISWANDIALOUTIPName = "NdisWanDialoutIp"
!ProductNDISWANDIALINOUTIPXName = "NdisWanDialinoutIpx"
!NetRuleHardwareBHType = "ndisWanBH ndisWanAdapterBH"
!NetRuleHardwareBHClass = {"ndisWanAdapterBH basic"}
!NetRuleHardwareBHBindForm = " yes yes container"
!NetRuleHardwareNDISWANBindForm = " yes yes container"
!NetRuleHardwareDIALINType = "ndiswandialin ndisWanAdapterDialIn"
!NetRuleHardwareDIALINClass = {"ndisWanAdapterDialIn basic"}
!NetRuleHardwareDIALINBlock = {"lanmanServer ndisWanAdapterDialIn",+
"tcpipTransport ndisWanAdapterDialIn",+
"netbtTransport ndisWanAdapterDialIn",+
"ipxTransport ndisWanAdapterDialin",+
"lanmanWorkstation ndisWanAdapterDialIn"}
!NetRuleHardwareDIALINIPType = "ndiswandialinIP ndisWanAdapterDialInIP"
!NetRuleHardwareDIALINIPClass = {"ndisWanAdapterDialInIP basic"}
!NetRuleHardwareDIALINIPBlock = {"lanmanServer ndisWanAdapterDialInIP",+
"nbfTransport ndisWanAdapterDialinIP",+
"ipxTransport ndisWanAdapterDialinIP",+
"lanmanWorkstation ndisWanAdapterDialInIP"}
!NetRuleHardwareDIALOUTType = "ndiswandialout ndisWanAdapterDialOut"
!NetRuleHardwareDIALOUTClass = {"ndisWanAdapterDialOut basic"}
!NetRuleHardwareDIALOUTBlock = {"ipxTransport ndisWanAdapterDialOut"}
!NetRuleHardwareDIALOUTIPType = "ndiswandialoutIP ndisWanAdapterDialOutIP"
!NetRuleHardwareDIALOUTIPClass = {"ndisWanAdapterDialOutIP basic"}
!NetRuleHardwareDIALOUTIPBlock = {"ipxTransport ndisWanAdapterDialOutIP",+
"nbfTransport ndisWanAdapterDialOutIP"}
!NetRuleHardwareDIALINOUTIPXType = "ndiswandialinoutIPX ndisWanAdapterDialInOutIPX"
!NetRuleHardwareDIALINOUTIPXClass = {"ndisWanAdapterDialInOutIPX basic"}
!NetRuleHardwareDIALINOUTIPXBlock = {"nbfTransport ndisWanAdapterDialInOutIPX",+
"tcpipTransport ndisWanAdapterDialInOutIPX",+
"netbtTransport ndisWanAdapterDialInOutIPX"}
; RAS Asymac adapter data
NetRuleHardwareRASASYMACType = "rasAsyMac rasAsyMacAdapter"
NetRuleHardwareRASASYMACBindForm = " yes yes container"
NetRuleHardwareRASASYMACClass = {"rasAsyMacAdapter basic"}
; NDIS TAPI device information
!ProductNDISTAPIName = "NdisTapi"
!ProductNDISTAPIImagePath = "\SystemRoot\system32\drivers\ndistapi.sys"
; Performance data
!RasPerfKeyName = "Performance"
!RasPerfLibraryName = "rasctrs.dll"
!RasPerfOpenFunction = "OpenRasPerformanceData"
!RasPerfCloseFunction = "CloseRasPerformanceData"
!RasPerfCollectFunction = "CollectRasPerformanceData"
!RasCounterFileName = "rasctrs.ini"
;
; Registry Key
ProductKeyBase = $(!NTN_SoftwareBase)"\"$(!Manufacturer)
ProductKeyName = $(!NTN_SoftwareBase)"\"$(!Manufacturer)"\"$(ProductRASName)"\CurrentVersion"
ProductRouterName = $(!NTN_SoftwareBase)"\"$(!Manufacturer)"\"$(ProductROUTINGName)"\CurrentVersion"
!NetworkCardKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
RasSvrKeyName = $(!NTN_ServiceBase)"\"$(ProductRASSVRName)
!RouterKeyName = $(!NTN_ServiceBase)"\"$(ProductROUTINGName)
RasSvrParamKeyName = $(!NTN_ServiceBase)"\"$(ProductRASSVRName)"\Parameters"
!RasManSvcKeyName = $(!NTN_ServiceBase)"\"$(ProductRASMANName)
!RasAcdKeyName = $(!NTN_ServiceBase)"\"$(!ProductRASACDName)
!RasArpKeyName = $(!NTN_ServiceBase)"\"$(!ProductRASARPName)
!RasIsnRipKeyName = $(!NTN_ServiceBase)"\"$(!ProductRASISNRIPName)
!RasIsnSapKeyName = $(!NTN_ServiceBase)"\"$(!ProductRASISNSAPName)
!NdisTapiKeyName = $(!NTN_ServiceBase)"\"$(!ProductNDISTAPIName)
!RasManKeyName = $(!NTN_SoftwareBase)"\"$(!Manufacturer)"\"$(ProductRASMANName)"\CurrentVersion"
!RasAutodialKeyName = $(!NTN_ServiceBase)"\"$(!ProductRASAUTODIALName)
RasManParamKeyName = $(!NTN_ServiceBase)"\"$(ProductRASMANName)"\Parameters"
RasManLinkageKeyName = $(!NTN_ServiceBase)"\"$(ProductRASMANName)"\Linkage"
NdisWanParamKeyName = $(!NTN_ServiceBase)"\"$(!ProductNDISWANName)"\Parameters"
NdisWanLinkageKeyName = $(!NTN_ServiceBase)"\"$(!ProductNDISWANName)"\Linkage"
RasAsyMacKeyName = $(!NTN_ServiceBase)"\"$(ProductRASASYMACName)
RasAsyMacParamKeyName = $(!NTN_ServiceBase)"\"$(ProductRASASYMACName)"\Parameters"
RasMacLinkageKeyName = $(!NTN_ServiceBase)"\"$(ProductRASASYMACName)"\Linkage"
RasTapiDevicesKeyName = $(!NTN_SoftwareBase)"\"$(!Manufacturer)"\"$(ProductRASName)"\TAPI DEVICES"
LinkageKeyName = $(!NTN_ServiceBase)"\"$(Product$(Option)Name)"\Linkage"
!ProductNDISWANKeyName = $(!NTN_SoftwareBase)"\"$(!Manufacturer)"\"$(!ProductNDISWANName)"\CurrentVersion"
ProductRASASYMACKeyName = $(!NTN_SoftwareBase)"\"$(!Manufacturer)"\"$(ProductRASASYMACName)"\CurrentVersion"
RasProtocolsKeyName = $(!NTN_SoftwareBase)"\"$(!Manufacturer)"\"$(ProductRASName)"\PROTOCOLS"
; File names, etc.
!UtilityInf = "UTILITY.INF"
subroutninf = "SUBROUTN.INF"
RascfgDll = "RASCFG.DLL"
Exit_Code = 0
ShellCode = 0
; Program flow control variables.
from = ""
to = ""
; Return codes; Exit_Code is set to one of these
ExitCodeOk = 0
ExitCodeCancel = 1
ExitCodeFatal = 2
KeyNull = ""
!MAXIMUM_ALLOWED = 33554432
!SERVICE_NO_CHANGE = 4294967295
!SERVICE_SHARE_INTERACT = 288
RegistryErrorIndex = NO_ERROR
; size in bytes of various components
ServerSize = 820116
ClientSize = 634260
AdminSize = 513962
; Default installation options
FInstallServer = $(Chosen)
FInstallClient = $(Chosen)
FInstallAdmin = $(Chosen)
RoutingKeyList = ^(RoutingKeys, 1)
RoutingValueList = ^(RoutingKeys, 2)
[RoutingKeys]
; Router registry values
Name, "Router"
ImagePath, "%SystemRoot%\system32\mprouter.exe"
SvcType, "service"
Class, "classRouter ""basic"""
Type, "Router classRouter"
Use, "service"
BindForm, """Router"" yes yes container"
; we provide the bindable rule below to enable rassvr to bind to all
; netbios transports. doing this enables an admin to selectively disable
; bindings from the NCPA to disallow client access to particular nets.
; setup, enumerates the bound lanas and provides the non-ras lanas to
; the rasserver as available lannets.
Bindable, {"classRouter netBiosTransport non non 100",+
"classRouter ipxTransport non non 100"}
MsgDll, "%SystemRoot%\System32\mprmsg.dll"
; 0x1f (31) allows audit success/failure events to be filtered in the
; event viewer
EventType, 31
[UiVars]
;
; Destination Drive Particulars
VolumeList = {} ? $(!LIBHANDLE) GetHardDriveLetters
VolumeFreeList = {} ? $(!LIBHANDLE) GetHardDriveFreeSpace
VolumeFSList = {} ? $(!LIBHANDLE) GetHardDriveFileSystems
DestVolume = ""
MinHelpID = 25000
MaxHelpID = 25999
[SystemVars]
; these need to be defined by us when the setup.exe is used to invoke
; the .inf file
!STF_PROCESSOR = "" ? $(!LIBHANDLE) GetProcessor
!STF_PLATFORM = "" ? $(!LIBHANDLE) GetPlatform
!STF_WINDOWSPATH = "" ? $(!LIBHANDLE) GetWindowsNtDir
!STF_NTPATH = $(!STF_WINDOWSPATH)
!STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
!STF_COMPUTERNAME = "" ? $(!LIBHANDLE) GetMyComputerName
!STF_USERNAME = "" ? $(!LIBHANDLE) GetMyUserName
!STF_FLOPPYLIST = {} ? $(!LIBHANDLE) GetFloppyDriveLetters
!STF_UNUSEDDRIVES = {} ? $(!LIBHANDLE) GetUnusedDrives
!STF_LANGUAGE = "" ? $(!LIBHANDLE) GetLanguage
!STF_BUSTYPE = "" ? $(!LIBHANDLE) GetMyBusType
!STF_BUSTYPELIST = "" ? $(!LIBHANDLE) GetMyBusTypeList
!NTN_SoftwareBase = "Software"
!NTN_ServiceBase = "System\CurrentControlSet\Services"
!NTN_ScUseRegistry = "NO"
[AvailableSystemMemory]
SystemMemory = "" ? $(!LIBHANDLE) GetMemorySize
MinSystemMemory = 2048
[date]
; CurrentDate is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
; Minute, Second }
!CurrentDate = {} ? $(!LIBHANDLE) GetSystemDate
[HelpContextIDs]
; these IDs are based on the HC_UI_RASMAC_BASE defined in
; uimsg.h in the BLT common\h directory. portscfg.h uses
; some of the IDs starting from 25000, so make sure if you
; change these IDs there is no overlap.
HC_RASOPTIONS = 25020
HC_CLIENTACCESS = 25021
HC_INSTALLOVER1 = 25022
HC_INSTALLOVER2 = 25023
;---------------------------------------------------------------------------
; 1. Identify
;
; DESCRIPTION: To verify that this INF deals with the same type of options
; as we are choosing currently.
;
; INPUT: None
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL
; $($R1): Option Type (COMPUTER ...)
; $($R2): Diskette description
;---------------------------------------------------------------------------
[Identify]
;
;
read-syms Identification
set Status = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)
;------------------------------------------------------------------------
; 2. ReturnOptions:
;
; DESCRIPTION: To return the option list supported by this INF and the
; localised text list representing the options.
;
;
; INPUT: $($0): Language used. ( ENG | FRN | ... )
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE
; STATUS_FAILED
;
; $($R1): Option List
; $($R2): Option Text List
;------------------------------------------------------------------------
[ReturnOptions]
;
;
set Status = STATUS_FAILED
set OptionList = {}
set OptionTextList = {}
;
; Check if the language requested is supported
;
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
goto returnoptions
Else
set Status = STATUS_NOLANGUAGE
goto finish_ReturnOptions
Endif
;
; form a list of all the options and another of the text representing
;
returnoptions = +
set OptionList = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = +
Return $(Status) $(OptionList) $(OptionTextList)
;***********************************************************************
; SETUP INVOCATION SECTION
;***********************************************************************
;------------------------------------------------------------------------
;
; Shell Commands:
;
; This section is shelled to by main setup program
; The invoking application passes the RasInstallMode environmental
; variable set to either "install" or "configure"
;
[Shell Commands]
set Exit_Code = $(!STF_ERROR_GENERAL)
LoadLibrary "x" $(!STF_SRCDIR)\setupdll.dll !LIBHANDLE
LoadLibrary "x" $(!STF_SRCDIR)\ncpa.cpl !NCPA_HANDLE
ifstr(i) $(!LIBHANDLE) == ""
Debug-Output "OEMNSVRA.INF: unable to load setupdll.dll"
Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "FATAL" $(UnableToLoadSetupdll)
set Exit_Code = STATUS_USERCANCEL
exit
endif
ifstr(i) $(!NCPA_HANDLE) == ""
Debug-Output "OEMNSVRA.INF: unable to load ncpa.cpl"
Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "FATAL" $(UnableToLoadNcpaCpl)
set Exit_Code = STATUS_USERCANCEL
exit
endif
ifstr(i) $(RAS_INSTALL_MODE) == ""
set RAS_INSTALL_MODE = install
endif
read-syms SystemVars
detect SystemVars
read-syms RasErrors$(!STF_LANGUAGE)
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ProductOptions" 33554432 KeyProductOption
ifstr(i) $(KeyProductOption) != ""
GetRegValue $(KeyProductOption) "ProductType" ProductTypeList
set TempProductType = *($(ProductTypeList),4)
ifstr(i) $(TempProductType) == "winnt"
set !STF_PRODUCT = WINNT
else-ifstr(i) $(TempProductType) == "lanmannt"
set !STF_PRODUCT = LANMANNT
else-ifstr(i) $(TempProductType) == "servernt"
set !STF_PRODUCT = SERVERNT
else
Debug-Output "OEMNSVRA.INF: invalid Product Type "$(TempProductType)
Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "FATAL" $(UnknownProductType)
set Exit_Code = STATUS_USERCANCEL
exit
endif
CloseRegKey $(KeyProductOptions)
else
Debug-Output "OEMNSVRA.INF: unable to determine Product Type "
Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "FATAL" $(NoProductType)
set Exit_Code = STATUS_USERCANCEL
exit
endif
Debug-Output "OEMNSVRA.INF: Product Type "$(!STF_PRODUCT)
ifstr(i) $(RAS_INSTALL_MODE) != "install"
ifstr(i) $(RAS_INSTALL_MODE) != "configure"
ifstr(i) $(RAS_INSTALL_MODE) != "deinstall"
Debug-Output "OEMNSVRA.INF: Invalid RAS_INSTALL_MODE "$(RAS_INSTALL_MODE)
Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "STATUS" $(InvalidMode)
set Exit_Code = STATUS_USERCANCEL
exit
endif
endif
endif
set !NTN_InstallMode = $(RAS_INSTALL_MODE)
Shell "" InstallOption $(!STF_LANGUAGE) "RAS" $(!STF_SRCDIR) "YES" "YES" "YES"
ifint $($ShellCode) != $( !SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF: Failed to shell out to InstallOption"
exit
endif
set Exit_Code = $($R0)
; set the Exit_Code so that rasphone.exe can determine if bindings
; should be called or not
ifstr(i) $($R0) == STATUS_SUCCESSFUL
set Exit_Code = 1
endif
Debug-Output "OEMNSVRA.INF: install returned "$($R0)
FreeLibrary $(!LIBHANDLE)
FreeLibrary $(!NCPA_HANDLE)
exit
;***********************************************************************
; SETUP (NTLANMAN) INVOCATION SECTION
;***********************************************************************
;------------------------------------------------------------------------
;
; InstallOption:
;
; This section is shelled to by main installation processing.
;
;
; FUNCTION: To copy files representing Options
; To configure the installed option
; To update the registry for the installed option
;
; INPUT: $($0): Language to use
; $($1): OptionID to install
; $($2): SourceDirectory
; $($3): AddCopy (YES | NO)
; $($4): DoCopy (YES | NO)
; $($5): DoConfig (YES | NO)
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE |
; STATUS_USERCANCEL |
; STATUS_FAILED
;
;------------------------------------------------------------------------
[InstallOption]
Debug-Output "In InstallOption section"
; Set default values for
set Status = STATUS_FAILED
; extract parameters
set Option = $($1)
set SourceDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)
; ; note that some legacy .inf files invoke this .inf file with the
; ; old option RAS. We silently convert this to the new option "ROUTING"
;
; ifstr(i) $(Option) == "RAS"
; set Option = "ROUTING"
; endif
;
; Check if the language requested is supported
;
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) NOT-IN $(LanguageList)
Return STATUS_NOLANGUAGE
endif
StartWait
; define all the constants
set-subst LF = "\n"
; read the UI variables and detect their setttings on the local machine
read-syms UiVars
detect UiVars
set !STF_NTPATH = $(!STF_WINDOWSSYSPATH)
GetDriveInPath !STF_NTDRIVE $(!STF_WINDOWSSYSPATH)
read-syms GeneralConstants
read-syms FileConstants
read-syms DialogConstants$(!STF_LANGUAGE)
read-syms FileConstants$(!STF_LANGUAGE)
; read the error messages section
read-syms RasErrors$(!STF_LANGUAGE)
detect date
detect version
; set the help file
read-syms HelpContextIDs
SetHelpFile $(!STF_CWDDIR)rassetup.hlp $(MinHelpID) $(MaxHelpID)
set-title $(FunctionTitle)
set to = Begin
set from = Begin
; Assume all is well.
set CommonStatus = STATUS_SUCCESSFUL
Debug-Output "OEMNSVRA.INF: STF_CWDDIR is: "$(!STF_CWDDIR)
Debug-Output "OEMNSVRA.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
Debug-Output "OEMNSVRA.INF: Option is: "$(Option)
Debug-Output "OEMNSVRA.INF: NTN_SoftwareBase is: "$(!NTN_SoftwareBase)
Debug-Output "OEMNSVRA.INF: NTN_ServiceBase is: "$(!NTN_ServiceBase)
; this call will set !PROXY_INSTALLED flag to TRUE or FALSE
; depending on wspsrv being installed or not on the local machine
Shell "" CheckProxyInstalled
Debug-Output "OEMNSVRA.INF: Proxy Service installed? "$(!PROXY_INSTALLED)
Begin = +
set !NETCARD_LIST = {}
set ServerInstalled = FALSE
set ClientInstalled = FALSE
set AdminInstalled = FALSE
set DoServer = TRUE
set DoClient = TRUE
set DoAdmin = TRUE
set DoServerOnly = FALSE
set DoClientOnly = FALSE
set DoAdminOnly = FALSE
set DoRas = FALSE
set DoRasSvr = FALSE
set DoRouter = FALSE
set DoRasMan = FALSE
set DoNdisWan = FALSE
set DoRasAsyMac = FALSE
IfStr(i) $(!NTN_InstallMode) == deinstall
Set StartLabel = RemoveRas
else-Ifstr(i) $(!NTN_InstallMode) == Update
set StartLabel = UpgradeRas
else-Ifstr(i) $(!NTN_InstallMode) == configure
set StartLabel = ConfigureRas
else-Ifstr(i) $(!NTN_InstallMode) == bind
set StartLabel = BindingsRas
else
set StartLabel = InstallRas
endif
set from = Begin
set to = end
goto $(StartLabel)
;;;;;;;;;;;;;;;;; INSTALL RAS BEGINS ;;;;;;;;;;;;;;;;;;;;;;
InstallRas = +
; Modified on 10/1/96 by RamC
; Note that we use this .inf file to install not only the RAS services, but
; also the routing services. For the beta, this is not an upgrade, so if only
; RAS is installed, warn the user that RAS should first be removed and only
; then the "routing and ras service" be installed.
StartWait
Debug-Output "In InstallRas Section"
Debug-Output "Origin is "$(!NTN_Origination)
Debug-Output "Install Mode "$(!NTN_InstallMode)
Debug-Output "Install phase "$(!NTN_InstallPhase)
Debug-Output "Copy Flag is "$(DoCopy)
Debug-Output "Option is "$(Option)
Debug-Output "SrcDir is "$(SourceDir)
Debug-Output "STF_WINDOWSPATH is "$(!STF_WINDOWSPATH)
Debug-Output "Context Inf name "$(STF_CONTEXTINFNAME)
Debug-Output "!STF_UNATTENDED is "$(!STF_UNATTENDED)
Debug-Output "!STF_GUI_UNATTENDED is "$(!STF_GUI_UNATTENDED)
Debug-Output "!STF_UNATTENDED_SECTION is "$(!STF_UNATTENDED_SECTION)
Debug-Output "Proxy Service installed? "$(!PROXY_INSTALLED)
; Do not allow the user to install routing on a NT 4.0 workstation
set WindowsVersion = "4.0"
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion" $(!MAXIMUM_ALLOWED) KeyVersion
ifstr $(KeyVersion) != $(KeyNull)
GetRegValue $(KeyVersion) "CurrentVersion" CurrVersion
ifint $(RegLastError) == 0
set WindowsVersion = *($(CurrVersion), 4)
endif
else
Debug-Output "Failed to open registry key "$(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion"
endif
Debug-Output "Windows Version is: "$(WindowsVersion)
ifstr(i) $(!STF_PRODUCT) == "WINNT"
ifstr(i) $(WindowsVersion) == "4.0"
Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "STATUS" $(No40WkstaInstall)
set CommonStatus = STATUS_USERCANCEL
goto end
endif
endif
; To support Unattended mode of installing RAS (i.e., no UI, but silent install
; unless setup encounters an error) use the following algorithm.
;
; ifstr(i) $(!STF_GUI_UNATTENDED) == YES
; then !STF_UNATTENDED contains the name of the unattended script file
; and !STF_UNATTENDED_SECTION contains the name of the section in the
; script file that we should be reading for RAS parameters.
; else
; this is an attended mode of install
; endif
set RasComponentsList = {} ; list of components installed on the system
set NumInstalled = 0 ; number of installed components
; check if the same version of RAS already exists on the system
; Modified on 10/3/96 by RamC
; Since this .inf file is now used to install Routing & Ras and for beta
; we only support a clean install of Routing, warn the user if only RAS
; is currently installed.
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(!MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
; if this is primary mode of install, then don't complain if RAS is already
; installed (more than likely by PPTP) and is being installed again by the
; setup wizard.
Ifstr(i) $(!NTN_InstallPhase) == primary
set CommonStatus = STATUS_USERCANCEL
goto end
EndIf
; check to see if the Router service is installed
; if not, warn the user to remove RAS and other MPR components before proceeding
; with the install.
OpenRegKey $(!REG_H_LOCAL) "" $(ProductRouterName) $(!MAXIMUM_ALLOWED) KeyRouter
ifstr $(KeyRouter) == $(KeyNull)
Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "STATUS" $(RemoveRasFirst)
set CommonStatus = STATUS_USERCANCEL
goto end
endif
GetRegValue $(KeyProduct) "MajorVersion" VersionInfo
set VersionMajor = *($(VersionInfo), 4)
GetRegValue $(KeyProduct) "MinorVersion" VersionInfo
set VersionMinor = *($(VersionInfo), 4)
set InstalledVersion = $(VersionMajor)"."$(VersionMinor)
; Remove RAS and reinstall it -
ifstr(i) $(ProductVersion) != $(InstalledVersion)
Shell "" QueryRasUpgrade $(ProductRASTitle) $(InstalledVersion) +
$(ProductVersion)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
Ifstr(i) $($R1) == "OK"
set from = InstallRas
set to = InstallRas1
goto RemoveRas
else
goto end
endif
endif
shell "" QueryComponentsInstalled $(ProductKeyName)
Ifstr(i) $($R0) == STATUS_SUCCESSFUL
Set RasComponentsList = $($R1)
Set InstalledFlags = $($R2)
Set ServerInstalled = *($(InstalledFlags),1)
Set ClientInstalled = *($(InstalledFlags),2)
Set AdminInstalled = *($(InstalledFlags),3)
Endif
Debug-Output "Installed List is "$(RasComponentsList)
Debug-Output "Installed Flags is "$(InstalledFlags)
QueryListSize NumInstalled $(RasComponentsList)
; the 3 components we install are server, client and admin
ifint $(NumInstalled) != 0
goto PortsConfigure
; read-syms VerExists$(!STF_LANGUAGE)
; set Text = $(Product$(Option)Title)$(Ver)$(ProductVersion)+
; $(Text1)
; Shell $(subroutninf), SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(Text)
; Ifint $($ShellCode) != $(!SHELL_CODE_OK)
; Goto fatal
; Else-Ifstr(i) $($R0) == STATUS_FAILED
; Goto fatal
; Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
; Goto end
; Endif
; Set CommonStatus = STATUS_USERCANCEL
; goto end
endif
CloseRegKey $(KeyProduct)
else
; fRemoveRas indicates to setup that RAS should be removed on failure
; during setup. We want this to happen only on first time install.
InstallRas1 =+
set fRemoveRas = TRUE
endif
goto memorycheck
setupabort = +
read-syms SetupAbortDlg$(!STF_LANGUAGE)
ui start "SetupAbort"
ifstr(i) $(DLGEVENT) == "CONTINUE"
ui pop 1
Exit
else
ui pop 1
Exit
endif
memorycheck = +
read-syms AvailableSystemMemory
detect AvailableSystemMemory
Debug-Output "Available Memory is "$(SystemMemory)
IfInt $(SystemMemory) < $(MinSystemMemory)
read-syms FatalErrorMem$(!STF_LANGUAGE)
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(Fatal)
goto setupabort
Else
; goto InstallNetwork
goto CopyResources
EndIf
; Modified on 10/13/96 - looks like nothing is going on here
;InstallNetwork =+
;
; ; Check if workstation is installed.
;
; ifstr(i) $(DoServer) == FALSE
; ifstr(i) $(DoClient) == FALSE
; goto CopyResources
; endif
; endif
;
; goto CopyResources
CopyResources = +
; if it is a primary install then YES at the end of DoAskSource ensures
; that the user is not prompted.
ifstr(i) $(!NTN_InstallMode) == "install"
Ifstr(i) $(DoCopy) == "YES"
Shell $(!UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SourceDir) YES
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
Else-Ifstr(i) $($R0) == STATUS_FAILED
Shell $(!UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
Goto end
Endif
Set !STF_SRCDIR = $($R1)
Set SourceDir = $($R1)
Debug-Output "SrcDir "$(SourceDir)
endif
; Check to see if the snmp service is running.
; tell the user that the service has to be stoped for the files
; to be copied
; we need to first make sure that the files we need are present
; in the system32 directory. We attempt to copy any missing files
; and then check to make sure these files are present before
; attempting to load rascfg.dll
forlistdo {"RTRCFG.DLL", "RASMXS.DLL", "RASFIL32.DLL", "IPXADMIN.DLL", "MPRAPI.DLL", "MPRFILTR.DLL"}
LibraryProcedure STATUS, $(!LIBHANDLE), CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$($)
ifstr(i) $(STATUS) == NO
LibraryProcedure STATUS, $(!NCPA_HANDLE), CopySingleFile $(!STF_HWND) +
$(SourceDir)"\"$($) $(!STF_WINDOWSSYSPATH)"\"$($)
endif
endforlistdo
; always copy rascfg.dll because CheckSnmpRunning is a new entry point
; which is not present in the rascfg.dll that is already in the system32
; directory - copied during textmode setup
LibraryProcedure STATUS, $(!NCPA_HANDLE), CopySingleFile +
$(!STF_HWND) $(SourceDir)"\RASCFG.DLL" $(!STF_WINDOWSSYSPATH)"\RASCFG.DLL"
Shell "" AreRequiredDllsPresent
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set MissingFiles = $($R1)
set ErrorLoadingConfigDll = $(ErrorLoadingConfigDll)" "$(MissingFiles)
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(ErrorLoadingConfigDll)
set CommonStatus = STATUS_USERCANCEL
goto end
endif
set PORTSDLGHANDLE = $(HandleNull)
LoadLibrary "x" $(!STF_WINDOWSSYSPATH)"\rascfg.dll" PORTSDLGHANDLE
LibraryProcedure Result, $(PORTSDLGHANDLE), CheckSnmpRunning
Debug-Output "Result of CheckSnmpRunning "$(Result)
ifstr(i) $(PORTSDLGHANDLE) != $(HandleNull)
Debug-Output "Unloading RASCFG.DLL"
FreeLibrary $(PORTSDLGHANDLE)
endif
set PORTSDLGHANDLE = $(HandleNull)
ifstr(i) *($(Result),1) == "RUNNING"
shell $(subroutninf) SetupMessage $(!STF_LANGUAGE) "STATUS" $(ErrorSnmpRunning)
Set CommonStatus = STATUS_USERCANCEL
goto end
endif
ifstr(i) *($(Result),1) == "RUNNING"
shell $(subroutninf) SetupMessage $(!STF_LANGUAGE) "STATUS" $(ErrorSnmpRunning)
Set CommonStatus = STATUS_USERCANCEL
goto end
endif
Debug-Output "OEMNSVRA.INF: Copying files"
Install InstallResources
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
goto filecopycancel
endif
install InstallRasFiles
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
goto filecopycancel
endif
endif
StartWait
; AdminOnly corresponds now to Lan routing only and we definitely
; need to invoke ports configuration to get the proper information
; ifstr(i) $(DoAdminOnly) == TRUE
; goto CommonCode
; endif
goto PortsConfigure
;;;;;;;;;;;;;;;;;; CONFIGURE RAS BEGINS!!! ;;;;;;;;;;;;;;;;;
ConfigureRas = +
; indicate that RAS was installed before
set OldVersionExisted = TRUE
; find out what was originally installed
read-syms StatusDeterminingConfig$(!STF_LANGUAGE)
shell $(subroutninf) PushBillBoard NETSTATUSDLG $(ReadingConfig)
Set BillboardVisible = 1
StartWait
shell "" QueryComponentsInstalled $(ProductKeyName)
Ifstr(i) $($R0) == STATUS_SUCCESSFUL
Set InstalledComps = $($R1)
Set InstalledFlags = $($R2)
Set DoServer = *($(InstalledFlags),1)
Set DoClient = *($(InstalledFlags),2)
Set DoAdmin = *($(InstalledFlags),3)
Set DoServerOnly = *($(InstalledFlags),4)
Set DoClientOnly = *($(InstalledFlags),5)
Set DoAdminOnly = *($(InstalledFlags),6)
Endif
Set ServerInstalled = $(DoServer)
Set ClientInstalled = $(DoClient)
Set AdminInstalled = $(DoAdmin)
Debug-Output "DoServer "$(DoServer)
Debug-Output "DoClient "$(DoClient)
Debug-Output "DoAdmin "$(DoAdmin)
Debug-Output "DoServerOnly "$(DoServerOnly)
Debug-Output "DoClientOnly "$(DoClientOnly)
Debug-Output "DoAdminOnly "$(DoAdminOnly)
ifstr(i) $(DoAdminOnly) == TRUE
read-syms NoConfigLAN$(!STF_LANGUAGE)
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(NoConfigLanRouting)
set CommonStatus = STATUS_USERCANCEL
goto end
endif
goto PortsConfigure
PortsConfigure = +
StartWait
Shell "" AreRequiredDllsPresent
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set MissingFiles = $($R1)
set ErrorLoadingConfigDll = $(ErrorLoadingConfigDll)" "$(MissingFiles)
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(ErrorLoadingConfigDll)
set CommonStatus = STATUS_USERCANCEL
goto end
endif
LoadLibrary "x" $(!STF_CWDDIR)rascfg.dll PORTSDLGHANDLE
read-syms StatusDeterminingConfig$(!STF_LANGUAGE)
shell $(subroutninf) PushBillBoard NETSTATUSDLG $(ReadingConfig)
Set BillboardVisible = 1
set Result = {}
; determine if the LanmanWorkstation is bound to any netcard and pass
; this information to the RasPortsConfig library procedure.
; This is used for setting the Netbios gateway information and to
; determine if the network connection restore checkbox should be checked.
set fNetcardInstalled = FALSE
shell "" IsNetcardInstalled
ifstr(i) $($R0) == STATUS_SUCCESSFUL
set fNetcardInstalled = $($R1)
endif
Debug-Output "fNetcardInstalled Option "$(fNetcardInstalled)
CheckProtocolsInstalled =+
; determine the installed protocols and pass this information to the
; config dll
shell "" QueryInstalledProtocols
ifstr(i) $($R0) == STATUS_SUCCESSFUL
set fNetbeuiInstalled = $($R1)
set fTcpIpInstalled = $($R2)
set fIpxInstalled = $($R3)
else
read-syms QueryInstalledProtocolsError$(!STF_LANGUAGE)
shell $(subroutninf) SetupMessage $(!STF_LANGUAGE) "FATAL" $(Text)
goto end
endif
; call the dialog library procedure for port configuration
; the inputs to the call are
; Install mode - one of install or configure
; fNetcardInstalled - TRUE if a netcard is installed in the system, else
; FALSE
; ProductPath - SystemRoot\ras
; fNetbeuiInstalled - TRUE if Netbeui is installed, else FALSE
; fTcpIpInstalled - TRUE if TcpIp is installed, else FALSE
; fIpxInstalled - TRUE if Ipx is installed, else FALSE
Ifint $(BillboardVisible) != 0
Shell "subroutn.inf" PopBillboard
Set BillboardVisible = 0
Endif
Debug-Output "!STF_UNATTENDED is "$(!STF_UNATTENDED)
Debug-Output "!STF_GUI_UNATTENDED is "$(!STF_GUI_UNATTENDED)
Debug-Output "!STF_UNATTENDED_SECTION is "$(!STF_UNATTENDED_SECTION)
LibraryProcedure Result, $(PORTSDLGHANDLE), RasPortsConfig $(!STF_HWND) +
$(!NTN_InstallMode) $(fNetcardInstalled) $(ProductPath) +
$(fNetbeuiInstalled) $(fTcpIpInstalled) $(fIpxInstalled) +
$(!STF_GUI_UNATTENDED) $(!STF_UNATTENDED) $(!STF_UNATTENDED_SECTION)
StartWait
; now that we are back in the inf file figure out what the configuration is
; from the Result returned by the dll. Result is a list of strings.
; now that we are back in the inf file figure out what the configuration is
; from the Result returned by the dll. Result is a list of strings.
set NewNumPorts = 0
set NewNumTapiPorts = 0
set NewNumDialoutNBF = 0
set NewNumDialinNBF = 0
set NewNumDialinIP = 0
set NewNumDialoutIP = 0
set NewNumDialinoutIPX = 0
set fSerialInstalled = FALSE
set fUnimodemInstalled = FALSE
set fOtherInstalled = FALSE
; are the protocols selected for dialin or dialout?
set fNetbeuiChosen = FALSE
set fTcpIpChosen = FALSE
set fIpxChosen = FALSE
; are the protocols selected for dialout? (the naming is historical)
set fNetbeuiSelected = FALSE
set fTcpIpSelected = FALSE
set fIpxSelected = FALSE
; are the protocols selected for dialin?
set fNetbeuiAllowed = FALSE
set fTcpIpAllowed = FALSE
set fIpxAllowed = FALSE
; NewNumPorts is a count of serial and "OTHER" (like ether ras)
; ports installed.
; NewNumTapiPorts is a count ofisdn and other TAPI ports installed
set NewNumPorts = *($(Result),1)
set NewNumTapiPorts = *($(Result),2)
set NewNumPortsList = {}
set NullString = ""
Debug-Output "PortsConfigure returned: "$(Result)
Debug-Output "PortsConfigure NewNumPorts: "$(NewNumPorts)
Debug-Output "PortsConfigure NewNumTapiPorts: "$(NewNumTapiPorts)
ifstr(i) $(NewNumPorts) == "EXITSETUP"
Debug-Output "PortsConfigre User selected ExitSetup."
goto RemoveDiskFiles
else-ifstr(i) $(NewNumPorts) == "NOPORTS"
Debug-Output "PortsConfigre: No serial ports detected."
shell $(subroutninf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorNoPorts)
goto RemoveDiskFiles
else-ifstr(i) $(NewNumPorts) == "BADARGS"
Debug-Output "PortsConfigre: bad arguments to dll."
shell $(subroutninf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorBadArgs)
goto RemoveDiskFiles
else-ifstr(i) $(NewNumPorts) == "FAILURE"
Debug-Output "PortsConfigre: Unknown failure."
shell $(subroutninf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorUnknown)
goto RemoveDiskFiles
endif
goto PortsConfigure1
RemoveDiskFiles = +
; remove ras files if user selected cancel or if there were errors during
; install.
set CommonStatus = STATUS_USERCANCEL
ifstr(i) $(!NTN_InstallMode) == "install"
goto filecopycancel
endif
goto end
PortsConfigure1 = +
set NewNumDialoutNBF = *($(Result),3)
Debug-Output "PortsConfigure NewNumDialoutNBF: "$(NewNumDialoutNBF)
set NewNumDialinNBF = *($(Result),4)
Debug-Output "PortsConfigure NewNumDialinNBF: "$(NewNumDialinNBF)
set fSerialInstalled = *($(Result),5)
Debug-Output "PortsConfigure fSerialInstalled: "$(fSerialInstalled)
set fUnimodemInstalled = *($(Result),6)
Debug-Output "PortsConfigure fUnimodemInstalled: "$(fUnimodemInstalled)
set fOtherInstalled = *($(Result),7)
Debug-Output "PortsConfigure fOtherInstalled: "$(fOtherInstalled)
ifstr(i) $(fSerialInstalled) == TRUE
set NewNumPortsList = >($(NewNumPortsList), $(NullString)$(NewNumPorts)$(NullString))
else-ifstr(i) $(fOtherInstalled) == TRUE
set NewNumPortsList = >($(NewNumPortsList), $(NullString)$(NewNumPorts)$(NullString))
else-ifstr(i) $(fUnimodemInstalled) == TRUE
set NewNumPortsList = >($(NewNumPortsList), $(NullString)$(NewNumPorts)$(NullString))
endif
set fNetbeuiSelected = *($(Result),8)
Debug-Output "PortsConfigure NetbeuiSelected: "$(fNetbeuiSelected)
set fTcpIpSelected = *($(Result),9)
Debug-Output "PortsConfigure TcpIpSelected: "$(fTcpIpSelected)
set fIpxSelected = *($(Result),10)
Debug-Output "PortsConfigure IpxSelected: "$(fIpxSelected)
set fNetbeuiAllowed = *($(Result),11)
Debug-Output "PortsConfigure NetbeuiAllowed: "$(fNetbeuiAllowed)
set fTcpIpAllowed = *($(Result),12)
Debug-Output "PortsConfigure TcpIpAllowed: "$(fTcpIpAllowed)
set fIpxAllowed = *($(Result),13)
Debug-Output "PortsConfigure IpxAllowed: "$(fIpxAllowed)
set InstallRas = *($(Result),14)
Debug-Output "PortsConfigure InstallRas: "$(InstallRas)
set InstallDdm = *($(Result),15)
Debug-Output "PortsConfigure InstallDdm: "$(InstallDdm)
set InstallLan = *($(Result),16)
Debug-Output "PortsConfigure InstallLan: "$(InstallLan)
set dwRouterType = *($(Result),17)
Debug-Output "PortsConfigure dwRouterType: "$(dwRouterType)
ifstr(i) $(fNetbeuiSelected) == TRUE
set fNetbeuiChosen = TRUE
else
set fNetbeuiChosen = $(fNetbeuiAllowed)
endif
ifstr(i) $(fTcpIpSelected) == TRUE
set fTcpIpChosen = TRUE
else
set fTcpIpChosen = $(fTcpIpAllowed)
endif
ifstr(i) $(fIpxSelected) == TRUE
set fIpxChosen = TRUE
else
set fIpxChosen = $(fIpxAllowed)
endif
; compute the adapters needed for TCP/IP
ifstr(i) $(fTcpIpSelected) == TRUE
set NewNumDialoutIP = $(NewNumDialoutNBF)
endif
ifint $(NewNumDialinNBF) != 0
ifstr(i) $(fTcpIpAllowed) == TRUE
set NewNumDialinIP = 1
endif
endif
Debug-Output "NewNumDialinIP: "$(NewNumDialinIP)
Debug-Output "NewNumDialoutIP: "$(NewNumDialoutIP)
; compute the adapters needed for IPX
; NOTE for Daytona beta this is equal to number of ports
ifstr(i) $(fIpxChosen) == TRUE
; set-add NewNumDialinoutIPX = $(NewNumPorts), $(NewNumTapiPorts)
; Only one IPX binding is required irrespective of how many ports
set NewNumDialinoutIPX = 1
Debug-Output "IPX Selected - NewNumDialinoutIPX: "$(NewNumDialinoutIPX)
endif
; enable the IPX router if the user allows dial-in on IPX protocol
ifstr(i) $(fIpxAllowed) == TRUE
set EnableIpxRouter = 1
else
set EnableIpxRouter = 0
endif
; if nbf is not selected, then reduce the number of bindings accordingly
ifstr(i) $(fNetbeuiAllowed) == FALSE
set NewNumDialinNBF = 0
endif
ifstr(i) $(fNetbeuiSelected) == FALSE
set NewNumDialoutNBF = 0
endif
Debug-Output "NewNumDialinNbf: "$(NewNumDialinNBF)
Debug-Output "NewNumDialoutNbf: "$(NewNumDialoutNBF)
; if the router type selected is LAN only, then we have to skip installing
; all RAS related services
set LanRoutingOnly = FALSE
ifstr(i) $(InstallRas) == FALSE
ifstr(i) $(InstallDdm) == FALSE
set LanRoutingOnly = TRUE
endif
endif
; Determine the network access for each protocol. This controls if the
; remote client can access the entire network or just the RAS server
; when dialed in using the particular protocol.
set NetBiosGtwyEnabled = 0
set EnableIpRouter = 0
set EnableWanRouter = 0
Shell "" GetNetworkAccess
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling GetNetworkAccess."
goto ShellCodeError
endif
set NetBiosGtwyEnabled = $($R1)
ifstr(i) $(LanRoutingOnly) == TRUE
ifstr(i) $(fTcpIpAllowed) == TRUE
set EnableIpRouter = 1
endif
ifstr(i) $(fIpxAllowed) == TRUE
set EnableWanRouter = 1
endif
else
set EnableIpRouter = $($R2)
set EnableWanRouter = $($R3)
endif
; If the NetBiosGtwyEnabled is 0 (point to point connection), then map
; all dialin ports to dialout ports so that the bindings are proper for
; a point to point connection for NBF.
ifint $(NetBiosGtwyEnabled) == 0
ifstr(i) $(fNetbeuiAllowed) == TRUE
set-add NewNumDialoutNBF = $(NewNumDialoutNBF), $(NewNumDialinNBF)
set NewNumDialinNBF = 0
Debug-Output "Mapped dialin ports to dialout ports "$(NewNumDialoutNBF)
endif
endif
; compute the total number of dialin and dialout ports here.
set NewNumDialin = 0
set NewNumDialout = 0
set-add NewNumDialin = $(NewNumDialinNBF), $(NewNumDialinIP)
; since ipx uses one binding marked for dialin/dialout we need
; to make sure that IPX is configured for dialin for this computation
ifstr(i) $(fIpxAllowed) == TRUE
set-add NewNumDialin = $(NewNumDialin), $(NewNumDialinoutIPX)
endif
set-add NewNumDialout = $(NewNumDialoutNBF), $(NewNumDialoutIP)
; since ipx uses one binding marked for dialin/dialout we need
; to make sure that IPX is configured for dialout for this computation
ifstr(i) $(fIpxSelected) == TRUE
set-add NewNumDialout = $(NewNumDialout), $(NewNumDialinoutIPX)
endif
CommonCode = +
ifstr(i) $(OldVersionExisted) == TRUE
; Modified on 10/13/96, for routing related changes
; We can get here both in install and configure mode because we allow
; multiple installations of different routing components
; ifstr(i) $(!NTN_InstallMode) == configure
goto WriteParameters
; endif
endif
; if no Ras component was installed before, this is the first time
; installation
QueryListSize ListCount $(RasComponentsList)
ifint $(ListCount) == 0
goto FirstTimeInstall
else
ifstr(i) $(DoServer) == TRUE
ifstr(i) $(ClientInstalled) == FALSE
ifstr(i) $(AdminInstalled) == FALSE
set DoRas = TRUE
endif
set DoRasSvr = TRUE
set DoRasMan = TRUE
set DoRasAutodial = TRUE
set DoNdisWan = TRUE
set DoRasAsyMac = TRUE
else-ifstr(i) $(ServerInstalled) == FALSE
set DoRasSvr = TRUE
endif
set RasComponentsList = >($(RasComponentsList), $(RasServerOption))
endif
ifstr(i) $(DoClient) == TRUE
ifstr(i) $(ServerInstalled) == FALSE
ifstr(i) $(AdminInstalled) == FALSE
set DoRas = TRUE
endif
set DoRasMan = TRUE
set DoRasAutodial = TRUE
set DoNdisWan = TRUE
set DoRasAsyMac = TRUE
endif
set RasComponentsList = >($(RasComponentsList), $(RasClientOption))
endif
ifstr(i) $(DoAdmin) == TRUE
ifstr(i) $(ServerInstalled) == FALSE
ifstr(i) $(ClientInstalled) == FALSE
set DoRas = TRUE
endif
endif
set RasComponentsList = >($(RasComponentsList), $(RasAdminOption))
endif
; we need to update the registry with the new component list
shell "" UpdateComponentsInstalled $(RasComponentsList) $(ProductKeyName)
goto FirstTimeInstall-1
endif
FirstTimeInstall =+
ifstr(i) $(DoServer) == TRUE
set DoRas = TRUE
set DoRouter = TRUE
ifstr(i) $(LanRoutingOnly) != TRUE
set DoRasSvr = TRUE
set DoRasMan = TRUE
set DoRasAutodial = TRUE
set DoNdisWan = TRUE
set DoRasAsyMac = TRUE
set RasComponentsList = >($(RasComponentsList), $(RasServerOption))
endif
endif
ifstr(i) $(DoClient) == TRUE
set DoRas = TRUE
ifstr(i) $(LanRoutingOnly) != TRUE
set DoRasMan = TRUE
set DoRasAutodial = TRUE
set DoNdisWan = TRUE
set DoRasAsyMac = TRUE
set RasComponentsList = >($(RasComponentsList), $(RasClientOption))
endif
endif
ifstr(i) $(DoAdmin) == TRUE
ifstr(i) $(ServerInstalled) == FALSE
ifstr(i) $(ClientInstalled) == FALSE
set DoRas = TRUE
endif
endif
set RasComponentsList = >($(RasComponentsList), $(RasAdminOption))
endif
FirstTimeInstall-1 = +
ifstr(i) $(DoRas) == TRUE
StartWait
read-syms StatusUpdatingRegistry$(!STF_LANGUAGE)
shell $(subroutninf) PushBillBoard NETSTATUSDLG $(CreatingRas)
Set BillboardVisible = 1
; Modification done on 9/24/96 by RamC - changed the option from RAS to
; Routing for the routing related changes
set ThisOption = RAS
Shell $(!UtilityInf), InstallSoftwareProduct, $(!Manufacturer),+
$(Product$(ThisOption)Name), $(!RasInfName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "InstallSoftware bombed out."
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
Debug-Output "REGISTRY GOODAL"
CloseRegKey $($R1)
CloseRegKey $($R2)
goto fatalregistry
endif
;
; At this point:
; $R1 contains the product version key handle;
; $R2 contains the NetRules subkey handle;
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
; set product key information in the registry
set NewValueList = +
{{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)},+
{SoftwareType,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)SvcType)},+
{Title,$(NoTitle),$(!REG_VT_SZ), $(Product$(ThisOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Description)},+
{PathName,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)ImagePath)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMinorVersion)},+
{RasComponents,$(NoTitle),$(!REG_VT_MULTI_SZ),$(RasComponentsList)},+
{OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)}, +
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(!CurrentDate),1)}}
Shell $(!UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftNetRuleKey)
goto fatalregistry
endif
; set netrules information in the registry
set NewValueList = +
{{class, $(NoTitle), $(!REG_VT_SZ), $(NetRule$(ThisOption)Class)},+
{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)}, +
;Modified on 9/24/96 - changed ThisOption to ROUTING
; {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ), "RAS"}, +
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)}}
Shell $(!UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftNetRuleKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto fatalregistry
endif
endif ; DoRas
ifstr(i) $(DoRasSvr) == TRUE
set ThisOption = RASSVR
set RasSpecificString = $(Product$(ThisOption)Name)
Shell $(!UtilityInf), AddSoftwareComponent, $(!Manufacturer), +
$(Product$(ThisOption)Name), $(Product$(ThisOption)Name), +
$(Product$(ThisOption)DisplayName), +
$(!RasInfName), $(Product$(ThisOption)ImagePath),+
"serviceshare", "Network", {"LanmanServer","RasMan"}, "", +
$(!RouterMsgDll), $(!RasEventTypeSupported)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRasSvr: AddSoftware bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
Debug-Output "DoRasSvr: Registry Error "$(RegistryErrorIndex)
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
endif
;
; At this point:
; $R1 contains the product version key handle;
; $R2 contains the NetRules subkey handle;
; $R3 contains the new Services key handle; and
; $R4 contains the Parameters key
; $R5 contains the Linkage key
;
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
set SoftServiceKey = $($R3)
Set SoftParamsKey = $($R4)
Set SoftLinkageKey = $($R5)
; set product key information in the registry
set NewValueList = +
{{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Name)},+
{SoftwareType,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)SvcType)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Description)},+
{PathName,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)ImagePath)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMinorVersion)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(!CurrentDate),1)},+
{Hidden,$(NoTitle),$(!REG_VT_DWORD),$(!HideComponent)}}
Shell $(!UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRasSvr:product: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
Debug-Output "DoRasSvr: Registry Error "$(RegistryErrorIndex)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
goto fatalregistry
endif
; set netrules information in the registry
set NewValueList = +
{{class, $(NoTitle), $(!REG_VT_SZ), $(NetRule$(ThisOption)Class)},+
{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)}, +
;Modified on 9/24/96 - changed ThisOption to ROUTING
; {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ), "RAS"}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),+
$(NetRule$(ThisOption)BindForm)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),+
$(NetRule$(ThisOption)Bindable)}, +
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)}}
Shell $(!UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRasSvr:netrules: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftNetRuleKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
Debug-Output "DoRasSvr: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
; Set OtherDependencies so that NCPA will generate the proper
; DependOnService value.
; Don't set the netlogon dependency, because there is no
; netlogon service in NT Cairo
;; set Netlogon dependency only for Advanced servers
; Also add NetBIOS dependency if, NetBIOS is installed
set RasDependencies = {"LanmanServer","RasMan"}
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NetBios" $(!MAXIMUM_ALLOWED) KeyNetBios
ifstr $(KeyNetBios) != $(KeyNull)
set RasDependencies = >($(RasDependencies),"NetBios")
CloseRegKey $(KeyNetBios)
endif
Debug-Output "DoRasSvr: Adding RasDependencies "$(RasDependencies)
set NewValueList = +
{{OtherDependencies, $(NoTitle), $(!REG_VT_MULTI_SZ),+
$(RasDependencies)}}
Shell $(!UtilityInf), AddValueList, $(SoftLinkageKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRasSvr:Linkage: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftLinkageKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
Debug-Output "DoRasSvr: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
; create default parameters
set NewValueList = +
{{AuthenticateRetries, $(NoTitle), $(!REG_VT_DWORD), 2},+
{AuthenticateTime, $(NoTitle), $(!REG_VT_DWORD), 120},+
{Autodisconnect, $(NoTitle), $(!REG_VT_DWORD), 20},+
{EnableAudit, $(NoTitle), $(!REG_VT_DWORD), 1},+
{CallbackTime, $(NoTitle), $(!REG_VT_DWORD), 2}}
Shell $(!UtilityInf), AddValueList, $(SoftParamsKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
goto fatalregistry
endif
OpenRegKey $(SoftParamsKey) "" "NetBiosGateway" $(!MAXIMUM_ALLOWED) KeyNetbiosGtwy
ifstr $(KeyNtbiosGtwy) == $(KeyNull)
CreateRegKey $(SoftParamsKey) {"NetBiosGateway",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyNetbiosGtwy
OpenRegKey $(SoftParamsKey) "" "NetBiosGateway" $(!MAXIMUM_ALLOWED) KeyNetbiosGtwy
endif
set NewValueList = +
{{EnableBroadcast, $(NoTitle), $(!REG_VT_DWORD), 0},+
{EnableNetbiosSessionsAuditing, $(NoTitle), $(!REG_VT_DWORD), 0},+
{MaxDynMem, $(NoTitle), $(!REG_VT_DWORD), 655350},+
{MaxNames, $(NoTitle), $(!REG_VT_DWORD), 255},+
{MaxSessions, $(NoTitle), $(!REG_VT_DWORD), 255},+
{MulticastForwardRate, $(NoTitle), $(!REG_VT_DWORD), 5},+
{SizWorkbuf, $(NoTitle), $(!REG_VT_DWORD), 4500},+
{RemoteListen, $(NoTitle), $(!REG_VT_DWORD), 1},+
{NameUpdateTime, $(NoTitle), $(!REG_VT_DWORD), 120},+
{MaxDgBufferedPerGroupName, $(NoTitle), $(!REG_VT_DWORD), 10},+
{RcvDgSubmittedPerGroupName, $(NoTitle), $(!REG_VT_DWORD), 3},+
{DisableMcastFwdWhenSessionTraffic, $(NoTitle), $(!REG_VT_DWORD), 1},+
{MaxBcastDgBuffered, $(NoTitle), $(!REG_VT_DWORD), 32},+
{NumRecvQueryIndications, $(NoTitle), $(!REG_VT_DWORD), 3}}
Shell $(!UtilityInf), AddValueList, $(KeyNetbiosGtwy), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
goto fatalregistry
endif
CloseRegKey $(KeyNetbiosGtwy)
CloseRegKey $(SoftParamsKey)
; Add the performance data to the remoteaccess\performance service key
; and load the perf counters to the registry.
Shell "" UpdatePerfmonInfoHelper $(SoftServiceKey)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling UpdatePerfmonInfoHelper."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by UpdatePerfmonInfoHelper."
endif
CloseRegKey $(SoftServiceKey)
;;;;;;;;;;;;;;
endif ; DoRasSvr
InstallRouter =+
ifstr(i) $(DoRouter) == TRUE
; Install the router service and create the router manager keys
; if LAN or demand dial routing is selected. In the case of a RAS
; only install, we create the router manager information without
; displaying any UI because the user doesn't expect to see any
; UI related to router managers.
Shell "" InstallRouterService $(InstallDdm) $(InstallRas) $(RoutingKeyList) $(RoutingValueList)
goto InstallRouterEnd
endif ; DoRouter
InstallRouterEnd = +
; Add the static dependency on RasMan service only if
; demand dial routing is enabled
ifstr(i) $(LanRoutingOnly) != TRUE
Shell "" AddServiceDependency "Router" "RasMan"
endif
Debug-Output "!PROXY_INSTALLED = "$(!PROXY_INSTALLED)
ifstr(i) $(!PROXY_INSTALLED) == "TRUE"
Shell "" AddServiceDependency "Router" "mspadmin"
endif
; this dependency is required for RouterAdmin to show routing info
Shell "" AddServiceDependency "Router" "LanManServer"
; add pptp filters to lan interfaces if they were previously specified
Debug-Output "AddPPTPFilters entry."
LibraryProcedure Result, $(PORTSDLGHANDLE), AddPPTPFilters
Debug-Output "AddPPTPFilters exit result = "$(Result)
InstallRasMan = +
ifstr(i) $(DoRasMan) == TRUE
set ThisOption = RASMAN
set RasSpecificString = $(Product$(ThisOption)Name)
Shell $(!UtilityInf), AddSoftwareComponent, $(!Manufacturer), +
$(Product$(ThisOption)Name), $(Product$(ThisOption)Name), +
$(Product$(ThisOption)DisplayName), +
$(!RasInfName), $(Product$(ThisOption)ImagePath), "serviceshare",+
"Network", {}, "", $(!RouterMsgDll), $(!RasEventTypeSupported)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddSoftware bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
endif
;
; At this point:
; $R1 contains the product version key handle;
; $R2 contains the NetRules subkey handle;
; $R3 contains the new Services key handle; and
; $R4 contains the Parameters key
; $R5 contains the Linkage key
;
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
CloseRegKey $($R3)
Set SoftParamsKey = $($R4)
CloseRegKey $($R5)
; set product key information in the registry
set NewValueList = +
{{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Name)},+
{SoftwareType,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)SvcType)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Description)},+
{PathName,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)ImagePath)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMinorVersion)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(!CurrentDate),1)},+
{Hidden,$(NoTitle),$(!REG_VT_DWORD),$(!HideComponent)}}
Shell $(!UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftParamsKey)
goto fatalregistry
endif
; set netrules information in the registry
set NewValueList = +
{{class, $(NoTitle), $(!REG_VT_SZ), $(NetRule$(ThisOption)Class)},+
{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),+
$(NetRule$(ThisOption)BindForm)}, +
{bindable,$(NoTitle),$(!REG_VT_SZ),+
$(NetRule$(ThisOption)Bindable)}, +
;Modified on 9/24/96 - changed ThisOption to ROUTING
; {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ), "RAS"}, +
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)}}
Shell $(!UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftNetRuleKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto fatalregistry
endif
set NewValueList = {{Logging, $(NoTitle), $(!REG_VT_DWORD), 0}}
Shell $(!UtilityInf), AddValueList, $(SoftParamsKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto fatalregistry
endif
CloseRegKey $(SoftParamsKey)
Shell "" AddServiceDependency "RasMan" "tapisrv"
Shell "" AddServiceDependency "RasMan" "rpcss"
; this dependency is required for ppp to start up fine
Shell "" AddServiceDependency "RasMan" "LanManWorkstation"
endif ; DoRasMan
ifstr(i) $(DoRasAutodial) == TRUE
set ThisOption = RASAUTODIAL
set RasSpecificString = $(!Product$(ThisOption)Name)
Shell "" InstallSoftwareAndService $(ThisOption)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling InstallSoftwareAndService for "$(ThisOption)
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Error from InstallSoftwareAndService for"$(ThisOption)
goto end
endif
; Disable the RasAuto service if this is not a NT Workstation
; Also disable the RasAuto service if there is no dialout port configured
; RamC 6/13/96 don't disable RasAuto for NT Server any more because
; redial-on-link-failure is implemented in autodial service and it should
; be enabled if one or more dialout ports are configured.
set DisableAutoDial = FALSE
ifint $(NewNumDialout) == 0
set DisableAutoDial = TRUE
; else-ifstr(i) $(!STF_PRODUCT) != "WINNT"
; set DisableAutoDial = TRUE
endif
ifstr(i) $(DisableAutoDial) == TRUE
OpenRegKey $(!REG_H_LOCAL) "" $(!RasAutodialKeyName) $(!MAXIMUM_ALLOWED) KeyAutodial
ifstr $(KeyAutodial) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open RasAuto key"
else
SetRegValue $(KeyAutodial) {Start, $(NoTitle), $(!REG_VT_DWORD), 4}
CloseRegKey $(KeyAutodial)
endif
endif
; install the RasAcd service
Shell "" InstallRasAcdService
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling InstallRasAcdService"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Error from InstallRasAcdService"
goto end
endif
; Make RasAuto dependent on TapiSrv, a new service
Shell "" AddServiceDependency "RasAuto" "RasMan"
Shell "" AddServiceDependency "RasAuto" "tapisrv"
endif ; DoRasAutodial
ifstr(i) $(DoNdisWan) == TRUE
set ThisOption = NDISWAN
set RasSpecificString = $(Product$(ThisOption)Name)
Shell $(!UtilityInf), AddSoftwareComponent, $(!Manufacturer), +
$(!Product$(ThisOption)Name), $(!Product$(ThisOption)Name), +
$(!Product$(ThisOption)DisplayName), +
$(!RasInfName), $(!Product$(ThisOption)ImagePath),+
"kernelautostart", "NDISWAN", {}, "", +
$(!RouterMsgDll), $(!RasEventTypeSupported)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddSoftware bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
endif
;
; At this point:
; $R1 contains the product version key handle;
; $R2 contains the NetRules subkey handle;
; $R3 contains the new Services key handle; and
; $R4 contains the Parameters key
; $R5 contains the Linkage key
;
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
; set product key information in the registry
set NewValueList = +
{{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)Name)},+
{SoftwareType,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Type)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(!Product$(ThisOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)Description)},+
{PathName,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)ImagePath)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMinorVersion)},+
{BindControl,$(NoTitle),$(!REG_VT_DWORD),$(HideBindings)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(!CurrentDate),1)},+
{Hidden,$(NoTitle),$(!REG_VT_DWORD),$(!HideComponent)}}
Shell $(!UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftNetRuleKey)
goto fatalregistry
endif
; set netrules information in the registry
set NewValueList = +
{{class, $(NoTitle), $(!REG_VT_MULTI_SZ), $(!NetRule$(ThisOption)Class)},+
{type,$(NoTitle),$(!REG_VT_SZ),$(!NetRule$(ThisOption)Type)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),+
$(!NetRule$(ThisOption)BindForm)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),+
$(!NetRule$(ThisOption)Bindable)}, +
;Modified on 9/24/96 - changed ThisOption to ROUTING
; {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ), "RAS"}, +
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)}}
Shell $(!UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftNetRuleKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto fatalregistry
endif
; Create an adapter to allow Blood Hound (sniffer) to bind to it.
; this is always created even if blood hound is not installed.
Shell "" InstallNdisWanBHAdapter
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Cannot add NdisWan Blood hound adapter"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set RegistryErrorIndex = $($R0)
Debug-Output "Error installing NdisWan Blood hound adapter"
goto fatalregistry
endif
; Add NDISWAN to the ServiceGroupOrder so that all NDIS components
; load before NdisWan driver.
Shell "" AddNDISWANToServiceGroupOrder
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Cannot add NDISWAN to ServiceGroupOrder"
goto ShellCodeError
endif
DoNdisWanEnd = +
endif ; DoNdisWan
ifstr(i) $(DoRasAsyMac) == TRUE
set ThisOption = RASASYMAC
set RasSpecificString = $(Product$(ThisOption)Name)
; If a serial port is configured, enable Asymac service else disable it
ifstr(i) $(fSerialInstalled) == TRUE
set AsySoftwareType = "kernelautostart"
else-ifstr(i) $(fOtherInstalled) == TRUE
set AsySoftwareType = "kernelautostart"
else-ifstr(i) $(fUnimodemInstalled) == TRUE
set AsySoftwareType = "kernelautostart"
else
set AsySoftwareType = "kerneldisable"
endif
Shell $(!UtilityInf), AddSoftwareComponent, $(!Manufacturer), +
$(Product$(ThisOption)Name), $(Product$(ThisOption)Name), +
$(Product$(ThisOption)DisplayName), +
$(!RasInfName), $(Product$(ThisOption)ImagePath), $(AsySoftwareType),+
"NDIS", {}, "", $(!RouterMsgDll), $(!RasEventTypeSupported)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddSoftware bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
endif
;
; At this point:
; $R1 contains the product version key handle;
; $R2 contains the NetRules subkey handle;
; $R3 contains the new Services key handle; and
; $R4 contains the Parameters key
; $R5 contains the Linkage key
;
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
; set product key information in the registry
set NewValueList = +
{{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Name)},+
{SoftwareType,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Type)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Description)},+
{PathName,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)ImagePath)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMinorVersion)},+
{BindControl,$(NoTitle),$(!REG_VT_DWORD),$(HideBindings)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(!CurrentDate),1)},+
{Hidden,$(NoTitle),$(!REG_VT_DWORD),$(!HideComponent)}}
Shell $(!UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftNetRuleKey)
goto fatalregistry
endif
; set netrules information in the registry
set NewValueList = +
{{class, $(NoTitle), $(!REG_VT_MULTI_SZ), $(NetRule$(ThisOption)Class)},+
{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),+
$(NetRule$(ThisOption)BindForm)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),+
$(!NetRule$(ThisOption)Bindable)}, +
;Modified on 9/24/96 - changed ThisOption to ROUTING
; {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ), "RAS"}, +
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)}}
Shell $(!UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftNetRuleKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto fatalregistry
endif
; Create the HARDWARE\Netcard region and its corresponding service
Shell $(!UtilityInf), AddHardwareComponent, +
$(Product$(ThisOption)Name),$(!RasInfName),+
$(Product$(ThisOption)KeyName)
ifint $($R4) != -1
Set !NETCARD_LIST = >($(!NETCARD_LIST), +
{$(Product$(ThisOption)Name),+
$(!NetworkCardKeyName)"\"$($R4)})
endif
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Cannot add hardware component"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "Registry error: add hardware component"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
goto fatalregistry
endif
; At this point:
; $R1 Registry key variable for HARDWARE\Netcard\(n)
; $R2 Registry key variable for HARDWARE\Netcard\(n)\\NetRules
; $R3 Registry key handle for <service>\Parameters key
; $R4 Adapter number assigned to adapter
; $R5 Service name generated by combining svc name with adapter
; number
set KeyNetcard = $($R1)
set KeyParameters = $($R3)
set KeyAdapterRules = $($R2)
set AdapterNumber = $($R4)
set NewValueList = +
{{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(!Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),+
"["$($R4)"] "$(Product$(ThisOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Description)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),+
$(Product$(ThisOption)Name)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(!CurrentDate),1)},+
{Hidden,$(NoTitle),$(!REG_VT_DWORD),$(!HideComponent)}}
Shell $(!UtilityInf), AddValueList, $(KeyNetcard), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error"
goto ShellCodeError
endif
CloseRegKey $(KeyNetcard)
set TempProdName = """"$(Product$(ThisOption)Name)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(NetRuleHardware$(ThisOption)BindForm)
set NewValueList = +
{{type,$(NoTitle),$(!REG_VT_SZ),+
$(NetRuleHardware$(ThisOption)Type)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),+
$(NetRuleHardware$(ThisOption)Class)}, +
;Modified on 9/24/96 - changed ThisOption to ROUTING
; {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ), "RAS"}, +
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)}}
Shell $(!UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error."
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "Resgitry error: add value list."
CloseRegKey $(KeyParameters)
CloseRegKey $(KeyAdapterRules)
goto fatalregistry
endif
CloseRegKey $(KeyAdapterRules)
CloseRegKey $(KeyParameters)
endif ; DoRasAsyMac
; install the connection wrapper if RAS or demand dial routing
; installed
ifstr(i) $(LanRoutingOnly) != TRUE
Shell "" InstallNdisTapiService
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling InstallNdisTapiService "
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set RegistryErrorIndex = $($R0)
Debug-Output "Error installing NdisTapi Service"
goto fatalregistry
endif
endif
; add the Radius service and create the perf counters reg keys as well
shell "" InstallRasRad
;EndCommonCode
goto WriteParameters
WriteParameters = +
; The various parameters for the RAS components are written to the
; registry in this section.
; ifstr(i) $(DoAdminOnly) == TRUE
; goto WriteParametersOver
; endif
StartWait
read-syms StatusUpdatingRegistry$(!STF_LANGUAGE)
shell $(subroutninf) PushBillBoard NETSTATUSDLG $(WritingRasParams)
Set BillboardVisible = 1
Debug-Output "Writing Registry Parameters."
; Now run ipsetup.exe and/or ipxsetup.exe depending on selected protocols
set InstallRouting = FALSE
ifstr(i) $(InstallDdm) == TRUE
set InstallRouting = TRUE
else-ifstr(i) $(InstallLan) == TRUE
set InstallRouting = TRUE
endif
; Don't show the user any UI, just silently add the required interfaces
; and let the user add/remove routing protocols from RTRADMIN.
Debug-Output "AddRtrMgrAndLanInterfaces entry."
LibraryProcedure Result, $(PORTSDLGHANDLE), AddRtrMgrAndLanInterfaces $(fTcpIpChosen) $(fIpxChosen)
ifstr(i) $(Result) == ERROR
Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "STATUS" $(ErrorAddingRtrMgr)
else
Debug-Output "AddRtrMgrAndLanInterfaces exit."
endif
; Write Ras Server parameters
; check if server is installed
ifstr(i) $(DoServer) != TRUE
goto WriteRasMan
endif
; ; Router Service should be set to autostart only if there is
; ; at least one dialin port and the server is Advanced.
;
Debug-Output "OEMNSVRA.INF: Product type "$(!STF_PRODUCT)
Debug-Output "OEMNSVRA.INF: Total dialin ports "$(NewNumDialin)
Debug-Output "OEMNSVRA.INF: Total dialout ports "$(NewNumDialout)
; default RemoteAccess start type to Demand Start
set RasStartValue = 3
ifstr(i) $(!STF_PRODUCT) != "WINNT"
ifint $(NewNumDialin) != 0
; if this is an advanced server and there is at least one
; dialin port, set start type to Auto Start
set RasStartValue = 2
endif
endif
set KeySvr = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(!RouterKeyName) $(!MAXIMUM_ALLOWED) KeySvr
ifstr $(KeySvr) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open Services\Router key"
else
; if the user previously set the start type, then use that value
; otherwise, set to our defaults
ifstr(i) $(!NTN_InstallMode) != install
GetRegValue $(KeySvr) "Start" StartList
ifint $(RegLastError) == 0
set RasStartValue = *($(StartList), 4)
endif
endif
; if there are no dialin ports configured then change the start type
; to Demand only if the service is not currently disabled.
ifint $(NewNumDialin) == 0
ifint $(RasStartValue) != 4
set RasStartValue = 3
endif
endif
Debug-Output "OEMNSVRA.INF: Setting Router start type to "$(RasStartValue)
SetRegValue $(KeySvr) {Start,$(NoTitle),$(!REG_VT_DWORD),$(RasStartValue)}
CloseRegKey $(KeySvr)
endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; LAN Routing only, so no need to the following. instead go to WriteProtocolInfo
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Debug-Output "WriteParameters LanRoutingOnly= "$(LanRoutingOnly)
; If Lan routing only is chosen
ifstr(i) $(LanRoutingOnly) == TRUE
Debug-Output "WriteParameters: to WriteProtocolInfo because LanRoutingOnly enabled"
goto WriteProtocolInfo
endif
OpenRegKey $(!REG_H_LOCAL) "" $(RasSvrParamKeyName) $(!MAXIMUM_ALLOWED) KeySrvParams
ifstr $(KeySrvParams) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open RasSvr Params key"
set RegistryErrorIndex = UNABLE_OPEN_SERVICE_PARAMETERS
goto fatalregistry
endif
set NewValueList = +
{{NetBiosGatewayEnabled, $(NoTitle), $(!REG_VT_DWORD), $(NetBiosGtwyEnabled)}}
Shell $(!UtilityInf), AddValueList, $(KeySrvParams), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto fatalregistry
endif
CloseRegKey $(KeySrvParams)
; enable/disable RasAuto depending on whether dialout ports are configured or not
ifint $(NewNumDialout) == 0
; no dialout ports configured, set start type to disabled
set RasAutoStartValue = 4
else
; Modified by RamC on 10/11/96 - routing related changes
; no need for RasAuto to be autostartable any more
; set RasAutoStartValue = 2
set RasAutoStartValue = 3
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!RasAutodialKeyName) $(!MAXIMUM_ALLOWED) KeyAuto
ifstr $(KeyAuto) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open RasAuto key"
else
Debug-Output "OEMNSVRA.INF: Setting RasAuto start type to "$(RasAutoStartValue)
SetRegValue $(KeyAuto) {Start,$(NoTitle),$(!REG_VT_DWORD),$(RasAutoStartValue)}
CloseRegKey $(KeyAuto)
endif
WriteRasMan = +
; Write RasMan parameters
OpenRegKey $(!REG_H_LOCAL) "" $(RasManParamKeyName) $(!MAXIMUM_ALLOWED) KeyRasManParams
ifstr $(KeyRasManParams) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open RasMan Params key"
set RegistryErrorIndex = UNABLE_OPEN_SERVICE_PARAMETERS
goto fatalregistry
endif
; set the appropriate media dll name based on what media type is installed
; on the system.
; rasser is the name of the media DLL - rasser.dll
set MediaValue = {"rastapi"}
ifstr(i) $(fSerialInstalled) == TRUE
set MediaValue = >($(MediaValue), "rasser")
endif
; now determine if any other devices are configured for RAS and add
; those medias as well to the RasMan Medias parameter.
set OtherConfigKey = $(!NTN_SoftwareBase)"\"$(!Manufacturer)"\"$(ProductRASName)"\OTHER DEVICES\CONFIGURED"
set KeyOtherMedia = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(OtherConfigKey) $(!MAXIMUM_ALLOWED) +
KeyOtherMedia
ifstr $(KeyOtherMedia) != $(KeyNull)
EnumRegKey $(KeyOtherMedia) OtherList
Debug-Output "OEMNSVRA.INF: Other Media list "$(OtherList)
ForListDo $(OtherList)
set MediaName = *($($),1)
set KeyMedia = $(KeyNull)
OpenRegKey $(KeyOtherMedia) "" $(MediaName) $(!MAXIMUM_ALLOWED) +
KeyMedia
ifstr $(KeyMedia) != $(KeyNull)
GetRegValue $(KeyMedia), "MediaType" MediaType
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
set MediaTypeValue = *($(MediaType),4)
set MediaValue = >($(MediaValue), $(MediaTypeValue))
endif
CloseRegKey $(KeyMedia)
endif
EndForListDo
CloseRegKey $(KeyOtherMedia)
else
Debug-Output "OEMNSVRA.INF: Other Media not configured"
endif
Debug-Output "Adding Medias as "$(MediaValue)
set NewValueList = {{Medias,$(NoTitle),$(!REG_VT_MULTI_SZ),$(MediaValue)}}
Shell $(!UtilityInf), AddValueList, $(KeyRasManParams), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto fatalregistry
endif
CloseRegKey $(KeyRasManParams)
WriteNdisWan = +
set PrevNumPorts = 0
set PrevNumDialin = 0
set PrevNumDialout = 0
; determine the number of ports currently configured
OpenRegKey $(!REG_H_LOCAL) "" $(RasAsyMacParamKeyName) $(!MAXIMUM_ALLOWED) KeyMacParams
ifstr $(KeyMacParams) == $(KeyNull)
ifstr(i) $(!NTN_InstallMode) == configure
Debug-Output "OEMNSVRA.INF: could not open AsyncMac Params key"
set RegistryErrorIndex = UNABLE_OPEN_SERVICE_PARAMETERS
goto fatalregistry
endif
goto WriteNdisWan1
endif
GetRegValue $(KeyMacParams), "Ports" PortsInfo
GetRegValue $(KeyMacParams), "DialinNBF" DialinNBFInfo
GetRegValue $(KeyMacParams), "DialoutNBF" DialoutNBFInfo
GetRegValue $(KeyMacParams), "DialinIP" DialinIPInfo
GetRegValue $(KeyMacParams), "DialoutIP" DialoutIPInfo
GetRegValue $(KeyMacParams), "DialinoutIPX" DialinoutIPXInfo
set PrevNumPorts = *($(PortsInfo), 4)
set PrevNumDialinNBF = *($(DialinNBFInfo), 4)
set PrevNumDialoutNBF = *($(DialoutNBFInfo), 4)
set PrevNumDialinIP = *($(DialinIPInfo), 4)
set PrevNumDialoutIP = *($(DialoutIPInfo), 4)
set PrevNumDialinoutIPX = *($(DialinoutIPXInfo), 4)
Debug-Output "Ports currently configured "$(PrevNumPorts)
Debug-Output "Ports currently dialin NBF "$(PrevNumDialinNBF)
Debug-Output "Ports currently dialout NBF "$(PrevNumDialoutNBF)
Debug-Output "Ports currently dialin IP "$(PrevNumDialinIP)
Debug-Output "Ports currently diaout IP "$(PrevNumDialoutIP)
Debug-Output "Ports currently diainout IPX "$(PrevNumDialinoutIPX)
CloseRegKey $(KeyMacParams)
WriteNdisWan1 =+
; Write NdisWan parameters and add/delete netcards
set ThisOption = NDISWAN
set RasSpecificString = $(!Product$(ThisOption)Name)
; Always update the EndPoints
OpenRegKey $(!REG_H_LOCAL) "" $(NdisWanParamKeyName) $(!MAXIMUM_ALLOWED) KeyHubParams
ifstr $(KeyHubParams) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open NdisWan Params key"
set RegistryErrorIndex = UNABLE_OPEN_SERVICE_PARAMETERS
goto fatalregistry
endif
set NewValueList = +
{{EndPoints, $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewNumPortsList)}}
Shell $(!UtilityInf), AddValueList, $(KeyHubParams), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(KeyHubParams)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto fatalregistry
endif
; if there is no change in the number of dialin/dialout ports
; just update the RasMac section
ifint $(PrevNumDialinNBF) == $(NewNumDialinNBF)
ifint $(PrevNumDialoutNBF) == $(NewNumDialoutNBF)
ifint $(PrevNumDialinIP) == $(NewNumDialinIP)
ifint $(PrevNumDialoutIP) == $(NewNumDialoutIP)
ifint $(PrevNumDialinoutIPX) == $(NewNumDialinoutIPX)
set CommonStatus = STATUS_USERCANCEL
goto WriteRasAsyMac
endif
endif
endif
endif
endif
set NumAddDialinNBF = 0
set NumAddDialoutNBF = 0
set NumRemoveDialinNBF = 0
set NumRemoveDialoutNBF = 0
set NumAddDialinIP = 0
set NumAddDialoutIP = 0
set NumRemoveDialinIP = 0
set NumRemoveDialoutIP = 0
; now calculate the total number of adapters to add and remove for
; each protocol
ifint $(PrevNumDialinNBF) > $(NewNumDialinNBF)
set-sub NumRemoveDialinNBF = $(PrevNumDialinNBF), $(NewNumDialinNBF)
else
set-sub NumAddDialinNBF = $(NewNumDialinNBF), $(PrevNumDialinNBF)
endif
ifint $(PrevNumDialoutNBF) > $(NewNumDialoutNBF)
set-sub NumRemoveDialoutNBF = $(PrevNumDialoutNBF), $(NewNumDialoutNBF)
else
set-sub NumAddDialoutNBF = $(NewNumDialoutNBF), $(PrevNumDialoutNBF)
endif
; we need to determine the #dialout IP adapters to add/remove, because
; these are not shared between nbf and IP.
ifint $(PrevNumDialinIP) > $(NewNumDialinIP)
set-sub NumRemoveDialinIP = $(PrevNumDialinIP), $(NewNumDialinIP)
else
set-sub NumAddDialinIP = $(NewNumDialinIP), $(PrevNumDialinIP)
endif
ifint $(PrevNumDialoutIP) > $(NewNumDialoutIP)
set-sub NumRemoveDialoutIP = $(PrevNumDialoutIP), $(NewNumDialoutIP)
else
set-sub NumAddDialoutIP = $(NewNumDialoutIP), $(PrevNumDialoutIP)
endif
; we need to determine the IPX adapter to remove/add
ifint $(PrevNumDialinoutIPX) > $(NewNumDialinoutIPX)
set-sub NumRemoveDialinoutIPX = $(PrevNumDialinoutIPX), $(NewNumDialinoutIPX)
else
set-sub NumAddDialinoutIPX = $(NewNumDialinoutIPX), $(PrevNumDialinoutIPX)
endif
set NumAddTotal = 0
set NumRemoveTotal = 0
set-add NumAddTotal = $(NumAddDialinNBF), $(NumAddDialoutNBF)
set-add NumAddTotal = $(NumAddTotal), $(NumAddDialinIP)
set-add NumAddTotal = $(NumAddTotal), $(NumAddDialoutIP)
set-add NumAddTotal = $(NumAddTotal), $(NumAddDialinoutIPX)
set-add NumRemoveTotal = $(NumRemoveDialinNBF), $(NumRemoveDialoutNBF)
set-add NumRemoveTotal = $(NumRemoveTotal), $(NumRemoveDialinIP)
set-add NumRemoveTotal = $(NumRemoveTotal), $(NumRemoveDialoutIP)
set-add NumRemoveTotal = $(NumRemoveTotal), $(NumRemoveDialinoutIPX)
Debug-Output "NumAddDialinNBF = "$(NumAddDialinNBF)
Debug-Output "NumAddDialoutNBF = "$(NumAddDialoutNBF)
Debug-Output "NumAddDialinIP = "$(NumAddDialinIP)
Debug-Output "NumAddDialoutIP = "$(NumAddDialoutIP)
Debug-Output "NumAddDialinoutIPX = "$(NumAddDialinoutIPX)
Debug-Output "NumAddTotal = "$(NumAddTotal)
Debug-Output "NumRemoveDialinNBF = "$(NumRemoveDialinNBF)
Debug-Output "NumRemoveDialinIP = "$(NumRemoveDialinIP)
Debug-Output "NumRemoveDialinoutIPX = "$(NumRemoveDialinoutIPX)
Debug-Output "NumRemoveTotal = "$(NumRemoveTotal)
; Open the root of the services area and the root of the networkcards
; registry key and pass these keys to the AddHardwareComponent call.
; this should reduce the number of opens/closes made to the sam
; registry area and speed up the adapter creation.
Shell "utility.inf" BaseServiceKey
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) == NO_ERROR
Debug-Output "OEMNSVRA.INF: Opened the services base key"
set ServicesBaseKey = $($R1)
else
set ServicesBaseKey = $(KeyNull)
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NetworkCardKeyName) $(!MAXIMUM_ALLOWED) KeyNetcards
Ifstr(i) $(RegistryErrorIndex) == NO_ERROR
Debug-Output "OEMNSVRA.INF: Opened the networkcardkey "
endif
; start with 1
set RasAdapterNumber = 1
; Create the HARDWARE\Netcard region and its corresponding service
AddNdisWanNetCard = +
IfInt $(NumAddTotal) == 0
goto RemoveNdisWanNetCard
else
Debug-Output "In the Add if loop. NumAddTotal = "$(NumAddTotal)
; display the adapter number we are adding so that the user
; knows what is going on
shell $(subroutninf) PushBillBoard NETSTATUSDLG +
$(WritingRasParamsAdd)" "$(NumAddTotal)
set-sub NumAddTotal = $(NumAddTotal),1
Shell $(!UtilityInf), AddHardwareComponent, +
$(!Product$(ThisOption)Name),$(!RasInfName),+
$(!Product$(ThisOption)KeyName), +
$(ServicesBaseKey), $(KeyNetcards), $(RasAdapterNumber)
ifint $($R4) != -1
Set !NETCARD_LIST = >($(!NETCARD_LIST), +
{$(!Product$(ThisOption)Name),+
$(!NetworkCardKeyName)"\"$($R4)})
; save the adapter number for the next call to AddHardwareComponent
set RasAdapterNumber = $($R4)
endif
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Cannot add hardware component"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "Registry error: add hardware component"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
goto fatalregistry
endif
; At this point:
; $R1 Registry key variable for HARDWARE\Netcard\(n)
; $R2 Registry key variable for HARDWARE\Netcard\(n)\\NetRules
; $R3 Registry key handle for <service>\Parameters key
; $R4 Adapter number assigned to adapter
; $R5 Service name generated by combining svc name with adapter
; number
set KeyNetcard = $($R1)
set KeyParameters = $($R3)
set KeyAdapterRules = $($R2)
set AdapterNumber = $($R4)
set NetcardInfoList = +
{{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(!Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),+
"["$($R4)"] "$(!Product$(ThisOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)Description)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(!CurrentDate),1)},+
{Hidden,$(NoTitle),$(!REG_VT_DWORD),$(!HideComponent)}}
Shell $(!UtilityInf), GetBusTypeNum
set BusTypeNum = $($R1)
ifint $(NumAddDialinNBF) > 0
set-sub NumAddDialinNBF = $(NumAddDialinNBF), 1
set NetcardInfoList = >($(NetcardInfoList), +
{ProductName,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)DIALINName)})
set ServiceParamList = +
{{EnumExportPref,$(NoTitle),$(!REG_VT_DWORD),0},+
{BusType, $(NoTitle), $(!REG_VT_DWORD), $(BusTypeNum)}}
set AdapterType = $(!NetRuleHardwareDIALINType)
set AdapterClass = $(!NetRuleHardwareDIALINClass)
set AdapterBlock = $(!NetRuleHardwareDIALINBlock)
else-ifint $(NumAddDialoutNBF) > 0
set-sub NumAddDialoutNBF = $(NumAddDialoutNBF), 1
set NetcardInfoList = >($(NetcardInfoList), +
{ProductName,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)DIALOUTName)})
set ServiceParamList = +
{{EnumExportPref,$(NoTitle),$(!REG_VT_DWORD),1},+
{BusType, $(NoTitle), $(!REG_VT_DWORD), $(BusTypeNum)}}
set AdapterType = $(!NetRuleHardwareDIALOUTType)
set AdapterClass = $(!NetRuleHardwareDIALOUTClass)
set AdapterBlock = $(!NetRuleHardwareDIALOUTBlock)
else-ifint $(NumAddDialinIP) > 0
set-sub NumAddDialinIP = $(NumAddDialinIP), 1
set NetcardInfoList = >($(NetcardInfoList), +
{ProductName,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)DIALINIPName)})
; we need to identify if we are a server ip binding so that
; we can special case some parameters
set ServiceParamList = +
{{EnumExportPref,$(NoTitle),$(!REG_VT_DWORD),0},+
{AutoIPAddress,$(NoTitle),$(!REG_VT_DWORD),1},+
{ServerAdapter,$(NoTitle),$(!REG_VT_DWORD),1},+
{BusType, $(NoTitle), $(!REG_VT_DWORD), $(BusTypeNum)}}
set AdapterType = $(!NetRuleHardwareDIALINIPType)
set AdapterClass = $(!NetRuleHardwareDIALINIPClass)
set AdapterBlock = $(!NetRuleHardwareDIALINIPBlock)
else-ifint $(NumAddDialoutIP) > 0
set-sub NumAddDialoutIP = $(NumAddDialoutIP), 1
set NetcardInfoList = >($(NetcardInfoList), +
{ProductName,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)DIALOUTIPName)})
set ServiceParamList = +
{{EnumExportPref,$(NoTitle),$(!REG_VT_DWORD),1},+
{AutoIPAddress,$(NoTitle),$(!REG_VT_DWORD),1},+
{ServerAdapter,$(NoTitle),$(!REG_VT_DWORD),0},+
{BusType, $(NoTitle), $(!REG_VT_DWORD), $(BusTypeNum)}}
set AdapterType = $(!NetRuleHardwareDIALOUTIPType)
set AdapterClass = $(!NetRuleHardwareDIALOUTIPClass)
set AdapterBlock = $(!NetRuleHardwareDIALOUTIPBlock)
else-ifint $(NumAddDialinoutIPX) > 0
set-sub NumAddDialinoutIPX = $(NumAddDialinoutIPX), 1
set NetcardInfoList = >($(NetcardInfoList), +
{ProductName,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)DIALINOUTIPXName)})
set ServiceParamList = +
{{EnumExportPref,$(NoTitle),$(!REG_VT_DWORD),0},+
{BusType, $(NoTitle), $(!REG_VT_DWORD), $(BusTypeNum)}}
set AdapterType = $(!NetRuleHardwareDIALINOUTIPXType)
set AdapterClass = $(!NetRuleHardwareDIALINOUTIPXClass)
set AdapterBlock = $(!NetRuleHardwareDIALINOUTIPXBlock)
endif
Shell $(!UtilityInf), AddValueList, $(KeyNetcard), $(NetcardInfoList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error"
goto ShellCodeError
endif
CloseRegKey $(KeyNetcard)
set TempProdName = """"$(!Product$(ThisOption)Name)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(!NetRuleHardware$(ThisOption)BindForm)
set AdapterRulesList = +
{{type,$(NoTitle),$(!REG_VT_SZ),+
$(AdapterType)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)},+
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),+
$(AdapterClass)},+
{block,$(NoTitle),$(!REG_VT_MULTI_SZ),+
$(AdapterBlock)},+
;Modified on 9/24/96 by Ramc - changed ThisOption to ROUTING
; {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)},+
{InfOption,$(NoTitle),$(!REG_VT_SZ), "RAS"},+
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)}}
Shell $(!UtilityInf), AddValueList, $(KeyAdapterRules), $(AdapterRulesList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error."
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "Resgitry error: add value list."
CloseRegKey $(KeyParameters)
CloseRegKey $(KeyAdapterRules)
goto fatalregistry
endif
CloseRegKey $(KeyAdapterRules)
Shell $(!UtilityInf), AddValueList, $(KeyParameters), $(ServiceParamList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error."
goto ShellCodeError
endif
CloseRegKey $(KeyParameters)
goto AddNdisWanNetCard
endif ; IfInt NumAddTotal == 0
RemoveNdisWanNetCard = +
ifstr(i) $(ServicesBaseKey) != $(KeyNull)
CloseRegKey $(ServicesBaseKey)
endif
ifstr(i) $(KeyNetcards) != $(KeyNull)
CloseRegKey $(KeyNetcards)
endif
; set the flags to make sure that the tcp and ipx adapters are
; removed
Ifint $(NumRemoveTotal) == 0
goto WriteRasAsyMac
endif
Debug-Output "Removing NdisWan netcard entry..."
; The user removed some ports during configuration, so
; we need to delete the extra ports previously configured
OpenRegKey $(!REG_H_LOCAL) "" $(!NetworkCardKeyName) $(!MAXIMUM_ALLOWED) KeyNetcards
ifstr $(KeyNetcards) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open Netcards key"
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto fatalregistry
endif
EnumRegKey $(KeyNetcards) NetcardsList
set RemoveDialinList = {}
set RemoveDialinIpList = {}
set RemoveDialoutList = {}
set RemoveDialoutIpList = {}
set RemoveDialinoutIpxList = {}
ForListDo $(NetcardsList)
set KeyName = *($($),1)
OpenRegKey $(KeyNetcards) "" $(KeyName) $(!MAXIMUM_ALLOWED) Card
ifstr $(Card) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open netcard key"
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto fatalregistry
endif
GetRegValue $(Card), "ProductName" ProductNameInfo
set CardProductName = *($(ProductNameInfo), 4)
ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINName)
set RemoveDialinList = >($(RemoveDialinList), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINIPName)
set RemoveDialinIpList = >($(RemoveDialinIpList), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALOUTName)
set RemoveDialoutList = >($(RemoveDialoutList), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALOUTIPName)
set RemoveDialoutIpList = >($(RemoveDialoutIpList), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINOUTIPXName)
set RemoveDialinoutIpxList = >($(RemoveDialinoutIpxList), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
endif
CloseRegKey $(Card)
EndForListDo
CloseRegKey $(KeyNetcards)
; first remove the IP adapter if needed
QueryListSize IpNetCards $(RemoveDialinIpList)
ifint $(IpNetCards) != 0
ForListDo $(RemoveDialinIpList)
ifint $(NumRemoveDialinIP) == 0
goto RemoveDialinIPX
endif
set-sub NumRemoveDialinIP = $(NumRemoveDialinIP), 1
; display the adapter number we are adding so that the user
; knows what is going on
shell $(subroutninf) PushBillBoard NETSTATUSDLG +
$(WritingRasParamsRemove)" "$(NumRemoveTotal)
set-sub NumRemoveTotal = $(NumRemoveTotal), 1
debug-output "Removing hardware component: "$($)
Shell $(!UtilityInf), RemoveHardwareComponent, +
$(!Manufacturer), *($($),1), *($($),2)
EndForListDo
endif
RemoveDialinIPX =+
; then remove the IPX adapter if needed
QueryListSize IpxNetCards $(RemoveDialinoutIpxList)
ifint $(IpxNetCards) != 0
ForListDo $(RemoveDialinoutIpxList)
ifint $(NumRemoveDialinoutIPX) == 0
goto RemoveDialinNBF
endif
set-sub NumRemoveDialinoutIPX = $(NumRemoveDialinoutIPX), 1
debug-output "Removing hardware component: "$($)
; display the adapter number we are adding so that the user
; knows what is going on
shell $(subroutninf) PushBillBoard NETSTATUSDLG +
$(WritingRasParamsRemove)" "$(NumRemoveTotal)
set-sub NumRemoveTotal = $(NumRemoveTotal), 1
Shell $(!UtilityInf), RemoveHardwareComponent, +
$(!Manufacturer), *($($),1), *($($),2)
EndForListDo
endif
RemoveDialinNBF =+
ForListDo $(RemoveDialinList)
ifint $(NumRemoveDialinNBF) == 0
goto RemoveDialout
endif
set-sub NumRemoveDialinNBF = $(NumRemoveDialinNBF), 1
; display the adapter number we are adding so that the user
; knows what is going on
shell $(subroutninf) PushBillBoard NETSTATUSDLG +
$(WritingRasParamsRemove)" "$(NumRemoveTotal)
set-sub NumRemoveTotal = $(NumRemoveTotal), 1
debug-output "Removing hardware component: "$($)
Shell $(!UtilityInf), RemoveHardwareComponent, $(!Manufacturer),+
*($($),1), *($($),2)
EndForListDo
RemoveDialout = +
; first remove the IP adapter if needed
QueryListSize IpNetCards $(RemoveDialoutIpList)
ifint $(IpNetCards) != 0
ForListDo $(RemoveDialoutIpList)
ifint $(NumRemoveDialoutIP) == 0
goto RemoveDialoutNBF
endif
set-sub NumRemoveDialoutIP = $(NumRemoveDialoutIP), 1
; display the adapter number we are adding so that the user
; knows what is going on
shell $(subroutninf) PushBillBoard NETSTATUSDLG +
$(WritingRasParamsRemove)" "$(NumRemoveTotal)
set-sub NumRemoveTotal = $(NumRemoveTotal), 1
debug-output "Removing hardware component: "$($)
Shell $(!UtilityInf), RemoveHardwareComponent, +
$(!Manufacturer), *($($),1), *($($),2)
EndForListDo
endif
RemoveDialoutNBF =+
ForListDo $(RemoveDialoutList)
ifint $(NumRemoveDialoutNBF) == 0
goto WriteRasAsyMac
endif
set-sub NumRemoveDialoutNBF = $(NumRemoveDialoutNBF), 1
; display the adapter number we are adding so that the user
; knows what is going on
shell $(subroutninf) PushBillBoard NETSTATUSDLG +
$(WritingRasParamsRemove)" "$(NumRemoveTotal)
set-sub NumRemoveTotal = $(NumRemoveTotal), 1
debug-output "Removing hardware component: "$($)
Shell $(!UtilityInf), RemoveHardwareComponent, $(!Manufacturer),+
*($($),1), *($($),2)
EndForListDo
; Write RasAsyMac parameters
WriteRasAsyMac = +
; enable AsyncMac service
; if
; One or more serial ports is configured
; OR one or more rasether ports is configured
; OR one or more unimodem devices is configured
;
ifstr(i) $(fSerialInstalled) == TRUE
set AsyStartValue = 2
else-ifstr(i) $(fOtherInstalled) == TRUE
set AsyStartValue = 2
else-ifstr(i) $(fUnimodemInstalled) == TRUE
set AsyStartValue = 2
else
set AsyStartValue = 4
endif
OpenRegKey $(!REG_H_LOCAL) "" $(RasAsyMacKeyName) $(!MAXIMUM_ALLOWED) KeyMac
ifstr $(KeyMac) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open AsyncMac key"
else
SetRegValue $(KeyMac) {Start,$(NoTitle),$(!REG_VT_DWORD),$(AsyStartValue)}
CloseRegKey $(KeyMac)
endif
ifint $(PrevNumPorts) == $(NewNumPorts)
ifint $(PrevNumDialinNBF) == $(NewNumDialinNBF)
ifint $(PrevNumDialoutNBF) == $(NewNumDialoutNBF)
ifint $(PrevNumDialinIP) == $(NewNumDialinIP)
ifint $(PrevNumDialoutIP) == $(NewNumDialoutIP)
ifint $(PrevNumDialinoutIPX) == $(NewNumDialinoutIPX)
EndWait
Ifint $(BillboardVisible) != 0
Shell "subroutn.inf" PopBillboard
Set BillboardVisible = 0
Endif
goto WriteProtocolInfo
endif
endif
endif
endif
endif
endif
OpenRegKey $(!REG_H_LOCAL) "" $(RasAsyMacParamKeyName) $(!MAXIMUM_ALLOWED) KeyMacParams
ifstr $(KeyMacParams) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open AsyncMac Params key"
set RegistryErrorIndex = UNABLE_OPEN_SERVICE_PARAMETERS
goto fatalregistry
endif
set NewValueList = +
{{Ports, $(NoTitle), $(!REG_VT_DWORD), $(NewNumPorts)},+
{DialinNBF, $(NoTitle), $(!REG_VT_DWORD), $(NewNumDialinNBF)},+
{DialoutNBF, $(NoTitle), $(!REG_VT_DWORD), $(NewNumDialoutNBF)},+
{DialinIP, $(NoTitle), $(!REG_VT_DWORD), $(NewNumDialinIP)},+
{DialoutIP, $(NoTitle), $(!REG_VT_DWORD), $(NewNumDialoutIP)},+
{DialinoutIPX, $(NoTitle), $(!REG_VT_DWORD), $(NewNumDialinoutIPX)}}
Shell $(!UtilityInf), AddValueList, $(KeyMacParams), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(KeyMacParams)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto fatalregistry
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NetworkCardKeyName) $(!MAXIMUM_ALLOWED) KeyNetcards
ifstr $(KeyNetcards) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open Netcards key"
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto fatalregistry
endif
EnumRegKey $(KeyNetcards) NetcardsList
ForListDo $(NetcardsList)
set KeyName = *($($),1)
OpenRegKey $(KeyNetcards) "" $(KeyName) $(!MAXIMUM_ALLOWED) Card
ifstr $(Card) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open netcard key"
set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
goto fatalregistry
endif
GetRegValue $(Card), "ProductName" ProductNameInfo
set CardProductName = *($(ProductNameInfo), 4)
ifstr(i) $(CardProductName) == $(ProductRASASYMACName)
goto RasMacCardFound
endif
CloseRegKey $(Card)
EndForListDo
CloseRegKey $(KeyNetcards)
RasMacCardFound = +
Debug-Output "Shelling to find AsyncMac Service."
Shell $(!UtilityInf) FindService, $(Card)
CloseRegKey $(Card)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF: shell Findservice failed"
goto ShellCodeError
endif
ifstr(i) $($R0) != NO_ERROR
Debug-Output "OEMNSVRA.INF: findservice failed."
goto fatalregistry
endif
set KeyParameters = $($R2)
CloseRegKey $($R1)
Shell $(!UtilityInf), GetBusTypeNum
set BusTypeNum = $($R1)
set NewValueList = +
{{Ports, $(NoTitle), $(!REG_VT_DWORD), $(NewNumPorts)}, +
{BusType, $(NoTitle), $(!REG_VT_DWORD), $(BusTypeNum)}}
Shell $(!UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(KeyParameters)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto fatalregistry
endif
WriteProtocolInfo =+
ifstr(i) $(LanRoutingOnly) == TRUE
shell "" SetLanOnlyMode 1
else
shell "" SetLanOnlyMode 0
endif
Shell "" SaveSelectedProtocols $(fNetbeuiSelected) $(fTcpIpSelected) +
$(fIpxSelected) $(fNetbeuiAllowed) +
$(fTcpIpAllowed) $(fIpxAllowed) $(dwRouterType)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling SaveSelectedProtocols"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Error Saving selected protocols"
goto end
endif
; the PPP information only applies to RAS configuration
ifstr(i) $(LanRoutingOnly) != TRUE
; Write the PPP parameters which will also ensure that the PPP key
; is deleted and recreated.
Shell "" WritePPPParameters
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling WritePPPParameters"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Error from WritePPPParameters"
goto end
endif
endif
ifstr(i) $(fNetbeuiChosen) == TRUE
ifstr(i) $(fNetbeuiInstalled) == FALSE
Shell "" InstallProtocol "NETBEUI"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling InstallProtocol NETBEUI"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Error installing NETBEUI"
goto end
endif
endif
endif
ifstr(i) $(fTcpIpChosen) == TRUE
ifstr(i) $(fTcpIpInstalled) == FALSE
Shell "" InstallProtocol "TCPIP"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling InstallProtocol TCPIP"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Error installing TCPIP"
goto end
endif
endif
; ; install the rasarp service if previously not installed
; Modified on 9/19 by RamC for routing related changes
; WanArp takes over the place of RasArp, so we don't install RasArp any more
; Shell "" InstallRasArpService
; ifint $($ShellCode) != $(!SHELL_CODE_OK)
; Debug-Output "Error shelling InstallRasArpService"
; goto ShellCodeError
; endif
; ifstr(i) $($R0) != STATUS_SUCCESSFUL
; Debug-Output "Error from InstallRasArpService"
; goto end
; endif
; we don't install snmp service anymore. The snmp agents will
; be added if snmp is installed - BUGBUG if we discover that
; snmp is not installed should we warn the user to install it?
; ; install snmp service if previously not installed
; Shell "" InstallSnmpService
; ifint $($ShellCode) != $(!SHELL_CODE_OK)
; Debug-Output "Error shelling InstallSnmpService"
; goto ShellCodeError
; endif
; ifstr(i) $($R0) != STATUS_SUCCESSFUL
; Debug-Output "Error from InstallSnmpService"
; goto end
; endif
Shell "" UpdateIPRouterInfo $(EnableIpRouter)
ifstr(i) $(LanRoutingOnly) != TRUE
Shell "" SaveTcpipInfo $(fTcpIpAllowed)
endif
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling SaveTcpipInfo"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Error saving Tcpip info"
goto end
endif
ifstr(i) $(LanRoutingOnly) != TRUE
Shell "" InstallWanArpService
endif
; If PPTP filter driver is installed, we disable it because it is
; not compatible with the Router IP filter driver
; We will reenable it when the router service is removed
Shell "" DisablePPTPFilterDriver
Shell "" InstallIPFilterDriver
Shell "" InstallIPRtrMgr
Shell "" InstallIPEventlogDlls
Shell "" InstallIPSnmpAgents
; force the user to reboot the system for this change
set CommonStatus = STATUS_SUCCESSFUL
else
ifstr(i) $(LanRoutingOnly) != TRUE
; remove ip info from remoteaccess\parameters
Shell "" SaveTcpipInfo $(fTcpIpAllowed)
Shell "" RemoveWanArpService
endif
; force the user to reboot the system for this change
set CommonStatus = STATUS_SUCCESSFUL
endif
ifstr(i) $(fIpxChosen) == TRUE
ifstr(i) $(fIpxInstalled) == FALSE
Shell "" InstallProtocol "IPX"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling InstallProtocol IPX"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Error installing IPX"
goto end
endif
endif
; set some parameters in the NWLNKIPX\Parameters area
OpenRegKey $(!REG_H_LOCAL) "" +
$(!NTN_ServiceBase)"\NWLNKIPX\Parameters" +
$(!MAXIMUM_ALLOWED) KeyIpxParameters
ifstr $(KeyIpxParameters) != $(KeyNull)
; add the parameters only if they don't already exist
GetRegValue $(KeyIpxParameters), "SingleNetworkActive" +
SingleNetworkActive
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyIpxParameters) +
{SingleNetworkActive, 0, $(!REG_VT_DWORD), 1}
endif
GetRegValue $(KeyIpxParameters), "DisableDialoutSap" +
DisableDialoutSap
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyIpxParameters) +
{DisableDialoutSap, 0, $(!REG_VT_DWORD), 1}
endif
GetRegValue $(KeyIpxParameters), "DisableDialinNetbios" +
DisableDialinNetbios
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyIpxParameters) +
{DisableDialinNetbios, 0, $(!REG_VT_DWORD), 1}
endif
CloseRegKey $(KeyIpxParameters)
Endif
else
Debug-Output "OEMNSVRA.INF: error opening NWLNKIPX\Parameters key"
endif
ifstr(i) $(LanRoutingOnly) != TRUE
Shell "" SaveIpxInfo $(EnableIpxRouter) $(fIpxAllowed)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling SaveIpxInfo"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Error saving Ipx info"
goto end
endif
endif
ifint $(EnableIpxRouter) == 1
; Modifed on 9/27/96 by RamC for routing related changes
; we don't have to install NWLNKRIP and NWSAPAGENT any more
; these services run as part of mprouter.exe now.
;
; Shell "" InstallNwlnkRipService
; ifint $($ShellCode) != $(!SHELL_CODE_OK)
; Debug-Output "Error shelling InstallNwlnkRipService"
; goto ShellCodeError
; endif
; ifstr(i) $($R0) != STATUS_SUCCESSFUL
; Debug-Output "Error from InstallNwlnkRipService"
; goto end
; endif
; ; force the user to reboot the system for this change
; set CommonStatus = STATUS_SUCCESSFUL
; Shell "" InstallIsnSapService
; ifint $($ShellCode) != $(!SHELL_CODE_OK)
; Debug-Output "Error shelling InstallIsnSapService"
; goto ShellCodeError
; endif
; ifstr(i) $($R0) != STATUS_SUCCESSFUL
; Debug-Output "Error from InstallIsnSapService"
; goto end
; endif
Shell "" InstallIPXRtrMgr
Shell "" InstallIPXEventlogDlls
Shell "" InstallIPXSnmpAgents
Shell "" InstallIpxPingService
shell "" InstallNwlnkFwdService
shell "" InstallNwlnkFltService
; force the user to reboot the system for this change
set CommonStatus = STATUS_SUCCESSFUL
endif
Shell "" UpdateIPXRouterInfo $(EnableWanRouter)
; we should not pop the billboard that ncpa put up during primary install
Ifstr(i) $(!NTN_InstallPhase) != primary
shell $(subroutninf) PopBillBoard
Set BillboardVisible = 0
Endif
else
ifstr(i) $(LanRoutingOnly) != TRUE
; remove ipx info from remoteaccess\parameters
Shell "" SaveIpxInfo $(EnableIpxRouter) $(fIpxAllowed)
endif
endif
WriteParametersOver = +
EndWait
goto successful
;;;;;;;;;;;;;;;;; REMOVE RAS BEGINS ;;;;;;;;;;;;;;;;;;;;;;
RemoveRas = +
StartWait
set REMOVE_SOFTWARE = {}
Shell "" AreRequiredDllsPresent
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set MissingFiles = $($R1)
set ErrorLoadingConfigDll = $(ErrorLoadingConfigDll)" "$(MissingFiles)
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(ErrorLoadingConfigDll)
set CommonStatus = STATUS_USERCANCEL
goto end
endif
LoadLibrary "x" $(!STF_CWDDIR)rascfg.dll PORTSDLGHANDLE
shell "" QueryComponentsInstalled $(ProductKeyName)
Ifstr(i) $($R0) == STATUS_SUCCESSFUL
Set InstalledComps = $($R1)
Set InstalledFlags = $($R2)
Set DoServer = *($(InstalledFlags),1)
Set DoClient = *($(InstalledFlags),2)
Set DoAdmin = *($(InstalledFlags),3)
Set DoServerOnly = *($(InstalledFlags),4)
Set DoClientOnly = *($(InstalledFlags),5)
Set DoAdminOnly = *($(InstalledFlags),6)
Endif
Debug-Output "Installed List is "$(InstalledComps)
Debug-Output "Installed Flags is "$(InstalledFlags)
; ; if admin only is installed no need to attempt to remove
; ; the hardware components NdisWan and RasMac
; not true any more
; ifstr(i) $(DoAdminOnly) == TRUE
; set REMOVE_SOFTWARE = {$(ProductRASName)}
; goto RemoveSoftware
; endif
set REMOVE_SOFTWARE = >($(REMOVE_SOFTWARE), $(ProductRASName))
set REMOVE_SOFTWARE = >($(REMOVE_SOFTWARE), $(ProductROUTINGName))
set REMOVE_SOFTWARE = >($(REMOVE_SOFTWARE), $(ProductRASSVRName))
set REMOVE_SOFTWARE = >($(REMOVE_SOFTWARE), $(ProductRASMANName))
set REMOVE_SOFTWARE = >($(REMOVE_SOFTWARE), $(!ProductRASAUTODIALName))
; get the network card numbers corresponding to NdisWan and RasAsyMac
; from the registry
OpenRegKey $(!REG_H_LOCAL) "" $(!NetworkCardKeyName) $(!MAXIMUM_ALLOWED) KeyNetcards
ifstr $(KeyNetcards) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open Netcards key"
goto RemoveSoftware
endif
EnumRegKey $(KeyNetcards) NetcardsList
ForListDo $(NetcardsList)
set KeyName = *($($),1)
OpenRegKey $(KeyNetcards) "" $(KeyName) $(!MAXIMUM_ALLOWED) Card
ifstr $(Card) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open netcard key"
goto RemoveSoftware
endif
GetRegValue $(Card), "ProductName" ProductNameInfo
set CardProductName = *($(ProductNameInfo), 4)
ifstr(i) $(CardProductName) == $(!ProductNDISWANName)
set !NETCARD_LIST = >($(!NETCARD_LIST), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINName)
set !NETCARD_LIST = >($(!NETCARD_LIST), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALOUTName)
set !NETCARD_LIST = >($(!NETCARD_LIST), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINIPName)
set !NETCARD_LIST = >($(!NETCARD_LIST), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALOUTIPName)
set !NETCARD_LIST = >($(!NETCARD_LIST), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINOUTIPXName)
set !NETCARD_LIST = >($(!NETCARD_LIST), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(ProductRASASYMACName)
set !NETCARD_LIST = >($(!NETCARD_LIST),+
{$(ProductRASASYMACName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
endif
CloseRegKey $(Card)
EndForListDo
CloseRegKey $(KeyNetcards)
read-syms StatusUpdatingRegistry$(!STF_LANGUAGE)
QueryListSize NumRemove $(!NETCARD_LIST)
ForListDo $(!NETCARD_LIST)
; display the adapter number we are adding so that the user
; knows what is going on
shell $(subroutninf) PushBillBoard NETSTATUSDLG +
$(RemovingAdapters)" "$(NumRemove)
Set BillboardVisible = 1
debug-output "Removing hardware component: "$($)
Shell $(!UtilityInf), RemoveHardwareComponent, $(!Manufacturer),+
*($($),1), *($($),2)
set-sub NumRemove = $(NumRemove), 1
EndForListDo
RemoveSoftware = +
; Remove any additional services we added for IP and IPX
; we do this before we remove the RAS software components because
; there are dependencies to take care of.
shell $(subroutninf) PushBillBoard NETSTATUSDLG $(RemovingServices)
set BillboardVisible = 1
; Shell "" RemoveRasArpService
Shell "" RemoveNdisTapiService
Shell "" RemoveRasAcdService
Shell "" RemoveWanArpService
; remove IP filter driver only if proxy is not installed
ifstr(i) $(!PROXY_INSTALLED) == FALSE
Shell "" RemoveIPFilterDriver
endif
Shell "" RemoveIPRtrMgr
Shell "" RemoveIPEventlogDlls
Shell "" RemoveIPSnmpAgents
Shell "" RemoveRasRadService
; If PPTP filter driver is installed, we enable it because
; we had disabled it when Routing service was installed
Shell "" EnablePPTPFilterDriver
Shell "" RemoveIPXRtrMgr
Shell "" RemoveIpxPingService
Shell "" RemoveIPXEventlogDlls
Shell "" RemoveIPXSnmpAgents
Shell "" RemoveNwlnkFwdService
Shell "" RemoveNwlnkFltService
; Remove any dependencies we added to external components
; specifically remove WAN minport's dependency on NdisTapi
set RasTapiDevicesKey = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(RasTapiDevicesKeyName) $(!MAXIMUM_ALLOWED) RasTapiDevicesKey
ifstr $(RasTapiDevicesKey) != $(KeyNull)
set TapiProviderList = {}
EnumRegKey $(RasTapiDevicesKey) TapiProviderList
ForListDo $(TapiProviderList)
set ProviderName = *($($),1)
Debug-Output "OEMNSVRA.INF: Removing "$(ProviderName)" dependency on NdisTapi."
Shell "" RemoveServiceDependency $(ProviderName) "NdisTapi"
EndForListDo
EndIf
; Remove the ipxrip and sap services only if a dialin port was configured
; with IPX
; Note that for the following QuerySelectedProtocols call to work, we need
; to make sure that SOFTWARE\MICROSOFT\RAS registry key is not removed yet,
; so don't move this code beyond the point where we remove the software key.
set fIpxAllowed = FALSE
Shell "" QuerySelectedProtocols
ifstr(i) $($R0) == STATUS_SUCCESSFUL
set fIpxAllowed = $($R6)
else
Debug-Output "RemoveRas: error QuerySelectedProtocols"
endif
; Modified on 10/11/96 by RamC
; we don't need to remove these services any more because
; we don't install them with the router service.
;
; ifstr(i) $(fIpxAllowed) == TRUE
; Shell "" RemoveNwlnkRipService
; Shell "" RemoveIsnSapService
; endif
; added on 9/19/96 by RamC
; When the router service is installed, we modify the ImagePath of nwsapagent to point to mprouter.exe
; we also disable nwlnkrip service.
; When the router service is removed, we restore the services to their original state
ifstr(i) $(fIpxAllowed) == TRUE
OpenRegKey $(!REG_H_LOCAL) "" $(!RasIsnSapKeyName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != ""
SetRegValue $(KeyService) {ImagePath, 0, $(!REG_VT_EXPAND_SZ), "%SystemRoot%\system32\services.exe"}
CloseRegKey $(KeyService)
endif
; if the NwlnkRip service is currently installed, reenable it
OpenRegKey $(!REG_H_LOCAL) "" $(!RasIsnRipKeyName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != ""
SetRegValue $(KeyService) {Start, 0, $(!REG_VT_DWORD), 2}
CloseRegKey $(KeyService)
endif
endif
Debug-Output "Remove Software List "$(REMOVE_SOFTWARE)
ForListDo $(REMOVE_SOFTWARE)
Debug-Output "Removing software component: "$($)
ifstr(i) $($) == RAS
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyBase) +
$(!MAXIMUM_ALLOWED) ProductKey
Ifstr $(ProductKey) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open Software product key"
goto RemoveFiles
endif
DeleteRegTree $(ProductKey) $(Product$($)Name)
CloseRegKey $(ProductKey)
else
Shell $(!UtilityInf), RemoveSoftwareComponent, $(!Manufacturer), $($)
endif
EndForListDo
RemoveFiles = +
; now remove the files on disk
shell $(subroutninf) PushBillBoard NETSTATUSDLG $(RemovingFiles)
set BillboardVisible = 1
Install RemoveRasFiles
; Now it is time to restore the files saved away in the
; system32\~~RB$$~~ directory to their respective locations
Install RestoreSavedFiles
; Remove the Remote Access Service program group and icons from
; the program manager.
ifstr(i) $(DoServerOnly) == FALSE
Install RemoveRasGroup
endif
; remove OEMNSVRA.INF from the ReviewPrograms list in ncpa
Shell "" RemoveInfFromReviewPrograms
shell "" RemoveNetGroupDependency
RemoveRasOver = +
; Now go through the registry and clean up all RAS keys to ensure
; that the removal is complete.
Debug-Output "OEMNSVRA.INF: Doing a forcible cleanup..."
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft" +
$(!MAXIMUM_ALLOWED) KeySoftware
ifstr $(KeySoftware) != $(KeyNull)
; blow away all the software keys
set SoftList = {"ASYNCMAC", "NDISWAN", "RAS", "RASMAN", +
"RASAUTO", "REMOTEACCESS"}
ForListDo $(SoftList)
DeleteRegTree $(KeySoftware) $($)
EndForListDo
; blow away any RAS netcards
set NetworkCardKey = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(!NetworkCardKeyName) +
$(!MAXIMUM_ALLOWED) NetworkCardKey
Ifstr(i) $(NetworkCardKey) != $(KeyNull)
set NetcardsList = {}
EnumRegKey $(NetworkCardKey) NetcardsList
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
ForListDo $(NetcardsList)
set KeyName = *($($),1)
set Card = $(KeyNull)
OpenRegKey $(NetworkCardKey) "" $(KeyName) $(!MAXIMUM_ALLOWED) Card
ifstr $(Card) == $(KeyNull)
Debug-Output "RemoveRas: could not open netcard key "$(KeyName)
else
GetRegValue $(Card), "ProductName" ProductNameInfo
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "RemoveRas: ProductName not found."
else
set CardProductName = *($(ProductNameInfo), 4)
Debug-Output "RemoveRas: ProductName. "$(CardProductName)
ifstr(i) $(CardProductName) == $(!ProductNDISWANName)
DeleteRegTree $(NetworkCardKey) $(KeyName)
endif
ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINName)
DeleteRegTree $(NetworkCardKey) $(KeyName)
endif
ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALOUTName)
DeleteRegTree $(NetworkCardKey) $(KeyName)
endif
ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINIPName)
DeleteRegTree $(NetworkCardKey) $(KeyName)
endif
ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALOUTIPName)
DeleteRegTree $(NetworkCardKey) $(KeyName)
endif
ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINOUTIPXName)
DeleteRegTree $(NetworkCardKey) $(KeyName)
endif
ifstr(i) $(CardProductName) == $(ProductRASASYMACName)
DeleteRegTree $(NetworkCardKey) $(KeyName)
endif
endif
EndForListDo
else
Debug-Output "RemoveRas: EnumRegKey failed."
endif
else
Debug-Output "RemoveRas: failed to open "$(!NetworkCardKeyName)
endif
CloseRegKey $(KeySoftware)
else
Debug-Output "RemoveRas: failed to open software key"
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) +
$(!MAXIMUM_ALLOWED) KeyServices
ifstr $(KeyServices) != $(KeyNull)
set ServiceList = {"ASYNCMAC", "NDISWAN", "RASARP", "RASMAN", +
"REMOTEACCESS", "RASACD", "RASAUTO"}
ForListDo $(ServiceList)
DeleteRegTree $(KeyServices) $($)
EndForListDo
; now walk the services tree and blow away all AsyncMacX and
; NdisWanX keys
EnumRegKey $(KeyServices) ServiceList
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
ForListDo $(ServiceList)
set ServiceName = *($($),1)
set Result = 1
LibraryProcedure Result $(!LIBHANDLE) SetupStrncmp +
$(ServiceName) "NdisWan" 7
ifint $(Result) == 0
Debug-Output "RemoveRas: Removing "$(ServiceName)
DeleteRegTree $(KeyServices) $(ServiceName)
else
LibraryProcedure Result $(!LIBHANDLE) SetupStrncmp +
$(ServiceName) "AsyncMac" 8
ifint $(Result) == 0
Debug-Output "RemoveRas: Removing "$(ServiceName)
DeleteRegTree $(KeyServices) $(ServiceName)
endif
endif
EndForListDo
endif
CloseRegKey $(KeyServices)
endif
ifint $(BillboardVisible) != 0
Shell "subroutn.inf" PopBillboard
Set BillboardVisible = 0
Endif
EndWait
goto $(to)
;;;;;;;;;;;;;;;;;;;;; BINDINGS RAS BEGINS ;;;;;;;;;;;;;;
BindingsRas = +
; TODO OSPF bindings review - show ospf dialog with new IP addresses - IFF we can
; detect that the IP addresses have changed - the question is can we?
; This gets called if review is specified as 1
Shell "" AreRequiredDllsPresent
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set MissingFiles = $($R1)
set ErrorLoadingConfigDll = $(ErrorLoadingConfigDll)" "$(MissingFiles)
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(ErrorLoadingConfigDll)
set CommonStatus = STATUS_USERCANCEL
goto end
endif
LoadLibrary "x" $(!STF_CWDDIR)rascfg.dll PORTSDLGHANDLE
Debug-Output "OEMNSVRA.INF:Review bindings is being called!!!."
; Check if one of Nbf, TcpIp or Ipx protocol stacks have been removed.
; Accordingly change our list of selected protocols in
; SOFTWARE\Microsoft\RAS\Protocols. Also, remove the corresponding
; netcards and update the list of Dialin/Dialout ports in
; Services\Asyncmac\Parameters
Shell "" UpdateSelectedProtocols
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling UpdateSelectedProtocols."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by UpdateSelectedProtocols."
endif
set fNetbeuiChosen = $($R1)
set fTcpIpChosen = $($R2)
set fIpxChosen = $($R3)
set dwRouterType = $($R4)
; If there are no protocols selected for RAS,
; then display a message to warn the user.
ifstr(i) $(fNetbeuiChosen) == FALSE
ifstr(i) $(fTcpIpChosen) == FALSE
ifstr(i) $(fIpxChosen) == FALSE
read-syms NoProtocolsDlg$(!STF_LANGUAGE)
Shell $(subroutninf) SetupMessage, $(!STF_LANGUAGE), "STATUS", $(NoProtocolsWarning)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto end
endif
endif
endif
; If we were called through the normal review bindings, then reset
; the review bindings flag in rasman to 0 and add ourselves to the
; ReviewProgramsList of NCPA. This will ensure that we will be called
; last for review bindings.
; Add our inf file name to the Review Programs list of NCPA
OpenRegKey $(!REG_H_LOCAL) "" $(!RouterKeyName) $(!MAXIMUM_ALLOWED) KeyRouter
ifstr $(KeyRouter) != $(KeyNull)
GetRegValue $(KeyRouter), "Review" ReviewInfo
set ReviewValue = *($(ReviewInfo), 4)
ifint $(ReviewValue) == 1
Debug-Output "BindingsRas: resetting Review to 0 in SOFTWARE\Router\CurrentVersion key"
SetRegValue $(KeyRouter) {Review,$(NoTitle),$(!REG_VT_DWORD), 0}
Shell "" AddInfToReviewProgramsList
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling AddInfToReviewProgramsList."
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by AddInfToReviewProgramsList."
endif
endif
CloseRegKey $(KeyRouter)
else
Debug-Output "OEMNSVRA.INF: error opening SOFTWARE\Router\CurrentVersion key."
endif
ifstr(i) $(fIpxChosen) == TRUE
; added on 9/19/96 by RamC
; if the NwSapAgent service is installed, change the ImagePath to point to mprouter.exe
OpenRegKey $(!REG_H_LOCAL) "" $(!RasIsnSapKeyName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != ""
SetRegValue $(KeyService) {ImagePath, 0, $(!REG_VT_EXPAND_SZ), "%SystemRoot%\System32\mprouter.exe"}
CloseRegKey $(KeyService)
endif
; if the NwlnkRip service is currently installed, disable it
OpenRegKey $(!REG_H_LOCAL) "" $(!RasIsnRipKeyName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != ""
SetRegValue $(KeyService) {Start, 0, $(!REG_VT_DWORD), 4}
CloseRegKey $(KeyService)
endif
endif
; now do the magic with adding lan interfaces and setting global information for IP and IPX configuration
Debug-Output "AddRtrMgrAndLanInterfaces entry."
LibraryProcedure Result, $(PORTSDLGHANDLE), AddRtrMgrAndLanInterfaces $(fTcpIpChosen) $(fIpxChosen)
ifstr(i) $(Result) == ERROR
Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "STATUS" $(ErrorConfigInterfaces)
Debug-Output "AddRtrMgrAndLanInterfaces ERROR exit."
else
Debug-Output "AddRtrMgrAndLanInterfaces exit."
endif
RemoveRtrMgrsBegin =+
Debug-Output "BindingsRas: RemoveRtrMgrsBegin..."
; Remove a router manager and all corresponding interface information if it is not configured any more
; BUGBUG - we should actually notify the running router service
; that the router manager has been removed. However this
; is OK for now because we force a reboot anyway.
; remove services\Router\RouterManagers\{IP |IPX}
; Also enumerate services\Router\Interfaces
; Remove each interfaces {IP | IPX} information
set RemoveRtrMgrList = {}
ifstr(i) $(fTcpIpChosen) == FALSE
set RemoveRtrMgrList = >($(RemoveRtrMgrList), "IP")
endif
ifstr(i) $(fIpxChosen) == FALSE
set RemoveRtrMgrList = >($(RemoveRtrMgrList), "IPX")
endif
Debug-Output "BindingsRas: RemoveRtrMgrList == "$(RemoveRtrMgrList)
set NumRtrMgrs = 0
QueryListSize NumRtrMgrs $(RemoveRtrMgrList)
ifint $(NumRtrMgrs) != 0
OpenRegKey $(!REG_H_LOCAL) "" $(!RouterKeyName)"\RouterManagers" $(!MAXIMUM_ALLOWED) KeyRtrMgrs
Ifstr $(KeyRtrMgrs) == ""
Debug-Output "BindingsRas: error opening Router\RouterManagers key"
goto RemoveRtrMgrsEnd
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!RouterKeyName)"\Interfaces" $(!MAXIMUM_ALLOWED) KeyInterfaces
Ifstr $(KeyInterfaces) == ""
CloseRegKey $(KeyRtrMgrs)
Debug-Output "BindingsRas: error opening Router\Interfaces key"
goto RemoveRtrMgrsEnd
endif
Debug-Output "BindingsRas: InterfacesList == "$(InterfacesList)
forlistdo $(RemoveRtrMgrList)
set RemoveRtrMgr = $($)
Debug-Output "BindingsRas: Removing RouterManager "$(RemoveRtrMgr)
DeleteRegTree $(KeyRtrMgrs) $(RemoveRtrMgr)
; now remove the interfaces\$($) tree
; if as a result of removing an interface, the interface has no
; router manager associated with it, then remove the interface
set InterfacesList = {}
EnumRegKey $(KeyInterfaces) InterfacesList
forlistdo $(InterfacesList)
set InterfaceName = *($($),1)
OpenRegKey $(KeyInterfaces) "" $(InterfaceName) $(!MAXIMUM_ALLOWED) KeyInterface
ifstr $(KeyInterface) == ""
Debug-Output "BindingsRas: error opening interface "$(InterfaceName)
CloseRegKey $(KeyRtrMgrs)
CloseRegKey $(KeyInterfaces)
goto RemoveRtrMgrsEnd
endif
EnumRegKey $(KeyInterface) InterfaceRtrMgrList
forlistdo $(InterfaceRtrMgrList)
set InterfaceRtrMgrName = *($($),1)
ifstr(i) $(InterfaceRtrMgrName) == $(RemoveRtrMgr)
Debug-Output "BindingsRas: Removing RouterManager "$(InterfaceRtrMgrName)"for interface "$(InterfaceName)
DeleteRegTree $(KeyInterface) $(InterfaceRtrMgrName)
endif
endforlistdo
; now find out if the interface has any router managers
; if not delete the interface itself
set InterfaceRtrMgrList = {}
EnumRegKey $(KeyInterface) InterfaceRtrMgrList
set NumInterfaceRtrMgrs = 0
QueryListSize NumInterfaceRtrMgrs $(InterfaceRtrMgrList)
ifint $(NumInterfaceRtrMgrs) == 0
Debug-Output "BindingsRas: Removing Interface "$(InterfaceName)
DeleteRegTree $(KeyInterfaces) $(InterfaceName)
else
CloseRegKey $(KeyInterface)
endif
endforlistdo
endforlistdo
CloseRegKey $(KeyRtrMgrs)
CloseRegKey $(KeyInterfaces)
endif
RemoveRtrMgrsEnd =+
; mark the router service to interact with the desktop
LibraryProcedure Result, $(!LIBHANDLE), SetupChangeServiceConfig, "Router" +
$(!SERVICE_SHARE_INTERACT), $(!SERVICE_NO_CHANGE), +
$(!SERVICE_NO_CHANGE), "", "", $(newGroupList), +
"", "", ""
Debug-Output "Result of setting service Router to interact with desktop=> "$(Result)
; set the SC_MANAGER_ALL_ACCESS for the router service to enable all
; users to start the router service
LibraryProcedure Result, $(PORTSDLGHANDLE), ChangeRouterServiceConfig
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; NOTE NOTE NOTE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; if Lan routing only chosen then we are done!!
ifint $(dwRouterType) == $(ROUTER_TYPE_LAN)
Debug-Output "LanRouting only enabled, so nothing to do"
goto BindingsRasEnd
endif
set WkstaConfigured = FALSE
set SrvrConfigured = FALSE
shell "" IsNetworkConfigured
Debug-Output "IsNetworkConfigured returned R0 "$($R0)
Debug-Output "IsNetworkConfigured returned R1 "$($R1)
Debug-Output "IsNetworkConfigured returned R2 "$($R2)
ifstr(i) $($R0) == STATUS_SUCCESSFUL
set WkstaConfigured = $($R1)
set SrvrConfigured = $($R2)
else
read-syms NetworkConfigError$(!STF_LANGUAGE)
set Text = $(Text1)
shell $(subroutninf) SetupMessage $(!STF_LANGUAGE) "FATAL" $(Text)
goto end
endif
ifstr(i) $(WkstaConfigured) == TRUE
ifstr(i) $(SrvrConfigured) == TRUE
goto InstallNetworkEnd
else
goto InstallNetworkError
endif
else
goto InstallNetworkError
endif
InstallNetworkError =+
set CommonStatus = STATUS_USERCANCEL
read-syms NetworkConfigError$(!STF_LANGUAGE)
set Text = $(Text2)
shell $(subroutninf) SetupMessage $(!STF_LANGUAGE) "STATUS" $(Text)
InstallNetworkEnd =+
shell "" QueryComponentsInstalled $(ProductKeyName)
Ifstr(i) $($R0) == STATUS_SUCCESSFUL
Set InstalledComps = $($R1)
Set InstalledFlags = $($R2)
Set DoServer = *($(InstalledFlags),1)
Set DoClient = *($(InstalledFlags),2)
Set DoAdmin = *($(InstalledFlags),3)
Set DoServerOnly = *($(InstalledFlags),4)
Set DoClientOnly = *($(InstalledFlags),5)
Set DoAdminOnly = *($(InstalledFlags),6)
Endif
Debug-Output "Installed List is "$(InstalledComps)
Debug-Output "Installed Flags is "$(InstalledFlags)
; Check if AsyncMac service is enabled - meaning serial ports are configured
; initialize start value to disabled
set AsyStartValue = 4
OpenRegKey $(!REG_H_LOCAL) "" $(RasAsyMacKeyName) $(!MAXIMUM_ALLOWED) KeyMac
ifstr $(KeyMac) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open AsyncMac key"
else
GetRegValue $(KeyMac), "Start" AsyStartInfo
ifint $(RegLastError) == 0
set AsyStartValue = *($(AsyStartInfo), 4)
endif
Debug-Output "OEMNSVRA.INF: AsyncMac start value "$(AsyStartValue)
CloseRegKey $(KeyMac)
endif
; Read the Linkage Value of AsyncMac only if AsyncMac is enabled
; Initialize EndPoints only if AsyncMac is enabled
set NdisWanParam = {}
set NdisWanEndPointsLst = {}
ifint $(AsyStartValue) != 4
set RasMacLinkageKey = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(RasMacLinkageKeyName) $(!MAXIMUM_ALLOWED) RasMacLinkageKey
ifstr $(RasMacLinkageKey) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open AsyncMac linkage key"
set RegistryErrorIndex = UNABLE_ACCESS_CONFIGURE_SERVICE
goto fatalregistry
endif
GetRegValue $(RasMacLinkageKey), "Bind" BindInfo
set NdisWanParam = *($(BindInfo), 4)
CloseRegKey $(RasMacLinkageKey)
; Obtain the Endpoint information
set NdisWanParamKey = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(NdisWanParamKeyName) $(!MAXIMUM_ALLOWED) NdisWanParamKey
ifstr $(NdisWanParamKey) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open NdisWanParamKey"
else
GetRegValue $(NdisWanParamKey), "EndPoints" EndPointsInfo
set EndPointsLst = *($(EndPointsInfo), 4)
set NdisWanEndPointsLst = >($(NdisWanEndPointsLst),*($(EndPointsLst), 1))
CloseRegKey $(NdisWanParamKey)
endif
endif
; Read the Linkage value of the TAPI drivers to get the EndPoints info
; we need to make sure that if a TAPi driver has been removed, it is
; not added to the NDISWAN service dependency
set ProviderList = {}
set RasTapiDevicesKey = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(RasTapiDevicesKeyName) $(!MAXIMUM_ALLOWED) RasTapiDevicesKey
ifstr $(RasTapiDevicesKey) != $(KeyNull)
set TapiProviderList = {}
EnumRegKey $(RasTapiDevicesKey) TapiProviderList
ForListDo $(TapiProviderList)
set TapiAddress = {}
set NumEndPoints = 0
set ProviderName = *($($),1)
Debug-Output "OEMNSVRA.INF: TAPI provider name = "$(ProviderName)
OpenRegKey $(RasTapiDevicesKey) "" $(ProviderName) $(!MAXIMUM_ALLOWED) Provider
ifstr $(Provider) != $(KeyNull)
GetRegValue $(Provider), "Address" TapiAddress
set AdapterNum = ""
set EndPointCount = 0
set tmpNdisWanParam = {}
set tmpNdisWanEndPointsLst = {}
set DeviceName = ""
ForListDo *($(TapiAddress),4)
Split-String $($) "- " Address
set NewAdapterNum = *($(Address), 1)
; if we come across a new adapter number
ifstr(i) $(AdapterNum) != $(NewAdapterNum)
; and if we have accumulated some information
ifstr(i) $(AdapterNum) != ""
; write it to temp list
set tmpNdisWanParam = >($(tmpNdisWanParam), $(DeviceName))
set tmpNdisWanEndPointsLst = >($(tmpNdisWanEndPointsLst), $(EndPointCount))
; reset the end point count for the next adapter
set EndPointCount = 0
endif
; save new adapter number
set AdapterNum = $(NewAdapterNum)
; make new device name
set DeviceName = "\Device\"$(ProviderName)$(AdapterNum)
endif
;increment endpoint count for the new device
set-add EndPointCount = $(EndPointCount), 1
EndForListDo
; append the information for the last set of addresses to the
; tmp list
ifstr $(DeviceName) != ""
set tmpNdisWanParam = >($(tmpNdisWanParam), $(DeviceName))
set tmpNdisWanEndPointsLst = >($(tmpNdisWanEndPointsLst), $(EndPointCount))
endif
CloseRegKey $(Provider)
else
Debug-Output "OEMNSVRA.INF: could not open RAS\TAPI DEVICES\"$(DriverName)" key."
endif
set ProviderKeyName = $(!NTN_ServiceBase)"\"$(ProviderName)
set ProviderLinkageKeyName = $(!NTN_ServiceBase)"\"$(ProviderName)"\Linkage"
Debug-Output "TAPI provider key name "$(ProviderKeyName)
set ProviderKey = $(KeyNull)
set ProviderLinkageKey = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(ProviderKeyName) $(!MAXIMUM_ALLOWED) ProviderKey
ifstr $(ProviderKey) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open key "$(ProviderKeyName)
else
set DeleteFlag = 0
set DeleteFlagInfo = {}
; check whether service is marked for deletion
GetRegValue $(ProviderKey),"DeleteFlag", DeleteFlagInfo
set DeleteFlag = *($(DeleteFlagInfo), 4)
ifint $(DeleteFlag) != 1
; add service to provider list only if the service exists.
set ProviderList = >($(ProviderList), $(ProviderName))
; make the tapi-aware miniport dependent on NdisTapi
; driver so that the driver loads before the miniports.
Shell "" AddServiceDependency $(ProviderName) "NdisTapi"
ForListDo $(tmpNdisWanParam)
set NdisWanParam = >($(NdisWanParam), $($))
set NdisWanEndPointsLst = >($(NdisWanEndPointsLst), *($(tmpNdisWanEndPointsLst), $(#)))
EndForListDo
endif
CloseRegKey $(ProviderKey)
endif
EndForListDo
CloseRegKey $(RasTapiDevicesKey)
else
Debug-Output "OEMNSVRA.INF: could not open RAS\TAPI DEVICES key"
endif
; Check to make sure at least one port is configured for RAS
; else, warn the user that this is an invalid configuration.
set NumBindings = 0
Debug-Output "NdisWan param Bind value = "$(NdisWanParam)
QueryListSize NumBindings $(NdisWanParam)
Debug-Output "Number of Ndiswan bindings = "$(NumBindings)
ifint $(NumBindings) == 0
Debug-Output "OEMNSVRA.INF: No ports are configured"
read-syms NoPortsConfigured$(!STF_LANGUAGE)
Shell $(subroutninf) SetupMessage, $(!STF_LANGUAGE), "STATUS", $(NoPortsError)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto end
endif
; and write this information as a parameter in the NdisWan section
OpenRegKey $(!REG_H_LOCAL) "" $(NdisWanParamKeyName) $(!MAXIMUM_ALLOWED) NdisWanParamKey
ifstr $(NdisWanParamKey) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open NdisWanParamKey"
set RegistryErrorIndex = UNABLE_ACCESS_CONFIGURE_SERVICE
goto fatalregistry
endif
Debug-Output "Setting NdisWan param Bind to "$(NdisWanParam)
set NewValueList = {{Bind, $(NoTitle), $(!REG_VT_MULTI_SZ), $(NdisWanParam)}}
Shell $(!UtilityInf), AddValueList, $(NdisWanParamKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
CloseRegKey $(NdisWanParamKey)
goto ShellCodeError
endif
Debug-Output "Setting NdisWan param EndPoints to "$(NdisWanEndPointsLst)
set NewValueList = {{EndPoints, $(NoTitle), $(!REG_VT_MULTI_SZ), $(NdisWanEndPointsLst)}}
Shell $(!UtilityInf), AddValueList, $(NdisWanParamKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
CloseRegKey $(NdisWanParamKey)
goto ShellCodeError
endif
CloseRegKey $(NdisWanParamKey)
; change the security descriptor so that non-admin users can start the client
LibraryProcedure Result, $(PORTSDLGHANDLE), InitRasmanSecurityDescriptor
Debug-Output "Result of setting Rasman security descriptor "$(Result)
LibraryProcedure Result, $(PORTSDLGHANDLE), InitRemoteSecurityDescriptor
Debug-Output "Result of setting Remote security descriptor "$(Result)
; set the following service to share & interact with desktop
forlistdo { RasAuto, RasMan, RemoteAccess, Router }
LibraryProcedure Result, $(!LIBHANDLE), SetupChangeServiceConfig, $($) +
$(!SERVICE_SHARE_INTERACT), $(!SERVICE_NO_CHANGE), +
$(!SERVICE_NO_CHANGE), "", "", $(newGroupList), +
"", "", ""
Debug-Output "Result of setting service "$($)" to interact with desktop=> "$(Result)
endforlistdo
; Update the supported CP list based on what protocols are currently installed
Shell "" UpdateCPList
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling UpdateCPList."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by UpdateCPList."
endif
; If TcpIp is selected, then update the NdisWanX\Parameters\TCPIP\LLInterface
; with WanArp
ifstr(i) $(fTcpIpChosen) == TRUE
shell "" UpdateLLInterface
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling UpdateLLInterface."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by UpdateLLInterface."
endif
endif
;; add the group dependency on NDIS and NDISWAN to ensure that RAS drivers load
;We don't do this any more because of no-net changes being made to
;transports and drivers - 2/11/96 RamC
; shell "" UpdateNetGroupDependency $(fNetbeuiChosen) $(fTcpIpChosen) $(fIpxChosen)
; ifint $($ShellCode) != $(!SHELL_CODE_OK)
; Debug-Output "error shelling UpdateNetGroupDependency."
; goto ShellCodeError
; endif
; Ifstr(i) $($R0) != STATUS_SUCCESSFUL
; Debug-Output "error returned by UpdateNetGroupDependency."
; endif
; ; Set RasArp\Linkage\Bind to the NdisWan bindings from TCP/IP
; ;
;
; Shell "" SetRasArpBindValueFromTcpIP
; ifint $($ShellCode) != $(!SHELL_CODE_OK)
; Debug-Output "error shelling SetRasArpBindValueFromTcpIP."
; goto ShellCodeError
; endif
; Ifstr(i) $($R0) != STATUS_SUCCESSFUL
; Debug-Output "error returned by SetRasArpBindValueFromTcpIP."
; endif
; We don't force NetBEUI any more on NT 4.0 RamC 3/25/96
;
; ; if NetBeui was not selected - meaning that NetBEUI was removed, and if
; ; the SOFTWARE\Microsoft\RAS\PROTOCOLS\fNoNetbeuiWarning is either missing
; ; or set to zero, then modify this value to 1 and put up a warning popup
; ; so that the user is aware.
;
; set fNoNetbeuiWarning = 0
; ifstr(i) $(fNetbeuiChosen) == FALSE
; OpenRegKey $(!REG_H_LOCAL) "" $(RasProtocolsKeyName) $(!MAXIMUM_ALLOWED) KeyRasProtocols
; ifstr $(KeyRasProtocols) != $(KeyNull)
; GetRegValue $(KeyRasProtocols), "fNoNetbeuiWarning" NetbeuiInfo
; set fNoNetbeuiWarning = *($(NetbeuiInfo), 4)
; ifint $(fNoNetbeuiWarning) != 1
; read-syms NoNetbeuiDlg$(!STF_LANGUAGE)
; Shell $(subroutninf) SetupMessage, $(!STF_LANGUAGE), "STATUS", $(NoNetbeuiWarning)
; ifint $($ShellCode) != $(!SHELL_CODE_OK)
; goto ShellCodeError
; endif
; endif
; SetRegValue $(KeyRasProtocols) {fNoNetbeuiWarning,$(NoTitle),$(!REG_VT_DWORD), 1}
; CloseRegKey $(KeyRasProtocols)
; else
; Debug-Output "Bindings: unable to open RasProtocolKeyName"
; endif
; endif
BindingsRasEnd = +
Debug-Output "Review bindings done."
goto end
;;;;;;;;;;;;;;;;; UPGRADE RAS BEGINS ;;;;;;;;;;;;;;;;;;;;;;
UpgradeRas = +
; DON't see a reason for checking this option type here. RamC 12/3/96
; ; if the upgrade is not for RAS, then silently return
; Debug-Output "OEMNSVRA.INF: Upgrade with Option type "$(Option)
;; Modified on 9/24/96 by RamC - changed option from RAS to ROUTING
;; for routing related changes
; ifstr(i) $(Option) != "ROUTING"
; Debug-Output "OEMNSVRA.INF: not upgrading due to nonras option"
; set CommonStatus = STATUS_NOEFFECT
; goto end
; endif
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(!MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
Shell $(!UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error"
goto ShellCodeError
endif
set !UG_Filename = $($R0)
ifstr(i) $(!UG_Filename) != ""
Debug-Output "File Name is "$(!UG_Filename)
StartWait
read-syms UpgradeErrors$(!STF_LANGUAGE)
read-syms StatusUpdatingRegistry$(!STF_LANGUAGE)
Shell "subroutn.inf" PushBillboard NETSTATUSDLG $(UpdatingRas)
Set BillboardVisible = 1
; Change title and product description to Routing
SetRegValue $(KeyProduct) {Title, $(NoTitle), $(!REG_VT_SZ), $(!ProductROUTINGTitle)}
SetRegValue $(KeyProduct) {Description, $(NoTitle), $(!REG_VT_SZ), $(!ProductROUTINGDescription)}
; determine the installed components. This info is used
; by InstallRasFiles to determine the files to copy.
shell "" QueryComponentsInstalled $(ProductKeyName)
Ifstr(i) $($R0) == STATUS_SUCCESSFUL
Set InstalledComps = $($R1)
Set InstalledFlags = $($R2)
Set DoServer = *($(InstalledFlags),1)
Set DoClient = *($(InstalledFlags),2)
Set DoAdmin = *($(InstalledFlags),3)
Set DoServerOnly = *($(InstalledFlags),4)
Set DoClientOnly = *($(InstalledFlags),5)
Set DoAdminOnly = *($(InstalledFlags),6)
Endif
Debug-Output "Installed List is "$(InstalledComps)
Debug-Output "Installed Flags is "$(InstalledFlags)
Set ServerInstalled = $(DoServer)
Set ClientInstalled = $(DoClient)
Set AdminInstalled = $(DoAdmin)
Install InstallResources
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
goto filecopycancel
endif
Install InstallRasFiles
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
goto filecopycancel
endif
Shell "" AreRequiredDllsPresent
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set MissingFiles = $($R1)
set ErrorLoadingConfigDll = $(ErrorLoadingConfigDll)" "$(MissingFiles)
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(ErrorLoadingConfigDll)
set CommonStatus = STATUS_USERCANCEL
goto end
endif
LoadLibrary "x" $(!STF_CWDDIR)rascfg.dll PORTSDLGHANDLE
; add pptp filters to lan interfaces if they were previously specified
Debug-Output "AddPPTPFilters entry."
LibraryProcedure Result, $(PORTSDLGHANDLE), AddPPTPFilters
Debug-Output "AddPPTPFilters exit result = "$(Result)
; set the RouterType value in RAS\Protocols to indicate
; what is currently installed if RouterType is not already
; present in RAS\Protocols
set RasInstalled = FALSE
set LanInstalled = FALSE
set DdmInstalled = FALSE
OpenRegKey $(!REG_H_LOCAL) "" $(RasProtocolsKeyName) $(!MAXIMUM_ALLOWED) KeyProtocol
ifstr $(KeyProtocol) != $(KeyNull)
GetRegValue $(KeyProtocol), "RouterType" RouterType
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(!MAXIMUM_ALLOWED) KeyRas
ifstr $(KeyRas) != $(KeyNull)
set RasInstalled = TRUE
CloseRegKey $(KeyRas)
endif
; check if any of the following services are installed
; to determine if Lan routing is enabled.
ForListDo { NwlnkRip, NwSapAgent, IpRip, RelayAgent }
set ServiceName = $(!NTN_ServiceBase)"\"$($)
OpenRegKey $(!REG_H_LOCAL) "" $(ServiceName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != $(KeyNull)
set LanInstalled = TRUE
CloseRegKey $(KeyService)
endif
EndForListDo
; if the set-or command worked as it is supposed to, then
; i wouldn't have to hack around like this!!
set RouterType = 1 ; default to RAS installed
ifstr(i) $(RasInstalled) == TRUE
ifstr(i) $(LanInstalled) == TRUE
set RouterType = 3
else
set RouterType = 1
endif
else-ifstr(i) $(LanInstalled) == TRUE
ifstr(i) $(RasInstalled) == TRUE
set RouterType = 3
else
set RouterType = 2
endif
endif
SetRegValue $(KeyProtocol) {RouterType, $(NoTitle), $(!REG_VT_DWORD), $(RouterType)}
EndIf
CloseRegKey $(KeyProtocol)
endif
; remove NWLNKRIP, NWSAPAGENT, IPRIP, RELAYAGENT services
; because they are part of the Router service now.
; BUGBUG we should actually warn the user
Shell "" RemoveIpRipService
Shell "" RemoveRelayAgentService
Shell "" RemoveNwlnkRipService
Shell "" RemoveIsnSapService
set fTcpIpChosen = FALSE
set fIpxChosen = FALSE
; find out what protocols are currently selected
Shell "" QuerySelectedProtocols
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by QuerySelectedProtocols."
endif
set fNetbeuiSelected = $($R1)
set fTcpIpSelected = $($R2)
set fIpxSelected = $($R3)
set fNetbeuiAllowed = $($R4)
set fTcpIpAllowed = $($R5)
set fIpxAllowed = $($R6)
set dwRouterType = $($R7)
ifstr(i) $(fTcpIpSelected) == TRUE
set fTcpIpChosen = TRUE
else
set fTcpIpChosen = $(fTcpIpAllowed)
endif
ifstr(i) $(fIpxSelected) == TRUE
set fIpxChosen = TRUE
else
set fIpxChosen = $(fIpxAllowed)
endif
set LanRoutingOnly = FALSE
ifint $(dwRouterType) == 1
set RasInstalled = TRUE
else-ifint $(dwRouterType) == 2
set LanRoutingOnly = TRUE
set LanInstalled = TRUE
else-ifint $(dwRouterType) == 3
set RasInstalled = TRUE
set LanInstalled = TRUE
else-ifint $(dwRouterType) == 4
set DdmInstalled = TRUE
else-ifint $(dwRouterType) == 5
set RasInstalled = TRUE
set DdmInstalled = TRUE
else-ifint $(dwRouterType) == 6
set DdmInstalled = TRUE
set LanInstalled = TRUE
else-ifint $(dwRouterType) == 7
set RasInstalled = TRUE
set DdmInstalled = TRUE
set LanInstalled = TRUE
else
Debug-Output "upgraderas:invalid RouterType "$(dwRouterType)
endif
Shell "" InstallRouterService $(DdmInstalled) $(RasInstalled) $(RoutingKeyList) $(RoutingValueList)
; Add the static dependency on RasMan service only if
; demand dial routing is enabled
ifstr(i) $(LanRoutingOnly) != TRUE
Shell "" AddServiceDependency "Router" "RasMan"
endif
Debug-Output "!PROXY_INSTALLED = "$(!PROXY_INSTALLED)
ifstr(i) $(!PROXY_INSTALLED) == "TRUE"
Shell "" AddServiceDependency "Router" "mspadmin"
endif
; this dependency is required for RouterAdmin to show routing info
Shell "" AddServiceDependency "Router" "LanManServer"
Debug-Output "UpgradeRas: dwRouterType= "$(dwRouterType)
; if lan routing only is installed, then we are done
ifstr(i) $(dwRouterType) == $(ROUTER_TYPE_LAN)
Debug-Output "UpgradeRas: done because lanroutingonly"
goto UpgradeRasEnd
endif
; Change the EventMessageFile value for the following services
; from rasmsg.dll to mprmsg.dll.
ForListDo {AsyncMac, NdisWan, RasAuto, RasMan, RemoteAccess}
set ServiceName = $(!NTN_ServiceBase)"\EventLog\System\"$($)
OpenRegKey $(!REG_H_LOCAL) "" $(ServiceName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != $(KeyNull)
SetRegValue $(KeyService) {EventMessageFile, $(NoTitle), $(!REG_VT_EXPAND_SZ), $(!RouterMsgDll)}
CloseRegKey $(KeyService)
endif
EndForListDo
ifstr(i) $(fTcpIpChosen) == TRUE
; Remove TCP/IP dependency on RASARP
; this change is part of the no-net changes in RAS 2/15/96 RamC
Shell "" RemoveServiceDependency "TCPIP" "RASARP"
; make rasarp belong to PNP_TDI group, make it autostart and
; make rasarp depend on TCP/IP
; Modified on 9/24/96 by RamC for Routing related changes
; RasArp is not required any more - this service is replaced by WanArp now
Shell "" RemoveRasArpService
Shell "" InstallWanArpService
Shell "" DisablePPTPFilterDriver
Shell "" InstallIPFilterDriver
Shell "" InstallIPEventlogDlls
Shell "" InstallIPSnmpAgents
endif
ifstr(i) $(fIpxChosen) == TRUE
Shell "" InstallIpxPingService
shell "" InstallNwlnkFwdService
shell "" InstallNwlnkFltService
Shell "" InstallIPXEventlogDlls
Shell "" InstallIPXSnmpAgents
endif
; install the IP/IPX router managers and add LAN interfaces
; for installed net cards
LibraryProcedure Result, $(PORTSDLGHANDLE), AddRtrMgrAndLanInterfaces $(fTcpIpChosen) $(fIpxChosen)
ifstr(i) $(Result) == ERROR
Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "STATUS" $(ErrorAddingRtrMgr)
else
Debug-Output "AddRtrMgrAndLanInterfaces exit."
endif
; Now change the ImagePath value of the following services to
; the new imagepath - mprouter.exe
; also set the appropriate type value
ForListDo {remoteaccess, rasman, rasauto, router}
set ServiceName = $(!NTN_ServiceBase)"\"$($)
set ImagePath = "%SystemRoot%\System32\mprouter.exe"
set KeyService = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(ServiceName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != $(KeyNull)
SetRegValue $(KeyService) {ImagePath,$(NoTitle),$(!REG_VT_EXPAND_SZ),$(ImagePath)}
SetRegValue $(KeyService) {Type,$(NoTitle),$(!REG_VT_DWORD),288}
CloseRegKey $(KeyService)
endif
EndForListDo
; Set RestoreConnections to 1 - this is because RAS setup
; doesn't provide the UI any more to disable netconnections
; due to changes in the NT redirector which restores connections
; in a deferred state.
Shell "" SetRestoreConnectionTo1
; Remove RemoteAccess dependency on NetLogon service because
; NT Cairo doesn't have netlogon service any more.
Shell "" RemoveServiceDependency "RemoteAccess" "NetLogon"
; Add RasMan dependency on TapiSrv, a new service
Shell "" AddServiceDependency "RasMan" "tapisrv"
Shell "" AddServiceDependency "RasMan" "rpcss"
; this dependency is required for ppp to start up fine
Shell "" AddServiceDependency "RasMan" "LanManWorkstation"
; this dependency is required for RouterAdmin to show routing info
Shell "" AddServiceDependency "Router" "LanManServer"
; install the all new AutoDial service
Shell "" InstallSoftwareAndService RASAUTODIAL
; Disable the RasAuto service if this is not a NT Workstation
; RamC 6/13/96 don't disable RasAuto for NT Server any more because
; redial-on-link-failure is implemented in autodial service and it should
; be enabled if one or more dialout ports are configured.
; Instead set the RasAuto start type to manual. 12/3/96
ifstr(i) $(!STF_PRODUCT) != "WINNT"
OpenRegKey $(!REG_H_LOCAL) "" $(!RasAutodialKeyName) $(!MAXIMUM_ALLOWED) KeyAutodial
ifstr $(KeyAutodial) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open RasAuto key"
else
SetRegValue $(KeyAutodial) {Start, $(NoTitle), $(!REG_VT_DWORD), 3}
CloseRegKey $(KeyAutodial)
endif
endif
Shell "" AddServiceDependency "RasAuto" "RasMan"
; change the RasMan sevice type to "serviceshare" (32) from "service" (16)
; this is needed because RasAutoDial shares rasman.exe,
OpenRegKey $(!REG_H_LOCAL) "" $(!RasManSvcKeyName) $(!MAXIMUM_ALLOWED) KeyRasMan
ifstr $(KeyRasMan) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open RasMan key"
else
SetRegValue $(KeyRasMan) {Type, $(NoTitle), $(!REG_VT_DWORD), 32}
CloseRegKey $(KeyRasMan)
endif
;
; Commented out by RamC on 10/15/96 - This is not relevant any more
; since we shipped two versions of NT with NdisWan
; ;Rename the software and services RasHub keys to NdisWan
; LoadLibrary "x" $(!STF_CWDDIR)rascfg.dll PORTSDLGHANDLE
; LibraryProcedure Result, $(PORTSDLGHANDLE), RenameRasHubToNdisWan
;
; ; now rename all occurences of RasHub to NdisWan (including the
; ; net rules in the NetworkCards area
;
; Shell "" RenameRasHubToNdisWan
; ifint $($ShellCode) != $(!SHELL_CODE_OK)
; Debug-Output "OEMNSVRA.INF:error shelling RenameRasHubToNdisWan."
; goto ShellCodeError
; endif
; Ifstr(i) $($R0) != STATUS_SUCCESSFUL
; Debug-Output "OEMNSVRA.INF:error returned by RenameRasHubToNdisWan."
; goto end
; endif
; Install the NdisWan Adapter for Blood Hound service to bind to
; This should be done only if the adapter is not already installed.
Shell "" IsNdisWanBHAdapterInstalled
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling IsNdisWanBHAdapterInstalled"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
; the adpater is not installed, so install it now
Shell "" InstallNdisWanBHAdapter
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling InstallNdisWanBHAdapter"
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set RegistryErrorIndex = $($R0)
Debug-Output "Error installing NdisWan Blood hound adapter"
goto fatalregistry
endif
endif
; Install the connection wrapper
Shell "" InstallNdisTapiService
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error shelling InstallNdisTapiService "
goto ShellCodeError
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set RegistryErrorIndex = $($R0)
Debug-Output "Error installing NdisTapi Service"
goto fatalregistry
endif
; update asyncmac bind rules to prevent blood hound binding to it
Shell "" UpdateAsyncMacNetRules
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling UpdateAsyncMacNetRules."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVRA.INF:error returned by UpdateAsyncMacNetRules."
goto end
endif
; modify ndiswan netrules to reflect the new protocol support
Shell "" UpdateNdisWanInfo
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling UpdateNdisWanInfo."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVRA.INF:error returned by UpdateNdisWanInfo."
goto end
endif
; Add NDISWAN to the ServiceGroupOrder so that all NDIS components
; load before NdisWan driver.
Shell "" AddNDISWANToServiceGroupOrder
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Cannot add NDISWAN to ServiceGroupOrder"
goto ShellCodeError
endif
Shell "" UpdateAsyncMacParameters
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling UpdateAsyncMacParameters."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVRA.INF:error returned by UpdateAsyncMacParameters."
goto end
endif
Shell "" UpdateAsyncMacStartType
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling UpdateAsyncMacStartType."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVRA.INF:error returned by UpdateAsyncMacStartType."
goto end
endif
; update SOFTWARE\RAS\PROTOCOLS with the list of selected
; protocols.
Shell "" UpgradeSelectedProtocols
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling UpgradeSelectedProtocols."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVRA.INF:error returned by UpgradeSelectedProtocols."
goto end
endif
; Set the remoteaccess service start type to manual because
; this service functionality is now in Router service.
OpenRegKey $(!REG_H_LOCAL) "" $(RasSvrKeyName) +
$(!MAXIMUM_ALLOWED) KeySvr
ifstr $(KeySvr) != $(KeyNull)
Debug-Output "OEMNSVRA.INF: Changing Router Start value to 3"
SetRegValue $(KeySvr) {Start,$(NoTitle),$(!REG_VT_DWORD), 3}
CloseRegKey $(KeySvr)
else
Debug-Output "OEMNSVRA.INF: error opening RemoteAccess service key"
endif
; if the user is upgrading a WinNt system to a ServerNt system,
; and if there is at least one dialin port, then change the
; router service start type to auto if the service is not
; currently disabled.
; also change the ndistapi parameter value.
; The software\Microsoft\Ras\Protocols key has the variables
; fNetbeuiAllowed, fTcpIpAllowed and fIpxAllowed which indicate
; if there is any dialin port configured. If one of these is
; set to 1, then the ras server start type is set to AutoStart - 2
ifstr(i) $(!STF_STANDARDSERVERUPGRADE) == "YES"
OpenRegKey $(!REG_H_LOCAL) "" $(RasProtocolsKeyName) +
$(!MAXIMUM_ALLOWED) KeyProtocols
ifstr $(KeyProtocols) != $(KeyNull)
set fDialin = FALSE
set TmpList = {}
GetRegValue $(KeyProtocols) "fNetbeuiAllowed" TmpList
ifint $(RegLastError) == 0
ifstr *($(TmpList), 4) == 1
set fDialin = TRUE
endif
endif
set TmpList = {}
ifstr(i) $(fDialin) == FALSE
GetRegValue $(KeyProtocols) "fTcpIpAllowed" TmpList
ifint $(RegLastError) == 0
ifstr *($(TmpList), 4) == 1
set fDialin = TRUE
endif
endif
endif
set TmpList = {}
ifstr(i) $(fDialin) == FALSE
GetRegValue $(KeyProtocols) "fIpxAllowed" TmpList
ifint $(RegLastError) == 0
ifstr *($(TmpList), 4) == 1
set fDialin = TRUE
endif
endif
endif
Debug-Output "OEMNSVRA.INF: Upgrade => Are dialin ports configured? "$(fDialin)
ifstr(i) $(fDialin) == TRUE
OpenRegKey $(!REG_H_LOCAL) "" $(!RouterKeyName) +
$(!MAXIMUM_ALLOWED) KeySvr
ifstr $(KeySvr) != $(KeyNull)
set RasStartValue = 2
GetRegValue $(KeySvr) "Start" StartList
ifint $(RegLastError) == 0
set RasStartValue = *($(StartList), 4)
endif
; check if the service is currently disabled
ifint $(RasStartValue) != 4
Debug-Output "OEMNSVRA.INF: Changing Router Start value to 2"
SetRegValue $(KeySvr) {Start,$(NoTitle),$(!REG_VT_DWORD), 2}
endif
CloseRegKey $(KeySvr)
else
Debug-Output "OEMNSVRA.INF: error opening Router service key"
endif
endif
CloseRegKey $(KeyProtocols)
else
Debug-Output "OEMNSVRA.INF: could not open RAS\Protocols key"
endif
; set the NdisTapi parameter for a wksta to server upgrade
OpenRegKey $(!REG_H_LOCAL) "" $(!NdisTapiKeyName)"\Parameters" $(!MAXIMUM_ALLOWED) ParamKey
Ifstr(i) $(ParamKey) != $(KeyNull)
SetRegValue $(ParamKey) {AsyncEventQueueSize, 0, $(!REG_VT_DWORD), 3072}
CloseRegKey $(ParamKey)
EndIf
endif
; If RAS is configured for NWLNKIPX, then rename the IPXROUTER
; key to NWLNKRIP and rename occurances of isnrip.sys to
; nwlnkrip.sys.
; Change the RemoteAccess service dependency to depend on
; NWLNKRIP service.
; Add the NwlnkRip\UseRef key to indicate RAS is
; using the service.
; Also, if SAP agent was installed by RAS, remove and install
; the service by shelling the OEMNSVSA.INF file so that SAP
; agent can be shared by NCP server.
Shell "" UpgradeIpxInfo $(PORTSDLGHANDLE)
; map the NT3.1 ISDN info (if present) to the TAPI DEVICES format
Shell "" UpgradeIsdnInfo
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling UpgradeIsdnInfo."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVRA.INF:error returned by UpgradeIsdnInfo."
set Error = $(UpgradeIsdnInfoError)
goto fatal
endif
; Add Perfmon data to the registry and load ras perf counters
Shell "" UpdatePerfmonInfo
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling UpdatePerfmonInfo."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVRA.INF:error returned by UpdatePerfmonInfo."
goto end
endif
Shell "" UpdateCPList
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling UpdateCPList."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVRA.INF:error returned by UpdateCPList."
goto end
endif
; if this is not a workstation, then bump up the NdisTapi
; parameter to 4 times its original value
ifstr(i) $(!STF_PRODUCT) != "WINNT"
OpenRegKey $(!REG_H_LOCAL) "" $(!NdisTapiKeyName)"\Parameters" $(!MAXIMUM_ALLOWED) ParamKey
Ifstr(i) $(ParamKey) != $(KeyNull)
SetRegValue $(ParamKey) {AsyncEventQueueSize, 0, $(!REG_VT_DWORD), 3072}
CloseRegKey $(ParamKey)
EndIf
EndIf
; Remove and create the program manager group to make sure
; that the new readme icons are created. If setup supported
; querying the program manager to determine if an item exists,
; we could have done this better.
; remove the group and add the RouterAdmin icon
Install RemoveRasGroup
Install CreateRtrAdminIcon
; 3/22/96 Remote Access Program Group is not created any more
; instead the Remote Access Admin icon will appear in Administrative Tools folder
; and Dial-Up Networking icon (previously Remote Access) will appear in Accessories
; and My Computer folder. The help icons will be absorbed in the main NT help.
; the old Remote Access Monitor icon appears in the Control Panel as Dial-Up Monitor.
; Install CreateRasGroup
UpgradeRasEnd =+
EndWait
Ifint $(BillboardVisible) != 0
Shell "subroutn.inf" PopBillboard
Set BillboardVisible = 0
Endif
endif
; fix the RAS SoftwareType to correctly be listed as a Servive
; so that then new NCPA will display it.
Shell "" UpdateSoftwareType
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF:error shelling UpdateSoftwareType."
goto ShellCodeError
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVRA.INF:error returned by UpdateSoftwareType."
goto end
endif
SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMajorVersion)}
SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMinorVersion)}
;
; Update description and op support
;
SetRegValue $(KeyProduct) {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductRASDescription)}
SetRegValue $(KeyProduct) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)}
CloseRegKey $(KeyProduct)
else
Set RegistryErrorIndex = $($R0)
goto fatalregistry
endif
goto end
;----------------------------------------------------------------------------
successful = +
; 3/22/96 Remote Access Program Group is not created any more
; instead the Remote Access Admin icon will appear in Administrative Tools folder
; and Dial-Up Networking icon (previously Remote Access) will appear in Accessories
; and My Computer folder. The help icons will be absorbed in the main NT help.
; the old Remote Access Monitor icon appears in the Control Panel as Dial-Up Monitor.
;
; Ifstr(i) $(!NTN_InstallMode) == "install"
; Debug-Output "OEMNSVRA.INF: Creating Ras Group and Icons"
; ifstr(i) $(DoServerOnly) == FALSE
; install CreateRasGroup
; endif
; EndIf
Ifstr(i) $(!NTN_InstallMode) == "install"
Debug-Output "OEMNSVRA.INF: Creating RTRADMIN icon in Administrative Tools program group"
install CreateRtrAdminIcon
EndIf
Ifstr(i) $(!NTN_InstallPhase) == primary
goto installstep1
else-ifstr(i) $(!NTN_InstallMode) == configure
goto installstep1
endif
ifint $(NewNumDialin) != 0
; display success message only in attended mode of setup
ifstr(i) $(!STF_GUI_UNATTENDED) != YES
read-syms SuccessfulInstall$(!STF_LANGUAGE)
ifstr(i) $(LanRoutingOnly) != TRUE
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(Success)
endif
endif
endif
installstep1 = +
goto end
;;;;;;;;;;;;;;;;;;; Warning messages ;;;;;;;;;;;;;
; warning display
;
warning = +
Shell $(subroutninf) 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
Debug-Msg "Error Error Bad DLGEVENT"
goto "end"
endif
;
; non fatal error display
;
nonfatal = +
Shell $(subroutninf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(from)
else
goto "end"
endif
;
; Registry is broken
;
fatalregistry = +
Shell $(!UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "fatalregistry: shell to find RegistryErrorString failed."
goto ShellCodeError
endif
ifstr(i) $(RasSpecificString) != ""
set Error = $($R0)" - service "$(RasSpecificString)"."
else
set Error = $($R0)
endif
read-syms AbortMessage$(!STF_LANGUAGE)
set Error = $(Error)$(!LF)$(!LF)$(AbortText)
goto fatal
; fatal error display
;
fatal = +
Shell $(subroutninf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "fatal: shell to SetupMessage failed."
goto ShellCodeError
endif
goto setfailed
;
; Shelling error
;
ShellCodeError = +
read-syms ShellCodeErrorMsg$(!STF_LANGUAGE)
ui start "Error Message"
goto setfailed
setfailed = +
set CommonStatus = STATUS_FAILED
;
; If OEM_ABANDON_ON, we need to clean up the registry
;
ifstr(i) $(fRemoveRas) == TRUE
set fRemoveRas = FALSE
set from = setfailed
set to = end
goto RemoveRas
endif
goto end
filecopycancel =+
set CommonStatus = STATUS_USERCANCEL
ifstr(i) $(fRemoveRas) == TRUE
set fRemoveRas = FALSE
set from = setfailed
set to = end
goto RemoveRas
endif
;
end = +
ifstr(i) $(PORTSDLGHANDLE) != $(HandleNull)
Debug-Output "Unloading RASCFG.DLL"
FreeLibrary $(PORTSDLGHANDLE)
endif
Debug-Output "ending at last!!"
goto term
term = +
Debug-Output "OEMNSVRA.INF:term: CommonStatus "$(CommonStatus)
Return $(CommonStatus)
[BindingsReview]
; This routine is invoked by NCPA when we list OEMNSVRA.INF in the
; ReviewPrograms list in SOFTWARE\Microsoft\NCPA registry key
; we do this to ensure that we are the last to be called for review
; bindings.
;
; extract parameters
;
set Option = $($1)
set SrcDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)
set Language = $(!STF_LANGUAGE)
set SaveInstallMode = $(!NTN_InstallMode)
; force the bind mode
set !NTN_InstallMode = bind
Shell "" InstallOption $(Language) $(Option) $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig)
; restore install mode
set !NTN_InstallMode = $(SaveInstallMode)
set Status = $($R0)
Return $(Status)
;*************************************
;
;
; Installation Support Routines
;
;
;************************************
[AreRequiredDllsPresent]
; determine if the required dll's are present for rascfg.dll to load
; the dll's rascfg.dll pulls in are rasfil32.dll, rasmxs.dll, rtrcfg.dll, ipxadmin.dll and mprapi.dll
;
Debug-Output "AreRequiredDllsPresent entry.."
set Sys32Dir = $(!STF_WINDOWSSYSPATH)
set FilesList = { "RASCFG.DLL", "RASFIL32.DLL", "RASMXS.DLL", "RTRCFG.DLL", "IPXADMIN.DLL", "MPRAPI.DLL", "MPRFILTR.DLL" }
set MissingFiles = {}
forlistdo $(FilesList)
set STATUS = NO
LibraryProcedure STATUS, $(!LIBHANDLE), CheckFileExistance $(Sys32Dir)"\"$($)
ifstr(i) $(STATUS) == NO
set MissingFiles = >($(MissingFiles), $($)" ")
endif
endforlistdo
QueryListSize NumberOfFiles $(MissingFiles)
ifint $(NumberOfFiles) != 0
Debug-Output "AreRequiredDllsPresent: missing files=> "$(MissingFiles)
set Status = STATUS_FAILED
else
set Status = STATUS_SUCCESSFUL
endif
Debug-Output "AreRequiredDllsPresent exit."
return $(Status) $(MissingFiles)
[SetRestoreConnectionTo1]
; Set the system\currentcontrolset\control\networkprovider\restoreconnection value to 1
Debug-Output "SetRestoreConnectionTo1 entry.."
set KeyNull = ""
set RestoreKeyName = "SYSTEM\CurrentControlSet\Control\networkprovider"
OpenRegKey $(!REG_H_LOCAL) "" $(RestoreKeyName) $(!MAXIMUM_ALLOWED) KeyRestore
Ifstr(i) $(KeyRestore) != $(KeyNull)
SetRegValue $(KeyRestore) {RestoreConnection, 0, $(!REG_VT_DWORD), 1}
CloseRegKey $(KeyRestore)
else
Debug-Output "SetRestoreConnectionTo1 error opening key. "$(RestoreKeyName)
endif
Debug-Output "SetRestoreConnectionTo1 exit."
return
[InstallSoftwareAndService]
; Create the software and the service sections in the registry for the component $($0)
set Status = STATUS_SUCCESSFUL
set ThisOption = $($0)
Debug-Output "InstallSoftwareAndService for "$(ThisOption)
Shell $(!UtilityInf), AddSoftwareComponent, $(!Manufacturer), +
$(!Product$(ThisOption)Name), $(!Product$(ThisOption)Name), +
$(!Product$(ThisOption)DisplayName), +
; $(!RasInfName), $(!Product$(ThisOption)ImagePath), "autoserviceshare",+
; Modified service type from autoserviceshare to serviceshare
; on 9/26/96 by RamC for routing related changes
$(!RasInfName), $(!Product$(ThisOption)ImagePath), "serviceshare",+
"", {}, "", $(!RouterMsgDll), $(!RasEventTypeSupported)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "InstallSoftware: AddSoftware bombed out for "$(ThisOption)
goto InstallSoftwareError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) == SERVICE_ALREADY_EXISTS
return $(Status)
EndIf
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto InstallSoftwareError
endif
;
; At this point:
; $R1 contains the product version key handle;
; $R2 contains the NetRules subkey handle;
; $R3 contains the new Services key handle; and
; $R4 contains the Parameters key
; $R5 contains the Linkage key
;
Set SoftProductKey = $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
; set product key information in the registry
set NewValueList = +
{{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)Name)},+
{SoftwareType,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)SvcType)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(!Product$(ThisOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)Description)},+
{PathName,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)ImagePath)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMinorVersion)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(!CurrentDate),1)},+
{Hidden,$(NoTitle),$(!REG_VT_DWORD),$(!HideComponent)}}
Shell $(!UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "InstallSoftware: AddValueList bombed out for "$(ThisOption)
goto InstallSoftwareError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto InstallSoftwareError
endif
goto InstallSoftwareEnd
InstallSoftwareError =+
read-syms ShellCodeErrorMsg$(!STF_LANGUAGE)
ui start "Error Message"
return STATUS_FAILED
InstallSoftwareEnd =+
return $(Status)
[InstallRouterService]
; This Shell command installs the Router service and creates the router manager
; keys.
; First to check to see if the router service is already installed
set ServiceName = $(!NTN_SoftwareBase)"\"$(!Manufacturer)"\ROUTER\CurrentVersion"
OpenRegKey $(!REG_H_LOCAL) "" $(ServiceName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != $(KeyNull)
CloseRegKey $(KeyService)
goto InstallRouterServiceEnd
endif
set ThisOption = "ROUTING"
set PROTO_IP = 33
set PROTO_IPX = 43
set KeyNull = ""
set NoTitle = 0
set InstallDdm = $($0)
set InstallRas = $($1)
set RoutingKeyList = $($2)
set RoutingValueList = $($3)
; if one of Ddm or RAS is installed, then set the LanOnlyMode value to 0
; also set the dependency for router service based on LanOnlyMode
set DependOn = {"LanmanServer"}
set LanOnlyMode = 1
ifstr(i) $(InstallDdm) == "TRUE"
set DependOn = >($(DependOn), "RasMan")
set LanOnlyMode = 0
else-ifstr(i) $(InstallRas) == "TRUE"
set DependOn = >($(DependOn), "RasMan")
set LanOnlyMode = 0
endif
Debug-Output "RoutingKeyList "$(RoutingKeyList)
Debug-Output "RoutingValueList "$(RoutingValueList)
set Name = *($(RoutingValueList), ~($(RoutingKeyList), Name))
set ImagePath = *($(RoutingValueList), ~($(RoutingKeyList), ImagePath))
set SvcType = *($(RoutingValueList), ~($(RoutingKeyList), SvcType))
set Class = *($(RoutingValueList), ~($(RoutingKeyList), Class))
set Type = *($(RoutingValueList), ~($(RoutingKeyList), Type))
set Use = *($(RoutingValueList), ~($(RoutingKeyList), Use))
set BindForm = *($(RoutingValueList), ~($(RoutingKeyList), BindForm))
set Bindable = *($(RoutingValueList), ~($(RoutingKeyList), Bindable))
set MsgDll = *($(RoutingValueList), ~($(RoutingKeyList), MsgDll))
set EventType = *($(RoutingValueList), ~($(RoutingKeyList), EventType))
Shell $(!UtilityInf), AddSoftwareComponent, $(!Manufacturer), +
$(Name), $(Name), +
$(!Product$(ThisOption)DisplayName), +
$(!RasInfName), $(ImagePath),+
; modified by ramc on 9/25
; router should only depend on rasman for demand dial configuration
; "serviceshare", "Network", {"RasMan"}, "", +
"serviceshare", "Network", $(DependOn), "", +
$(MsgDll), $(EventType)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter: AddSoftware bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
endif
;
; At this point:
; $R1 contains the product version key handle;
; $R2 contains the NetRules subkey handle;
; $R3 contains the new Services key handle; and
; $R4 contains the Parameters key
; $R5 contains the Linkage key
;
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
set SoftServiceKey = $($R3)
Set SoftParamsKey = $($R4)
Set SoftLinkageKey = $($R5)
; set product key information in the registry
set NewValueList = +
{{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),+
$(Name)},+
{SoftwareType,$(NoTitle),$(!REG_VT_SZ),+
$(SvcType)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(!Product$(ThisOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)Description)},+
{PathName,$(NoTitle),$(!REG_VT_SZ),+
$(ImagePath)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(!ProductMinorVersion)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(!CurrentDate),1)},+
{Review, $(NoTitle), $(!REG_VT_DWORD), 1}, +
{Hidden,$(NoTitle),$(!REG_VT_DWORD), $(!HideComponent)}}
Shell $(!UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter:product: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CreateRegKey $(SoftProductKey) {"UIConfigDLLs",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyUIConfigDLLs
set NewValueList = +
{{58bdf950-f471-11cf-aa67-00805f0c9232, $(NoTitle), $(!REG_VT_SZ), "ifadmin.dll"},+
{58bdf951-f471-11cf-aa67-00805f0c9232, $(NoTitle), $(!REG_VT_SZ), "ipadmin.dll"},+
{58bdf952-f471-11cf-aa67-00805f0c9232, $(NoTitle), $(!REG_VT_SZ), "ipxadmin.dll"},+
{58bdf953-f471-11cf-aa67-00805f0c9232, $(NoTitle), $(!REG_VT_SZ), "ddmadmin.dll"}}
Shell $(!UtilityInf), AddValueList, $(KeyUIConfigDLLs), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter:UIconfigDlls: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
CloseRegKey $(SoftProductKey)
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
set KeyRouterMgrs = $(KeyNull)
set KeyIP = $(KeyNull)
set KeyIpx = $(KeyNull)
CreateRegKey $(SoftProductKey) {"RouterManagers",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyRouterMgrs
ifstr(i) $(KeyRouterMgrs) != $(KeyNull)
CreateRegKey $(KeyRouterMgrs) {"IP",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyIP
CreateRegKey $(KeyRouterMgrs) {"IPX",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyIPX
CloseRegKey $(KeyRouterMgrs)
else
Debug-Output "CreateRegKey failed for RouterManagers"
endif
set NewValueList = +
{{Title, $(NoTitle), $(!REG_VT_SZ), "TCP/IP Routing Manager"},+
{ProtocolId, $(NoTitle), $(!REG_VT_DWORD), $(PROTO_IP)},+
{DllPath, $(NoTitle), $(!REG_VT_EXPAND_SZ), "%SystemRoot%\system32\iprtrmgr.dll"},+
{ConfigCLSID, $(NoTitle), $(!REG_VT_SZ), "58bdf951-f471-11cf-aa67-00805f0c9232"},+
{ConfigDll, $(NoTitle), $(!REG_VT_SZ), "ipadmin.dll"}}
Shell $(!UtilityInf), AddValueList, $(KeyIP), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter:UIconfigDlls: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
CloseRegKey $(SoftProductKey)
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
set KeyIpRip = $(KeyNull)
set KeyBootp = $(KeyNull)
set KeyOSPF = $(KeyNull)
ifstr(i) $(KeyIP) != $(KeyNull)
CreateRegKey $(KeyIP) {"IPRIP",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyIpRip
CreateRegKey $(KeyIP) {"IPBOOTP",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyBootp
CreateRegKey $(KeyIP) {"OSPF",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyOSPF
else
Debug-Output "KeyIP is not valid"
endif
ifstr(i) $(KeyIpRip) != $(KeyNull)
set NewValueList = +
{{Title, $(NoTitle), $(!REG_VT_SZ), "RIP Version 2 for Internet Protocol"},+
{ProtocolId, $(NoTitle), $(!REG_VT_DWORD), 8},+
{DllName, $(NoTitle), $(!REG_VT_SZ), "IPRIP2.DLL"},+
{ConfigDll, $(NoTitle), $(!REG_VT_SZ), "ipadmin.dll"}}
Shell $(!UtilityInf), AddValueList, $(KeyIpRip), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter:UIconfigDlls: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
CloseRegKey $(SoftProductKey)
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
CloseRegKey $(KeyIpRip)
else
Debug-Output "KeyIpRip is not valid"
endif
ifstr(i) $(KeyBootp) != $(KeyNull)
set NewValueList = +
{{Title, $(NoTitle), $(!REG_VT_SZ), "DHCP Relay Agent"},+
{ProtocolId, $(NoTitle), $(!REG_VT_DWORD), 9999},+
{DllName, $(NoTitle), $(!REG_VT_SZ), "IPBOOTP.DLL"},+
{ConfigDll, $(NoTitle), $(!REG_VT_SZ), "ipadmin.dll"}}
Shell $(!UtilityInf), AddValueList, $(KeyBootp), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter:UIconfigDlls: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
CloseRegKey $(SoftProductKey)
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
CloseRegKey $(KeyBootp)
else
Debug-Output "KeyBootp is not valid"
endif
ifstr(i) $(KeyOSPF) != $(KeyNull)
set NewValueList = +
{{Title, $(NoTitle), $(!REG_VT_SZ), "Open Shortest Path First (OSPF) by Bay Networks"},+
{ProtocolId, $(NoTitle), $(!REG_VT_DWORD), 13},+
{DllName, $(NoTitle), $(!REG_VT_SZ), "OSPF.DLL"},+
{ConfigDll, $(NoTitle), $(!REG_VT_SZ), "ipadmin.dll"}}
Shell $(!UtilityInf), AddValueList, $(KeyOSPF), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter:UIconfigDlls: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
CloseRegKey $(SoftProductKey)
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
CloseRegKey $(KeyOSPF)
else
Debug-Output "KeyOSPF is not valid"
endif
ifstr(i) $(KeyIP) != $(KeyNull)
CloseRegKey $(KeyIP)
endif
set KeyIpxRip = $(KeyNull)
set KeyIpxSap = $(KeyNull)
ifstr(i) $(KeyIPX) != $(KeyNull)
set NewValueList = +
{{Title, $(NoTitle), $(!REG_VT_SZ), "IPX Routing Manager"},+
{ProtocolId, $(NoTitle), $(!REG_VT_DWORD), $(PROTO_IPX)},+
{DllPath, $(NoTitle), $(!REG_VT_EXPAND_SZ), "%SystemRoot%\system32\ipxrtmgr.dll"},+
{ConfigCLSID, $(NoTitle), $(!REG_VT_SZ), "58bdf952-f471-11cf-aa67-00805f0c9232"},+
{ConfigDll, $(NoTitle), $(!REG_VT_SZ), "ipxadmin.dll"}}
Shell $(!UtilityInf), AddValueList, $(KeyIPX), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter:UIconfigDlls: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
CloseRegKey $(SoftProductKey)
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
CreateRegKey $(KeyIPX) {"IpxRip",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyIpxRip
CreateRegKey $(KeyIPX) {"IpxSap",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyIpxSap
endif
ifstr(i) $(KeyIpxRip) != $(KeyNull)
set NewValueList = +
{{Title, $(NoTitle), $(!REG_VT_SZ), "RIP for IPX"},+
{ProtocolId, $(NoTitle), $(!REG_VT_DWORD), 131072},+
{DllName, $(NoTitle), $(!REG_VT_SZ), "IPXRIP.DLL"},+
{ConfigDll, $(NoTitle), $(!REG_VT_SZ), "ipxadmin.dll"}}
Shell $(!UtilityInf), AddValueList, $(KeyIpxRip), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter:UIconfigDlls: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
CloseRegKey $(SoftProductKey)
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
CloseRegKey $(KeyIpxRip)
endif
ifstr(i) $(KeyIpxSap) != $(KeyNull)
set NewValueList = +
{{Title, $(NoTitle), $(!REG_VT_SZ), "SAP for IPX"},+
{ProtocolId, $(NoTitle), $(!REG_VT_DWORD), 131073},+
{DllName, $(NoTitle), $(!REG_VT_SZ), "IPXSAP.DLL"},+
{ConfigDll, $(NoTitle), $(!REG_VT_SZ), "ipxadmin.dll"}}
Shell $(!UtilityInf), AddValueList, $(KeyIpxSap), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter:UIconfigDlls: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
CloseRegKey $(SoftProductKey)
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
CloseRegKey $(KeyIpxSap)
endif
ifstr(i) $(KeyIPX) != $(KeyNull)
CloseRegKey $(KeyIPX)
endif
CloseRegKey $(SoftProductKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
goto fatalregistry
endif
; set netrules information in the registry
set NewValueList = +
{{class, $(NoTitle), $(!REG_VT_SZ), $(Class)},+
{type,$(NoTitle),$(!REG_VT_SZ),$(Type)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(Use)}, +
;Modified on 9/24/96 - changed ThisOption to ROUTING
; {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ), "RAS"}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),+
$(BindForm)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),+
$(Bindable)}, +
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)}}
Shell $(!UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "DoRouter:netrules: AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftNetRuleKey)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParamsKey)
Debug-Output "DoRouter: Registry Error "$(RegistryErrorIndex)
goto fatalregistry
endif
; create default parameters
set NewValueList = +
{{LanOnlyMode, $(NoTitle), $(!REG_VT_DWORD), $(LanOnlyMode)}}
Shell $(!UtilityInf), AddValueList, $(SoftParamsKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "AddValueList bombed out"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
CloseRegKey $(SoftServiceKey)
goto fatalregistry
endif
set KeyInterfaces = $(KeyNull)
set KeyDDM = $(KeyNull)
CreateRegKey $(SoftServiceKey) {"Interfaces",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyInterfaces
ifstr(i) $(KeyInterfaces) != $(KeyNull)
CloseRegKey $(KeyInterfaces)
endif
CreateRegKey $(SoftServiceKey) {"DemandDialManager",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyDDM
SetRegValue $(KeyDDM) {DLLPath, $(NoTitle), $(!REG_VT_EXPAND_SZ), "%SystemRoot%\system32\mprddm.dll"}
ifstr(i) $(KeyDDM) != $(KeyNull)
CloseRegKey $(KeyDDM)
endif
CloseRegKey $(SoftParamsKey)
CloseRegKey $(SoftServiceKey)
InstallRouterServiceEnd = +
return STATUS_SUCCESSFUL
[AddInfToReviewProgramsList]
; Add OEMNSVRA.INF to SOFTWARE\Microsoft\NCPA\ReviewPrograms list
Debug-Output "AddInfToReviewPrograms: entry"
set Status = STATUS_FAILED
set KeyNull = ""
set NcpaKeyName = $(!NTN_SoftwareBase)"\Microsoft\Ncpa\CurrentVersion"
set newList = {"OEMNSVRA.INF"}
OpenRegKey $(!REG_H_LOCAL) "" $(NcpaKeyName) $(!MAXIMUM_ALLOWED) KeyNcpa
Ifstr(i) $(KeyNcpa) != $(KeyNull)
GetRegValue $(KeyNcpa) "ReviewPrograms" TmpList
ifint $(RegLastError) == 0
Debug-Output "AddInf: old List "*($(TmpList), 4)
ForListDo *($(TmpList),4)
ifstr(i) $($) != "OEMNSVRA.INF"
set newList = >($(newList), $($))
endif
EndForListDo
Debug-Output "OEMNSVRA.INF: AddInf: new List "$(newList)
SetRegValue $(KeyNcpa) {ReviewPrograms, 0, +
$(!REG_VT_MULTI_SZ),$(newList)}
CloseRegKey $(KeyNcpa)
Set Status = STATUS_SUCCESSFUL
endif
else
Debug-Output "AddInfToReviewPrograms: error opening ncpa key."
endif
Debug-Output "AddInfToReviewPrograms: exit"
return $(Status)
[RemoveInfFromReviewPrograms]
; remove OEMNSVRA.INF from SOFTWARE\Microsoft\NCPA\ReviewPrograms list
Debug-Output "RemoveInfFromReviewPrograms: entry"
set Status = STATUS_FAILED
set KeyNull = ""
set NcpaKeyName = $(!NTN_SoftwareBase)"\Microsoft\Ncpa\CurrentVersion"
set newList = {}
OpenRegKey $(!REG_H_LOCAL) "" $(NcpaKeyName) $(!MAXIMUM_ALLOWED) KeyNcpa
Ifstr(i) $(KeyNcpa) != $(KeyNull)
GetRegValue $(KeyNcpa) "ReviewPrograms" TmpList
ifint $(RegLastError) == 0
Debug-Output "RemoveInf: old List "*($(TmpList), 4)
ForListDo *($(TmpList),4)
ifstr(i) $($) != "OEMNSVRA.INF"
set newList = >($(newList), $($))
endif
EndForListDo
Debug-Output "AddInf: new List "$(newList)
SetRegValue $(KeyNcpa) {ReviewPrograms, 0, +
$(!REG_VT_MULTI_SZ),$(newList)}
CloseRegKey $(KeyNcpa)
Set Status = STATUS_SUCCESSFUL
endif
else
Debug-Output "RemoveInfFromReviewPrograms: error opening ncpa key."
endif
Debug-Output "RemoveInfFromReviewPrograms: exit"
return $(Status)
[InstallResources]
set STF_VITAL = NO ; make sure failure to copy files is not fatal
; don't do this this is trouble 1/31
; set STF_OVERWRITE = "OLDER" ; don't overwrite files that are more recent
; set STF_DATE = "1997-01-29"
Debug-Output "In Copying Files"
ifstr(i) $(AddCopy) == "YES"
; attempt to create the system32\ras directory (just a precaution)
; because text mode setup should already have created this directory
CreateDir $(RasDir)
AddSectionFilesToCopyList Files-Resource $(SourceDir) $(!STF_WINDOWSSYSPATH)
AddSectionKeyFileToCopyList Files-Ras-Inf "rasread" $(SourceDir) $(ProductPath)
; Always overwrite the files in install mode, but copy new files as *.new in
; update mode.
ifstr(i) $(!NTN_InstallMode) == "Install"
AddSectionKeyFileToCopyList Files-Ras-Inf "modem" $(SourceDir) $(ProductPath)
AddSectionKeyFileToCopyList Files-Ras-Inf "pad" $(SourceDir) $(ProductPath)
AddSectionKeyFileToCopyList Files-Ras-Inf "switch" $(SourceDir) $(ProductPath)
AddSectionKeyFileToCopyList Files-Ras-Scp "cis" $(SourceDir) $(ProductPath)
AddSectionKeyFileToCopyList Files-Ras-Scp "slip" $(SourceDir) $(ProductPath)
AddSectionKeyFileToCopyList Files-Ras-Scp "slipmenu" $(SourceDir) $(ProductPath)
AddSectionKeyFileToCopyList Files-Ras-Scp "pppmenu" $(SourceDir) $(ProductPath)
AddSectionKeyFileToCopyList Files-Ras-Scp "scriptdoc" $(SourceDir) $(ProductPath)
else-Ifstr(i) $(!NTN_InstallMode) == "Update"
forlistdo {modem.new, pad.new, switch.new, cis.new, slip.new, slipmenu.new, pppmenu.new, script.doc}
LibraryProcedure Status, $(!LIBHANDLE), DelFile +
$(!STF_WINDOWSSYSPATH)"\RAS\"$($)
set STF_RENAME = "MODEM.NEW"
AddSectionKeyFileToCopyList Files-Ras-Inf "modem" $(SourceDir) $(ProductPath)
set STF_RENAME = "PAD.NEW"
AddSectionKeyFileToCopyList Files-Ras-Inf "pad" $(SourceDir) $(ProductPath)
set STF_RENAME = "SWITCH.NEW"
AddSectionKeyFileToCopyList Files-Ras-Inf "switch" $(SourceDir) $(ProductPath)
set STF_RENAME = "CIS.SCP"
AddSectionKeyFileToCopyList Files-Ras-Scp "cis" $(SourceDir) $(ProductPath)
set STF_RENAME = "SLIP.SCP"
AddSectionKeyFileToCopyList Files-Ras-Scp "slip" $(SourceDir) $(ProductPath)
set STF_RENAME = "SLIPMENU.SCP"
AddSectionKeyFileToCopyList Files-Ras-Scp "slipmenu" $(SourceDir) $(ProductPath)
set STF_RENAME = "PPPMENU.SCP"
AddSectionKeyFileToCopyList Files-Ras-Scp "pppmenu" $(SourceDir) $(ProductPath)
set STF_RENAME = "SCRIPT.DOC"
AddSectionKeyFileToCopyList Files-Ras-Scp "scriptdoc" $(SourceDir) $(ProductPath)
set STF_RENAME = ""
endif
endif
ifstr(i) $(!NTN_InstallMode) == "Update"
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
else-ifstr(i) $(DoCopy) == "YES"
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
endif
Debug-Output "Done Copying Files"
exit
[RemoveResources]
Debug-Output "In removing infs and dll"
set RemoveList = {}
set RenameList = {}
set RemoveList = >($(RemoveList), #(Files-RemoveList, MODEMINF, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, PADINF, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, SWITCHINF, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASSETUPHLP, 1))
set RenameList = >($(RenameList), #(Files-RemoveList, RASRESDLL, 1))
set RenameList = >($(RenameList), #(Files-RemoveList, RASCFGDLL, 1))
set RenameList = >($(RenameList), #(Files-RemoveList, RASFIL32DLL, 1))
ForListDo $(RemoveList)
Debug-Output "Removing "$($)
LibraryProcedure Status , $(!LIBHANDLE), DelFile $($)
Debug-Output "Status is "$(Status)
EndForListDo
ForListDo $(RenameList)
Split-String $($) "\" FilePath
QueryListSize PathLen $(FilePath)
Split-String *($(FilePath),$(PathLen)) "." FullFileName
Set FileName = *($(FullFileName),1)
Debug-Output "FileName is "$(FileName)
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileName)".old"
Debug-Output "CheckFile Status = "$(STATUS)
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\"$(FileName)".old"
Debug-Output "Delfile Status = "$(STATUS)
endif
Debug-Output "Renaming from "$($)
Debug-Output "Renaming to "$(!STF_WINDOWSSYSPATH)"\"$(FileName)".old"
LibraryProcedure Status1 , $(!LIBHANDLE), RenFile $($), $(!STF_WINDOWSSYSPATH)"\"$(FileName)".old"
; Add the files to the delete list so that they get deleted at next boot
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\"$(FileName)".old"
EndForListDo
exit
[InstallRasFiles]
set STF_VITAL = NO
; don't do this this is trouble 1/31
; set STF_OVERWRITE = "OLDER" ; don't overwrite files that are more recent
; set STF_DATE = "1997-01-29"
Debug-Output "In InstallRasFiles Copying Files"
Debug-Output "ServerInstalled "$(ServerInstalled)
Debug-Output "ClientInstalled "$(ClientInstalled)
AddSectionFilesToCopyList Files-Ras-Admin $(SourceDir) +
$(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Ras-Client $(SourceDir) +
$(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Ras-Server $(SourceDir) +
$(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Router $(SourceDir) +
$(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Ras-Common $(SourceDir) +
$(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Ras-Drivers $(SourceDir) +
$(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-Router-Drivers $(SourceDir) +
$(!STF_WINDOWSSYSPATH)\drivers
; check if proxy is installed and add this section only if
; proxy is not installed because we would like to not overwrite
; the proxy version of the filter driver - 5/11/97 - ramc
ifstr(i) $(!PROXY_INSTALLED) == FALSE
AddSectionFilesToCopyList Files-Router-Filter-Driver $(SourceDir) +
$(!STF_WINDOWSSYSPATH)\drivers
endif
InstallRasFiles1 = +
; force file copy during update mode
ifstr(i) $(!NTN_InstallMode) == "Update"
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
else
ifstr(i) $(DoCopy) == "YES"
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
endif
endif
Debug-Output "Done Copying Files"
exit
[RemoveRasFiles]
; we should actually use RemoveSectionFiles, but setup hasn't implemented
; it yet, so we remove file by file.
; Do not remove files if this is the install mode and the CopyFlag
; is set to NO because we didn't copy any files in the first place!!
ifstr(i) $(!NTN_InstallMode) == install
ifstr(i) $(DoCopy) == "NO"
Exit
endif
endif
set RemoveList = {}
set RenameList = {}
set fCommonRemoved = FALSE
ifstr(i) $(DoServer) == TRUE
set fCommonRemoved = TRUE
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASGTWYDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASGPRXYDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASSPRXYEXE, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASSRVEXE, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASCTRSDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASCTRSINI, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASCTRNMH, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASSAUTHDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASADMINDLL, 1))
; below are the files common to server and client
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASMANDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASMANEXE, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASSERDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASIPXCPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASPPPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASPPPENDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASPAPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASCHAPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASSPAPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASIPCPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASIPHLPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASNBFCPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASCCPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASCBCPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASNBIPCDLL, 1))
; set RenameList = >($(RenameList), #(Files-RemoveList, ASYNCMACSYS, 1))
; set RenameList = >($(RenameList), #(Files-RemoveList, NDISWANSYS, 1))
; set RenameList = >($(RenameList), #(Files-RemoveList, RASARPSYS, 1))
endif
ifstr(i) $(DoClient) == TRUE
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASDIALEXE, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASPHONEHLP, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASCAUTHDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASAPI32DLL, 1))
ifstr(i) $(fCommonRemoved) == FALSE
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASMANDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASMANEXE, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASSERDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASIPXCPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASPPPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASPPPENDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASPAPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASCHAPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASSPAPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASIPCPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASIPHLPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASNBFCPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASCCPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASCBCPDLL, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASNBIPCDLL, 1))
; set RenameList = >($(RenameList), #(Files-RemoveList, ASYNCMACSYS, 1))
; set RenameList = >($(RenameList), #(Files-RemoveList, NDISWANSYS, 1))
; set RenameList = >($(RenameList), #(Files-RemoveList, RASARPSYS, 1))
endif
endif
ifstr(i) $(DoAdmin) == TRUE
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASADMINHLP, 1))
set RemoveList = >($(RemoveList), #(Files-RemoveList, RASGLOSSHLP, 1))
endif
ForListDo $(RemoveList)
Debug-Output "Removing "$($)
LibraryProcedure Status , $(!LIBHANDLE), DelFile $($)
Debug-Output "Status is "$(Status)
EndForListDo
; delete the router.pbk file from system32\ras directory
LibraryProcedure Status , $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\RAS\router.pbk"
ForListDo $(RenameList)
Split-String $($) "\" FilePath
QueryListSize PathLen $(FilePath)
Split-String *($(FilePath),$(PathLen)) "." FullFileName
Set FileName = *($(FullFileName),1)
Debug-Output "FileName is "$(FileName)
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\DRIVERS\"$(FileName)".old"
Debug-Output "CheckFile Status = "$(STATUS)
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\DRIVERS\"$(FileName)".old"
Debug-Output "Delfile Status = "$(STATUS)
endif
Debug-Output "Renaming from "$($)
Debug-Output "Renaming to "$(!STF_WINDOWSSYSPATH)"\DRIVERS\"$(FileName)".old"
LibraryProcedure Status1 , $(!LIBHANDLE), RenFile $($), $(!STF_WINDOWSSYSPATH)"\DRIVERS\"$(FileName)".old"
; Add the files to the delete list so that they get deleted at next boot
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\DRIVERS\"$(FileName)".old"
EndForListDo
exit
[RestoreSavedFiles]
; Now it is time to restore the files saved away in the
; system32\~~RB$$~~ directory to their respective locations
set BackupDir = $(!STF_WINDOWSSYSPATH)"\~~RB$$~~"
set DriversDir = $(!STF_WINDOWSSYSPATH)"\drivers"
set Sys32Dir = $(!STF_WINDOWSSYSPATH)
set Files_System32 = { "SNMP.EXE", "SNMPAPI.DLL", "INETMIB1.DLL", +
"OEMNSVRA.INF", "OEMNXPPP.INF" }
set Files_Drivers = { "NWLNKIPX.SYS", "NWLNKNB.SYS", "NWLNKSPX.SYS", +
"NWLNKRIP.SYS", "NDIS.SYS", "TCPIP.SYS", +
"RASARP.SYS", "RASPPTPF.SYS" }
forlistdo $(Files_System32)
set STATUS = NO
; First check to see if the file exists in backup directory
LibraryProcedure STATUS, $(!LIBHANDLE), CheckFileExistance $(BackupDir)"\"$($)
ifstr(i) $(STATUS) == YES
; First check to see if the file exists in system32 directory
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(Sys32Dir)"\"$($)
ifstr(i) $(STATUS) == YES
; first delete the old backup file
LibraryProcedure Status , $(!LIBHANDLE), DelFile $(Sys32Dir)"\"$($)".OLD"
; if it does, rename to .OLD extension
Debug-Output "File "$($)"is being renamed to "$($)".OLD"
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(Sys32Dir)"\"$($) +
$(Sys32Dir)"\"$($)".OLD"
; Add the file to the delete list so that it gets deleted at next boot
AddFileToDeleteList $(Sys32Dir)"\"$($)".OLD"
endif
; Now copy the file from the backup directory to system32 directory
LibraryProcedure STATUS, $(!NCPA_HANDLE), CopySingleFile $(!STF_HWND) +
$(BackupDir)"\"$($) $(Sys32Dir)"\"$($)
; now delete the backup file
LibraryProcedure Status , $(!LIBHANDLE), DelFile $(BackupDir)"\"$($)
Debug-Output "File "$(BackupDir)"\"$($)" delete Status = "$(STATUS)
endif
endforlistdo
forlistdo $(Files_Drivers)
set STATUS = NO
; First check to see if the file exists in backup directory
LibraryProcedure STATUS, $(!LIBHANDLE), CheckFileExistance $(BackupDir)"\"$($)
ifstr(i) $(STATUS) == YES
; First check to see if the file exists in system32\drivers directory
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(DriversDir)"\"$($)
ifstr(i) $(STATUS) == YES
; first delete the old backup file
LibraryProcedure Status , $(!LIBHANDLE), DelFile $(DriversDir)"\"$($)".OLD"
; if it does, rename to .OLD extension
Debug-Output "File "$($)"is being renamed to "$($)".OLD"
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(DriversDir)"\"$($) +
$(DriversDir)"\"$($)".OLD"
; Add the file to the delete list so that it gets deleted at next boot
AddFileToDeleteList $(DriversDir)"\"$($)".OLD"
endif
; Now copy the file from the backup directory to system32\drivers directory
LibraryProcedure STATUS, $(!NCPA_HANDLE), CopySingleFile $(!STF_HWND) +
$(BackupDir)"\"$($) $(DriversDir)"\"$($)
; now delete the backup file
LibraryProcedure Status , $(!LIBHANDLE), DelFile $(BackupDir)"\"$($)
Debug-Output "File "$(BackupDir)"\"$($)" delete Status = "$(STATUS)
else
; check to see if the file was saved away in the drivers directory
LibraryProcedure STATUS, $(!LIBHANDLE), CheckFileExistance $(DriversDir)"\"$($)".SAV"
ifstr(i) $(STATUS) == YES
; First check to see if the file exists in system32\drivers directory
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(DriversDir)"\"$($)
ifstr(i) $(STATUS) == YES
; first delete the old backup file
LibraryProcedure Status , $(!LIBHANDLE), DelFile $(DriversDir)"\"$($)".OLD"
; if it does, rename to .OLD extension
Debug-Output "File "$($)"is being renamed to "$($)".OLD"
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(DriversDir)"\"$($) +
$(DriversDir)"\"$($)".OLD"
; Add the file to the delete list so that it gets deleted at next boot
AddFileToDeleteList $(DriversDir)"\"$($)".OLD"
endif
; Now copy the file from the backup directory to system32\drivers directory
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile +
$(DriversDir)"\"$($)".SAV" $(DriversDir)"\"$($)
endif
endif
endforlistdo
exit
[CreateRtrAdminIcon]
; Create an icon for RTRADMIN in the Administrative Tools (Common) program group
; This will be removed when Routing service is removed.
; also remove the RasAdmin icon previously created - this is a legacy tool now
RemoveCommonProgManItem $(AdminGroup) $(RasAdmin)
CreateCommonProgManItem $(AdminGroup), $(RtrAdmin) "%SystemRoot%\system32\mpradmin.exe" "" 0
exit
;[CreateRasGroup]
; 3/22/96 Remote Access Program Group is not created any more
; instead the Remote Access Admin icon will appear in Administrative Tools folder
; and Dial-Up Networking icon (previously Remote Access) will appear in Accessories
; and My Computer folder. The help icons will be absorbed in the main NT help.
; the old Remote Access Monitor icon appears in the Control Panel as Dial-Up Monitor.
;
; ; Create and show the RemoteAccess group
;
; CreateCommonProgManGroup $(RasGroup) ""
;
; ShowCommonProgManGroup $(RasGroup), 1
;
; CreateCommonProgManItem $(RasGroup), $(RasPhone) +
; "rasphone.exe" "" 0
; CreateCommonProgManItem $(RasGroup), $(RasMon) +
; "rasmon.exe" "" 0
; CreateCommonProgManItem $(RasGroup), $(RasAdmin) +
; "rasadmin.exe" "" 0
;
;
; ; note that we index into the progman.exe icons for our readme
; ; icon.
;
; CreateCommonProgManItem $(RasGroup), $(ReadMe) +
; "NOTEPAD.EXE "+
; "%SystemRoot%\system32\RAS\RASREAD.TXT" +
; "PROGMAN.EXE" 29
;
; CreateCommonProgManItem $(RasGroup), $(RasHelp) +
; "WINHLP32.EXE "+
; "RASPHONE.HLP" +
; "WINHLP32.EXE" 0
;
; CreateCommonProgManItem $(RasGroup), $(RasInternet) +
; "WINHLP32.EXE -k internet RASPHONE.HLP "+
; "" +
; "%SystemRoot%\system32\RAS\RAS.ICO" 0
;
; ; minimize the RemoteAccess group
;
; ShowCommonProgManGroup $(RasGroup), 6
;
; exit
[RemoveRasGroup]
Debug-Output "Removing icons from "$(RasGroup)
; The reason we create the group before we attempt to remove it is
; to make sure that we don't get an error on removal if the group
; has been deleted by the user.
RemoveCommonProgManItem $(AdminGroup) $(RtrAdmin)
CreateCommonProgManGroup $(RasGroup) ""
RemoveCommonProgManGroup $(RasGroup)
exit
[AddNDISWANToServiceGroupOrder]
; Add NDISWAN to the ServiceGroupOrder list between NDIS and TDI so
; that the NdisWan driver loads after the NDIS group components like
; AsyMac driver or the TAPI providers have loaded.
set GroupOrderName = "SYSTEM\CurrentControlSet\Control\ServiceGroupOrder"
OpenRegKey $(!REG_H_LOCAL) "" $(GroupOrderName) $(!MAXIMUM_ALLOWED) KeyGroup
set OldList = {}
Ifstr(i) $(KeyGroup) != $(KeyNull)
GetRegValue $(KeyGroup) "List" TmpList
ifint $(RegLastError) == 0
ForListDo *($(TmpList), 4)
set OldList = >($(OldList), $($))
EndForListDo
endif
Debug-Output "AddNDISWANToServiceGroupOrder current list "$(OldList)
Ifcontains(i) "NDISWAN" not-in $(OldList)
set NewGroupList = {}
ForListDo $(OldList)
set NewGroupList = >($(NewGroupList), $($))
ifstr(i) $($) == "NDIS"
; add NDISWAN just after NDIS in the group order
set NewGroupList = >($(NewGroupList), "NDISWAN" )
endif
EndForListDo
Debug-Output "AddNDISWANToServiceGroupOrder new list "$(NewGroupList)
SetRegValue $(KeyGroup) {List, 0,$(!REG_VT_MULTI_SZ),$(NewGroupList)}
endif
CloseRegKey $(KeyGroup)
else
Debug-Output "AddNDISWANToServiceGroupOrder error opening ServiceGroupOrder key."
endif
return
[CheckRasInstalled]
; this routine is for external INF files to determine if RAS is installed
; we check to see if SYSTEM\CurrentControlSet\Services\RasMan key exists.
; if it does the return value is TRUE to indicate that RAS is installed
; else the return value is FALSE to indicate that RAS is not installed.
set MAXIMUM_ALLOWED = 33554432
set ProductKeyName = $(!NTN_ServiceBase)"\RasMan"
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != ""
CloseRegKey $(KeyProduct)
return "TRUE"
else
return "FALSE"
endif
[CheckProxyInstalled]
set MAXIMUM_ALLOWED = 33554432
set ProductKeyName = $(!NTN_ServiceBase)"\mspadmin"
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != ""
CloseRegKey $(KeyProduct)
set !PROXY_INSTALLED = TRUE
return "TRUE"
else
set !PROXY_INSTALLED = FALSE
return "FALSE"
endif
[QueryComponentsInstalled]
Set Status = STATUS_FAILED
Set ValueName = ""
Set InstalledList = {}
Set InstalledFlags = {}
Set TmpList = {}
Set KeyNull = ""
Set NumberOfComps = 0
Set RasKeyName = $($0)
Debug-Output "QueryComponentsInstalled: "$(RasKeyName)
OpenRegKey $(!REG_H_LOCAL) "" $(RasKeyName) $(!MAXIMUM_ALLOWED) KeyProduct
Ifstr(i) $(KeyProduct) != $(KeyNull)
GetRegValue $(KeyProduct) "RasComponents" TmpList
Debug-Output "QueryComponentsInstalled: "$(TmpList)
ForListDo *($(TmpList),4)
set InstalledList = >($(InstalledList), $($))
EndForListDo
CloseRegKey $(KeyProduct)
Ifcontains(i) "Server" in $(InstalledList)
Set InstalledFlags = >($(InstalledFlags), TRUE)
else
Set InstalledFlags = >($(InstalledFlags), FALSE)
endif
Ifcontains(i) "Client" in $(InstalledList)
Set InstalledFlags = >($(InstalledFlags), TRUE)
else
Set InstalledFlags = >($(InstalledFlags), FALSE)
endif
Ifcontains(i) "Admin" in $(InstalledList)
Set InstalledFlags = >($(InstalledFlags), TRUE)
else
Set InstalledFlags = >($(InstalledFlags), FALSE)
endif
QueryListSize NumberOfComps $(InstalledList)
ifint $(NumberOfComps) == 1
Ifcontains(i) "Server" in $(InstalledList)
Set InstalledFlags = >($(InstalledFlags), TRUE)
else
Set InstalledFlags = >($(InstalledFlags), FALSE)
endif
Ifcontains(i) "Client" in $(InstalledList)
Set InstalledFlags = >($(InstalledFlags), TRUE)
else
Set InstalledFlags = >($(InstalledFlags), FALSE)
endif
Ifcontains(i) "Admin" in $(InstalledList)
Set InstalledFlags = >($(InstalledFlags), TRUE)
else
Set InstalledFlags = >($(InstalledFlags), FALSE)
endif
else
Set InstalledFlags = >($(InstalledFlags), FALSE)
Set InstalledFlags = >($(InstalledFlags), FALSE)
Set InstalledFlags = >($(InstalledFlags), FALSE)
endif
Set Status = STATUS_SUCCESSFUL
Else
Set Status = STATUS_NOT_FOUND
EndIf
Debug-Output "QueryComponentsInstalled: "$(InstalledList)
Return $(Status) $(InstalledList) $(InstalledFlags)
[UpdateComponentsInstalled]
Set Status = STATUS_FAILED
Set InstalledList = $($0)
Set RasKeyName = $($1)
Set KeyNull = ""
Debug-Output "UpdateComponentsInstalled: "$(RasKeyName)
OpenRegKey $(!REG_H_LOCAL) "" $(RasKeyName) $(!MAXIMUM_ALLOWED) KeyProduct
Ifstr(i) $(KeyProduct) != $(KeyNull)
SetRegValue $(KeyProduct) {RasComponents, 0,$(!REG_VT_MULTI_SZ),$(InstalledList)}
CloseRegKey $(KeyProduct)
Set Status = STATUS_SUCCESSFUL
else
Set Status = STATUS_FAILED
endif
return $(Status)
[GetNetworkAccess]
; Returns the remote clients' network access on each of NBF, TCP/IP and IPX
set Status = STATUS_SUCCESSFUL
Set KeyNull = ""
set NbfNetAccess = 0
set TcpIpNetAccess = 0
set IpxNetAccess = 0
set RasProtocolsKeyName = $(!NTN_SoftwareBase)"\Microsoft\RAS\PROTOCOLS"
Debug-Output "GetNetworkAccess entry"
set ProtocolKeyName = $(RasProtocolsKeyName)"\NBF"
OpenRegKey $(!REG_H_LOCAL) "" $(ProtocolKeyName) $(!MAXIMUM_ALLOWED) KeyProtocol
Ifstr(i) $(KeyProtocol) != $(KeyNull)
GetRegValue $(KeyProtocol), "NetBiosGatewayEnabled" NetworkAccess
ifint $(RegLastError) == 0
set NbfNetAccess = *($(NetworkAccess), 4)
endif
CloseRegKey $(KeyProtocol)
else
Debug-Output "GetNetworkAccess:error opening key "$(ProtocolKeyName)
endif
set ProtocolKeyName = $(RasProtocolsKeyName)"\IP"
OpenRegKey $(!REG_H_LOCAL) "" $(ProtocolKeyName) $(!MAXIMUM_ALLOWED) KeyProtocol
Ifstr(i) $(KeyProtocol) != $(KeyNull)
GetRegValue $(KeyProtocol), "AllowNetworkAccess" NetworkAccess
ifint $(RegLastError) == 0
set TcpIpNetAccess = *($(NetworkAccess), 4)
endif
CloseRegKey $(KeyProtocol)
else
Debug-Output "GetNetworkAccess:error opening key "$(ProtocolKeyName)
endif
set ProtocolKeyName = $(RasProtocolsKeyName)"\IPX"
OpenRegKey $(!REG_H_LOCAL) "" $(ProtocolKeyName) $(!MAXIMUM_ALLOWED) KeyProtocol
Ifstr(i) $(KeyProtocol) != $(KeyNull)
GetRegValue $(KeyProtocol), "AllowNetworkAccess" NetworkAccess
ifint $(RegLastError) == 0
set IpxNetAccess = *($(NetworkAccess), 4)
endif
CloseRegKey $(KeyProtocol)
else
Debug-Output "GetNetworkAccess:error opening key "$(ProtocolKeyName)
endif
Debug-Output "GetNetworkAccess exit"
return $(Status) $(NbfNetAccess) $(TcpIpNetAccess) $(IpxNetAccess)
[IsNdisWanBHAdapterInstalled]
; Checks to see if NdisWan adapter for Blood Hound is already installed
set Status = STATUS_FAILED
Set KeyNull = ""
Debug-Output "IsNdisWanBHAdapterInstalled entry"
set NetworkCardKey = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(!NetworkCardKeyName) $(!MAXIMUM_ALLOWED) NetworkCardKey
Ifstr(i) $(NetworkCardKey) != $(KeyNull)
set NetcardsList = {}
EnumRegKey $(NetworkCardKey) NetcardsList
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "IsNdisWanBHAdapterInstalled: EnumRegKey failed."
goto IsNdisWanBHAdapterInstalledEnd
endif
; go down the list of installed netcards and determine if
; NdisWan Blood hound adapter is installed
ForListDo $(NetcardsList)
set KeyName = *($($),1)
set Card = $(KeyNull)
OpenRegKey $(NetworkCardKey) "" $(KeyName) $(!MAXIMUM_ALLOWED) Card
ifstr $(Card) == $(KeyNull)
Debug-Output "IsNdisWanBHAdapterInstalled: could not open netcard key "$(KeyName)
else
GetRegValue $(Card), "ProductName" ProductNameInfo
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "IsNdisWanBHAdapterInstalled: ProductName not found."
else
set CardProductName = *($(ProductNameInfo), 4)
Debug-Output "IsNdisWanBHAdapterInstalled: ProductName. "$(CardProductName)
ifstr(i) $(CardProductName) == $(!ProductNDISWANName)
set Status = STATUS_SUCCESSFUL
CloseRegKey $(Card)
goto IsNdisWanBHAdapterInstalledEnd
endif
endif
CloseRegKey $(Card)
endif
EndForListDo
else
Debug-Output "IsNdisWanBHAdapterInstalled: failed to open "$(!NetworkCardKeyName)
endif
IsNdisWanBHAdapterInstalledEnd =+
ifstr(i) $(NetworkCardKey) != $(KeyNull)
CloseRegKey $(NetworkCardKey)
endif
Debug-Output "IsNdisWanBHAdapterInstalled exit"
Return $(Status)
[InstallNdisWanBHAdapter]
; creates the NdisWan adapter so that Blood Hound can bind to it for sniffing
set Status = STATUS_FAILED
set ThisOption = NDISWAN
Debug-Output "InstallNdisWanBHAdapter entry"
Shell "utility.inf", AddHardwareComponent, +
$(!Product$(ThisOption)Name),$(!RasInfName),+
$(!Product$(ThisOption)KeyName)
ifint $($R4) != -1
Set !NETCARD_LIST = >($(!NETCARD_LIST), +
{$(!Product$(ThisOption)Name),+
$(!NetworkCardKeyName)"\"$($R4)})
endif
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "InstallNdisWanBHAdapter:Shell error"
goto InstallNdisWanBHAdapterEnd
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "InstallNdisWanBHAdapter:Registry error: add hardware component"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
goto InstallNdisWanBHAdapterEnd
endif
; At this point:
; $R1 Registry key variable for HARDWARE\Netcard\(n)
; $R2 Registry key variable for HARDWARE\Netcard\(n)\\NetRules
; $R3 Registry key handle for <service>\Parameters key
; $R4 Adapter number assigned to adapter
; $R5 Service name generated by combining svc name with adapter
; number
set KeyNetcard = $($R1)
set KeyParameters = $($R3)
set KeyAdapterRules = $($R2)
set AdapterNumber = $($R4)
set NewValueList = +
{{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(!Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),+
"["$($R4)"] "$(!Product$(ThisOption)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)Description)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),+
$(!Product$(ThisOption)Name)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(!CurrentDate),1)},+
{Hidden,$(NoTitle),$(!REG_VT_DWORD),1}}
Shell "utility.inf", AddValueList, $(KeyNetcard), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "InstallNdisWanBHAdapter: ShellCode error"
goto InstallNdisWanBHAdapterEnd
endif
CloseRegKey $(KeyNetcard)
set TempProdName = """"$(!Product$(ThisOption)Name)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(!NetRuleHardwareBHBindForm)
set NewValueList = +
{{type,$(NoTitle),$(!REG_VT_SZ),+
$(!NetRuleHardwareBHType)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),+
$(!NetRuleHardwareBHClass)}, +
;Modified on 9/24/96 by Ramc - changed ThisOption to ROUTING
; {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ), "RAS"}, +
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(!RasInfName)}}
Shell "utility.inf", AddValueList, $(KeyAdapterRules), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "InstallNdisWanBHAdapter: ShellCode error"
goto InstallNdisWanBHAdapterEnd
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "InstallNdisWanBHAdapter:Registry error: add hardware component"
CloseRegKey $(KeyParameters)
CloseRegKey $(KeyAdapterRules)
goto InstallNdisWanBHAdapterEnd
endif
CloseRegKey $(KeyAdapterRules)
CloseRegKey $(KeyParameters)
set Status = STATUS_SUCCESSFUL
InstallNdisWanBHAdapterEnd =+
Debug-Output "InstallNdisWanBHAdapter exit"
return $(Status)
[InstallService]
; intall the service if it is not already installed
set ServiceName = $($0)
set DisplayName = $($1)
set ImagePath = $($2)
set StartType = $($3)
set GroupName = $($4)
set Dependencies = $($5)
set RegKeyName = $(!NTN_ServiceBase)"\"$(ServiceName)
set Status = STATUS_SUCCESSFUL
set KeyNull = ""
Debug-Output "Install"$(ServiceName)" entry"
OpenRegKey $(!REG_H_LOCAL) "" $(RegKeyName) $(!MAXIMUM_ALLOWED) KeyService
Ifstr(i) $(KeyService) == $(KeyNull)
Shell "utility.inf", CreateService, $(ServiceName), $(DisplayName), $(ImagePath), +
$(StartType), $(GroupName), $(Dependencies), ""
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF: Install"$(ServiceName)": ShellCode error"
return STATUS_FAILED
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
Ifstr(i) $(RegistryErrorIndex) == SERVICE_ALREADY_EXISTS
return $(Status)
EndIf
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "OEMNSVRA.INF: Install"$(ServiceName)": Registry error create service"
return STATUS_FAILED
endif
endif
Ifstr(i) $(KeyService) != $(KeyNull)
CloseRegKey $(KeyService)
endif
Debug-Output "Install"$(ServiceName)" exit"
return $(Status)
[RemoveService]
; remove service if it is installed
set ServiceName = $($0)
set RegKeyName = $(!NTN_ServiceBase)"\"$(ServiceName)
set Status = STATUS_SUCCESSFUL
set KeyNull = ""
Debug-Output "Remove"$(ServiceName)" entry"
OpenRegKey $(!REG_H_LOCAL) "" $(RegKeyName) $(!MAXIMUM_ALLOWED) KeyService
Ifstr(i) $(KeyService) != $(KeyNull)
; remove the service using RemoveService
Shell "utility.inf", RemoveService $(ServiceName) "YES"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF: Remove"$(ServiceName)": ShellCode error"
return STATUS_FAILED
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "OEMNSVRA.INF: Remove"$(ServiceName)": Registry error: "
return STATUS_FAILED
endif
CloseRegKey $(KeyService)
endif
Debug-Output "Remove"$(ServiceName)" exit"
return $(Status)
[InstallRasRad]
Debug-Output "InstallRasRad entry...."
set Status = STATUS_FAILED
set Status = $($R0)
; now add the perf parameters to the service
set KeyPerformance = ""
set KeyRasRad = ""
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\RasRad" $(!MAXIMUM_ALLOWED) KeyRasRad
ifstr $(KeyRasRad) == ""
CreateRegKey $(!REG_H_LOCAL) {$(!NTN_ServiceBase)"\RasRad", 0, GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyRasRad
ifstr $(KeyRasRad) == ""
Debug-Output "InstallRasRad: can not create registry key"
goto InstallRasRadEnd
endif
OpenRegKey $(KeyRasRad) "" "Performance" $(!MAXIMUM_ALLOWED) KeyPerformance
ifstr $(KeyPerformance) == ""
CreateRegKey $(KeyRasRad) {"Performance", 0, GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyPerformance
ifstr $(KeyPerformance) == ""
Debug-Output "Error creating Performance key"
goto InstallRasRadEnd
endif
endif
set NewValueList = +
{{Library ,0,$(!REG_VT_SZ),"rasrad.dll"},+
{Open, 0,$(!REG_VT_SZ),"Open"},+
{Close, 0,$(!REG_VT_SZ),"Close"},+
{Collect, 0,$(!REG_VT_SZ),"Collect"}}
Shell "Utility.Inf", AddValueList, $(KeyPerformance), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "InstallRasRadService: error shelling AddValueList"
goto InstallRasRadEnd
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
Debug-Output "InstallRasRadService: AddValueList bombed out"
goto InstallRasRadEnd
endif
CloseRegKey $(KeyPerformance)
set Status = STATUS_SUCCESSFUL
CloseRegKey $(KeyRasRad)
else
Debug-Output "InstallRasRadService: Failed to open RasRad service key"
endif
InstallRasRadEnd =+
Debug-Output "InstallRasRad exit"
; now create the perf keys
return $(Status)
[RemoveRasRad]
set Status = STATUS_SUCCESSFUL
DeleteRegTree $(!NTN_ServiceBase) "RasRad"
return $(Status)
[InstallRasArpService]
shell "" InstallService $(!ProductRASARPName) $(!ProductRASARPDisplayName), +
$(!ProductRASARPImagePath), "kernelautostart", "PNP_TDI", {"TCPIP"}
return $($R0)
[RemoveRasArpService]
shell "" RemoveService $(!ProductRASARPName)
return $($R0)
[InstallWanArpService]
shell "" InstallService $(!ProductWANARPName) $(!ProductWANARPDisplayName), +
$(!ProductWANARPImagePath), "kernel", "PNP_TDI", {"TCPIP"}
return $($R0)
[RemoveWanArpService]
shell "" RemoveService $(!ProductWANARPName)
return $($R0)
[InstallIPFilterDriver]
shell "" InstallService $(!ProductIPFLTName) $(!ProductIPFLTDisplayName), +
$(!ProductIPFLTImagePath), "kernel", "", {}
return $($R0)
[RemoveIPFilterDriver]
shell "" RemoveService $(!ProductIPFLTName)
return $($R0)
[InstallIpxPingService]
shell "" InstallService $(!ProductIPXPINGName) $(!ProductIPXPINGDisplayName), +
$(!ProductIPXPINGImagePath), "serviceshare", "", {"NWLNKIPX"}
return $($R0)
[RemoveIpxPingService]
shell "" RemoveService $(!ProductIPXPINGName)
return $($R0)
[InstallNwLnkFwdService]
shell "" InstallService $(!ProductNWLNKFWDName) $(!ProductNWLNKFWDDisplayName), +
$(!ProductNWLNKFWDImagePath), "kernel", "", {"NWLNKIPX"}
return $($R0)
[RemoveNwLnkFwdService]
shell "" RemoveService $(!ProductNWLNKFWDName)
return $($R0)
[InstallNwLnkFltService]
shell "" InstallService $(!ProductNWLNKFLTName) $(!ProductNWLNKFLTDisplayName), +
$(!ProductNWLNKFLTImagePath), "kernel", "", {$(!ProductNWLNKFWDName)}
return $($R0)
[RemoveIpRipService]
shell "" RemoveService "IPRIP"
return $($R0)
[RemoveRelayAgentService]
shell "" RemoveService "RELAYAGENT"
return $($R0)
[RemoveNwLnkFltService]
shell "" RemoveService $(!ProductNWLNKFLTName)
return $($R0)
[InstallRtrMgr]
; create the RouterManager keys and set the values passed in
set RtrMgr = $($0) ; name of rtrmgr key
set RtrDll = $($1) ; dll path
set RtrId = $($2) ; protocol id
Debug-Output "InstallRtrMgr for "$(RtrMgr)" entry"
CreateRegKey $(!REG_H_LOCAL) {$(!RouterKeyName)"\RouterManagers", 0, GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyRtrMgrs
Ifstr $(KeyRtrMgrs) == ""
OpenRegKey $(!REG_H_LOCAL) "" $(!RouterKeyName)"\RouterManagers" $(!MAXIMUM_ALLOWED) KeyRtrMgrs
Ifstr $(KeyRtrMgrs) == ""
Debug-Output "InstallRtrMgr: error opening RouterManagers key"
set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
return $(RegistryErrorIndex)
endif
endif
CreateRegKey $(KeyRtrMgrs) {$(RtrMgr), 0, GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyRtrMgr
Ifstr $(KeyRtrMgr) == ""
OpenRegKey $(KeyRtrMgrs) "" $(RtrMgr) $(!MAXIMUM_ALLOWED) KeyRtrMgr
Ifstr $(KeyRtrMgr) == ""
Debug-Output "InstallRtrMgr: error creating RouterManagers\"$RtrMgr)" key"
set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
return $(RegistryErrorIndex)
endif
endif
SetRegValue $(KeyRtrMgr) {"DLLPath", 0, $(!REG_VT_EXPAND_SZ), $(RtrDll)}
SetRegValue $(KeyRtrMgr) {"ProtocolID", 0, $(!REG_VT_DWORD), $(RtrId)}
CloseRegKey $(KeyRtrMgr)
CloseRegKey $(KeyRtrMgrs)
Debug-Output "InstallRtrMgr for "$(RtrMgr)" exit"
return STATUS_SUCCESSFUL
[InstallIPRtrMgr]
shell "" InstallRtrMgr "IP" "%systemroot%\system32\iprtrmgr.dll" $(!P:PROTO_IP)
return $($R0)
[InstallIPXRtrMgr]
shell "" InstallRtrMgr "IPX" "%systemroot%\system32\ipxrtmgr.dll" $(!P:PROTO_IPX)
return $($R0)
[RemoveRtrMgr]
; Remove the RouterManager keys for the specified router manager
set RtrMgr = $($0) ; name of rtrmgr key
Debug-Output "RemoveRtrMgr for "$(RtrMgr)" entry"
OpenRegKey $(!REG_H_LOCAL) "" $(!RouterKeyName)"\RouterManagers" $(!MAXIMUM_ALLOWED) KeyRtrMgrs
Ifstr $(KeyRtrMgrs) == ""
Debug-Output "RemoveRtrMgr: error opening RouterManagers key"
set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
return $(RegistryErrorIndex)
endif
DeleteRegTree $(KeyRtrMgrs) $(RtrMgr)
CloseRegKey $(KeyRtrMgrs)
Debug-Output "RemoveRtrMgr for "$(RtrMgr)" exit"
return STATUS_SUCCESSFUL
[RemoveIPRtrMgr]
shell "" RemoveRtrMgr "IP"
return $($R0)
[RemoveIPXRtrMgr]
shell "" RemoveRtrMgr "IPX"
return $($R0)
[InstallEventlogDlls]
; install the eventlog dlls in the registry for the specified services in the DllList
set DllList = $($0)
Debug-Output "InstallEventlogDlls entry"
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\EventLog\System" $(!MAXIMUM_ALLOWED) KeyEventLog
Ifstr $(KeyEventLog) == ""
; cannot open eventlog
debug-output "OEMNSVRA.INF: InstallEventlogDlls Cannot open eventlog key"
return UNABLE_OPEN_EVENTLOG_SUBKEY
else
; set up the service key
ForListDo $(DllList)
set Component = *($($), 1)
set DllName = "%SystemRoot%\system32\"*($($), 2)
set TypeSupported = *($($), 3)
CreateRegKey $(KeyEventLog) {$(Component), 0,GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyService
ifstr(i) $(KeyService) == ""
OpenRegKey $(KeyEventLog) "" $(Component) $(!MAXIMUM_ALLOWED) KeyService
endif
Ifstr $(KeyService) != ""
; create the EventMessageFile and TypeSupported fields
SetRegValue $(KeyService) {EventMessageFile, 0,$(!REG_VT_EXPAND_SZ),$(DllName)}
SetRegValue $(KeyService) {TypesSupported, 0,$(!REG_VT_DWORD), $(TypeSupported)}
CloseRegKey $(KeyService)
else
Debug-Output "InstallEventlogDlls: error creating or opening eventlog\system\"$(Component)" key"
endif
EndForListDo
CloseRegKey $(KeyEventLog)
Endif
Debug-Output "InstallEventlogDlls exit"
return STATUS_SUCCESSFUL
[InstallIPEventlogDlls]
set DllList = {{"IPRouterManager", "mprmsg.dll", 7},+
{"IPRIP2", "iprip2.dll", 7},+
{"IPBOOTP", "ipbootp.dll", 7},+
{"OSPFMib", "ospfmib.dll", 7},+
{"OSPF", "ospf.dll", 7}}
shell "" InstallEventlogDlls $(DllList)
return $($R0)
[InstallIPXEventlogDlls]
set DllList = {{"IPXRouterManager", "mprmsg.dll", 7},+
{"IPXRIP", "mprmsg.dll", 7},+
{"IPXSAP", "mprmsg.dll", 7}}
shell "" InstallEventlogDlls $(DllList)
return $($R0)
[RemoveEventlogDlls]
; remove the previously installed eventlog entries for the specified services in the DllList
set DllList = $($0)
Debug-Output "RemoveEventlogDlls entry"
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\EventLog\System" $(!MAXIMUM_ALLOWED) KeyEventLog
Ifstr $(KeyEventLog) == ""
; cannot open eventlog
debug-output "OEMNSVRA.INF: InstallEventlogDlls Cannot open eventlog key"
return UNABLE_OPEN_EVENTLOG_SUBKEY
else
; set up the service key
ForListDo $(DllList)
set Component = *($($), 1)
DeleteRegTree $(KeyEventLog) $(Component)
EndForListDo
CloseRegKey $(KeyEventLog)
Endif
Debug-Output "RemoveEventlogDlls exit"
return STATUS_SUCCESSFUL
[RemoveIPEventlogDlls]
set DllList = {{"IPRouterManager"}, {"IPRIP2"}, {"IPBOOTP"}, {"OSPFMib"}, {"OSPF"}}
shell "" InstallEventlogDlls $(DllList)
return $($R0)
[RemoveIPXEventlogDlls]
set DllList = {{"IPXRouterManager"}, {"IPXRIP"}, {"IPXSAP"}}
shell "" InstallEventlogDlls $(DllList)
return $($R0)
[InstallSnmpAgents]
set AgentList = $($0)
set ProductKeyBase = $(!NTN_SoftwareBase)"\Microsoft"
Debug-Output "InstallSnmpAgents entry"
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents" $(!MAXIMUM_ALLOWED) KeySnmp
Ifstr $(KeySnmp) == ""
; cannot open snmp extension agents key
debug-output "OEMNSVRA.INF: InstallSnmpAgents Cannot open ExtensionAgents key"
; BUGBUG we should return a different value for SNMP agent key
return UNABLE_OPEN_EVENTLOG_SUBKEY
else
; set up the service key
ForListDo $(AgentList)
set AgentName = *($($), 1)
set AgentKeyName = *($($), 2)
set DllName = "%SystemRoot%\System32\"*($($), 3)
SetRegValue $(KeySnmp) {$(AgentName), 0,$(!REG_VT_SZ), "SOFTWARE\MICROSOFT\"$(AgentKeyName)"\CurrentVersion"}
CreateRegKey $(!REG_H_LOCAL) {$(ProductKeyBase)"\"$(AgentKeyName), 0, GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyAgent
Ifstr $(KeyAgent) == ""
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyBase)"\"$(AgentKeyName) $(!MAXIMUM_ALLOWED) KeyAgent
Ifstr $(KeyAgent) == ""
Debug-Output "InstallSnmpAgents: error opening "$(AgentKeyName)" registry key"
set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
return $(RegistryErrorIndex)
endif
Endif
CreateRegKey $(KeyAgent) {"CurrentVersion", 0, GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyCurrentVer
Ifstr $(KeyCurrentVer) == ""
OpenRegKey $(KeyAgent) "" "CurrentVersion" $(!MAXIMUM_ALLOWED) KeyCurrentVer
Ifstr $(KeyCurrentVer) == ""
Debug-Output "InstallSnmpAgents: error opening "$(AgentKeyName)"\CurrentVersion registry key"
set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
return $(RegistryErrorIndex)
endif
EndIf
SetRegValue $(KeyCurrentVer) {"PathName", 0, $(!REG_VT_EXPAND_SZ), $(DllName)}
CloseRegKey $(KeyCurrentVer)
CloseRegKey $(KeyAgent)
EndForListDo
CloseRegKey $(KeySnmp)
Endif
Debug-Output "InstallSnmpAgents exit"
return STATUS_SUCCESSFUL
[InstallIPSnmpAgents]
set AgentList = { {"ospf", "OspfMibAgent", "ospfagnt.dll"},+
; note that we don't install the mib2 agent any more because we
; have renamed mib2.dll to inetmib1.dll which is already registered
; with snmp
; {"mib2", "NewMib2Agent", "inetmib1.dll"},+
{"rip2", "Rip2Agent", "ripagnt.dll"},+
{"bootp", "BootPAgent", "btpagnt.dll"} }
shell "" InstallSnmpAgents $(AgentList)
return $($R0)
[InstallIPXSnmpAgents]
set AgentList = { {"IPX", "IPXMibAgent", "rtipxmib.dll"} }
shell "" InstallSnmpAgents $(AgentList)
return $($R0)
[RemoveSnmpAgents]
set AgentList = $($0)
set ProductKeyBase = $(!NTN_SoftwareBase)"\MICROSOFT"
Debug-Output "RemoveSnmpAgents entry"
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents" $(!MAXIMUM_ALLOWED) KeySnmp
Ifstr $(KeySnmp) == ""
; cannot open snmp extension agents key
debug-output "OEMNSVRA.INF: RemoveSnmpAgents Cannot open ExtensionAgents key"
; BUGBUG we should return a different value for SNMP agent key
return UNABLE_OPEN_EVENTLOG_SUBKEY
else
; set up the service key
ForListDo $(AgentList)
set AgentName = *($($), 1)
set AgentKeyName = *($($), 2)
DeleteRegValue $(KeySnmp) $(AgentName)
DeleteRegTree $(!REG_H_LOCAL) $(ProductKeyBase)"\"$(AgentKeyName)
EndForListDo
CloseRegKey $(KeySnmp)
Endif
Debug-Output "RemoveSnmpAgents exit"
return STATUS_SUCCESSFUL
[RemoveIPSnmpAgents]
; Note that even though we don't install mib2 agent any more, we
; still remove it to clean up any leftover turds from a previous
; install where we used to add the mib2 agent
set AgentList = { {"ospf", "OspfMibAgent"},+
{"mib2", "NewMib2Agent"},+
{"rip2", "Rip2Agent"},+
{"bootp", "BootPAgent"} }
shell "" RemoveSnmpAgents $(AgentList)
return $($R0)
[RemoveIPXSnmpAgents]
set AgentList = { {"IPX", "IPXMibAgent"} }
shell "" RemoveSnmpAgents $(AgentList)
return $($R0)
[InstallRasAcdService]
; intall the Auto Connection Driver service if it is not already installed
; 3/11/96 RamC Changed the group from NDISWAN to "Streams Drivers" because
; the load order changed with the recent no-net checkins in NT
;
shell "" InstallService $(!ProductRASACDName) $(!ProductRASACDDisplayName), +
$(!ProductRASACDImagePath), "kernelautostart", "Streams Drivers", {}
return $($R0)
[RemoveRasAcdService]
shell "" RemoveService $(!ProductRASACDName)
return $($R0)
[InstallNdisTapiService]
; intall the NdisTapi service if it is not already installed
set Status = STATUS_SUCCESSFUL
set KeyNull = ""
Debug-Output "InstallNdisTapiService entry"
OpenRegKey $(!REG_H_LOCAL) "" $(!NdisTapiKeyName) $(!MAXIMUM_ALLOWED) KeyService
Ifstr(i) $(KeyService) == $(KeyNull)
Shell "utility.inf", CreateService, $(!ProductNDISTAPIName), +
$(!ProductNDISTAPIDisplayName), +
$(!ProductNDISTAPIImagePath), +
"kernelauto", "NDIS", {}, ""
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF: InstallNdisTapiService : ShellCode error"
return STATUS_FAILED
endif
set RegistryErrorIndex = $($R0)
set ParamKey = $($R2)
CloseRegKey $($R1)
CloseRegKey $($R3)
Ifstr(i) $(RegistryErrorIndex) == SERVICE_ALREADY_EXISTS
return $(Status)
EndIf
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "OEMNSVRA.INF: InstallNdisTapiService: Registry error create service"
return STATUS_FAILED
endif
ifstr(i) $(!STF_PRODUCT) != "WINNT"
SetRegValue $(ParamKey) {AsyncEventQueueSize, 0, $(!REG_VT_DWORD), 3072}
else
SetRegValue $(ParamKey) {AsyncEventQueueSize, 0, $(!REG_VT_DWORD), 768}
endif
CloseRegKey $(ParamKey)
endif
Ifstr(i) $(KeyService) != $(KeyNull)
CloseRegKey $(KeyService)
endif
Debug-Output "InstallNdisTapiService exit"
return $(Status)
[RemoveNdisTapiService]
shell "" RemoveService $(!ProductNDISTAPIName)
return $($R0)
[InstallNwlnkRipService]
; install the nwlnkrip service by shelling out the OEMNSVRR.INF file.
; The reason we do this is because the RIP service is shared between RAS
; and the IPX installer.
; Modified on 9/19/96 by RamC
; For the combined router/ras service, rip functionality is provided
; by the IPX router manager. So, we will not install this separate
; service any more and disable it if it is currently installed.
; We need to take care to re-enable the service when some one removes
; the router service.
Debug-Output "InstallNwlnkRipService entry"
set Status = STATUS_FAILED
set KeyNull = ""
Set SrcDir = $(!STF_SRCDIR)
; commented out on 9/19/96 by RamC as part of router service changes
;
; ; set !STF_SRCDIR_OVERRIDE to the SrcDir value to prevent asking
; ; the user for the same information.
;
; ifstr(i) $(!NTN_InstallMode) == "install"
; set !STF_SRCDIR_OVERRIDE = $(SrcDir)
; endif
;
; ; set the flags based on what phase we are in and whether this is an
; ; IDW installation
;
; set AddCopy = YES
; set DoCopy = YES
; set DoConfig = YES
;
; ; save !NTN_InstallMode and change it to install before shelling the
; ; inf file.
;
; set SaveNTN_InstallMode = $(!NTN_InstallMode)
;
; set !NTN_InstallMode = install
; Shell "oemnsvrr.inf" InstallOption $(!STF_LANGUAGE) "NWLNKRIP" +
; $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig) "RAS"
;
; ; restore the environment variables
; set !NTN_InstallMode = $(SaveNTN_InstallMode)
;
; Ifint $($ShellCode) != $(!SHELL_CODE_OK)
; Debug-Output "Error installing NWLNKRIP service"
; Goto InstallNwlnkRipServiceEnd
; Endif
;
; Set InstallStatus = $($R0)
;
; Ifstr(i) $(InstallStatus) != STATUS_SUCCESSFUL
; Ifstr(i) $(InstallStatus) != STATUS_USERCANCEL
; Debug-Output "InstallNwlnkRipService returned "$(InstallStatus)
; Goto InstallNwlnkRipServiceEnd
; Endif
; Endif
;
; ; now set the NetbiosRouting parameter appropriately
; OpenRegKey $(!REG_H_LOCAL) "" $(!RasIsnRipKeyName) $(!MAXIMUM_ALLOWED) KeyService
; ifstr $(KeyService) != ""
; OpenRegKey $(KeyService) "" "Parameters" $(!MAXIMUM_ALLOWED) KeyParams
; ifstr(i) $(KeyParams) != ""
; GetRegValue $(KeyParams),"NetbiosRouting", NetbiosRoutingInfo
; Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
; set NetbiosRouting = *($(NetbiosRoutingInfo), 4)
; else
; ; not defined, so set the default value
; set NetbiosRouting = 2
; endif
; ; Now enable the WAN bit
; ifint $(NetbiosRouting) == 0
; set NetbiosRouting = 2
; else-ifint $(NetbiosRouting) == 1
; set NetbiosRouting = 3
; endif
; SetRegValue $(KeyParams) {NetbiosRouting, $(NoTitle), $(!REG_VT_DWORD), $(NetbiosRouting)}
; CloseRegKey $(KeyParams)
; endif
; CloseRegKey $(KeyService)
; endif
;
; Shell "" AddServiceDependency "RemoteAccess" $(!ProductRASISNRIPName)
; ifstr(i) $($R0) == STATUS_FAILED
; Debug-Output "InstallNwlnkRipService: error adding service dependency"
; endif
;
; added on 9/19/96 by RamC
; if the NwlnkRip service is currently installed, disable it
OpenRegKey $(!REG_H_LOCAL) "" $(!RasIsnRipKeyName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != ""
SetRegValue $(KeyService) {Start, 0, $(!REG_VT_DWORD), 4}
CloseRegKey $(KeyService)
endif
; end new code
set Status = STATUS_SUCCESSFUL
InstallNwlnkRipServiceEnd =+
Debug-Output "InstallNwlnkRipService exit"
return $(Status)
[RemoveNwlnkRipService]
; remove NwlnkRip service by shelling out to OEMNSVRR.INF The service is
; actually removed if RAS is the only consumer. Otherwise, the service
; installer just removes RAS from the list of users of the service.
Debug-Output "RemoveNwlnkRipService entry"
set Status = STATUS_FAILED
set KeyNull = ""
Set SrcDir = $(!STF_SRCDIR)
; set the flags based on what phase we are in and whether this is an
; IDW installation
set AddCopy = YES
set DoCopy = YES
set DoConfig = YES
; save !NTN_InstallMode and change it to deinstall before shelling the
; inf file.
set SaveNTN_InstallMode = $(!NTN_InstallMode)
set !NTN_InstallMode = deinstall
Shell "oemnsvrr.inf" InstallOption $(!STF_LANGUAGE) "NWLNKRIP" +
$(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig) "RAS"
; restore the environment variables
set !NTN_InstallMode = $(SaveNTN_InstallMode)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error removing NWLNKRIP service"
Goto RemoveNwlnkRipServiceEnd
Endif
Set RemoveStatus = $($R0)
Ifstr(i) $(RemoveStatus) != STATUS_SUCCESSFUL
Ifstr(i) $(RemoveStatus) != STATUS_USERCANCEL
Debug-Output "RemoveNwlnkRipService returned "$(RemoveStatus)
Goto RemoveNwlnkRipServiceEnd
Endif
Endif
Shell "" RemoveServiceDependency "RemoteAccess" $(!ProductRASISNRIPName)
ifstr(i) $($R0) == STATUS_FAILED
Debug-Output "RemoveNwlnkRipService: error removing service dependency"
endif
set Status = STATUS_SUCCESSFUL
RemoveNwlnkRipServiceEnd =+
Debug-Output "RemoveNwlnkRipService exit"
return $(Status)
[InstallIsnSapService]
; install the isnsap service by shelling out the OEMNSVSA.INF file.
; The reason we do this is because the SAP agent is shared between RAS
; and the NCP server install.
Debug-Output "InstallIsnSapService entry"
set Status = STATUS_FAILED
set KeyNull = ""
Set SrcDir = $(!STF_SRCDIR)
; set !STF_SRCDIR_OVERRIDE to the SrcDir value to prevent asking
; the user for the same information.
ifstr(i) $(!NTN_InstallMode) == "install"
set !STF_SRCDIR_OVERRIDE = $(SrcDir)
endif
; set the flags based on what phase we are in and whether this is an
; IDW installation
set AddCopy = YES
set DoCopy = YES
set DoConfig = YES
; save !NTN_InstallMode and change it to install before shelling the
; inf file.
set SaveNTN_InstallMode = $(!NTN_InstallMode)
set !NTN_InstallMode = install
Shell "oemnsvsa.inf" InstallOption $(!STF_LANGUAGE) "SAP" +
$(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig) "RAS"
; restore the environment variables
set !NTN_InstallMode = $(SaveNTN_InstallMode)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error installing SAP agent"
Goto InstallIsnSapServiceEnd
Endif
Set InstallStatus = $($R0)
Ifstr(i) $(InstallStatus) != STATUS_SUCCESSFUL
Ifstr(i) $(InstallStatus) != STATUS_USERCANCEL
Debug-Output "InstallSapService returned "$(InstallStatus)
Goto InstallIsnSapServiceEnd
Endif
Endif
; Commented on 9/19/96 by RamC for routing related changes
;
; Shell "" AddServiceDependency "RemoteAccess" $(!ProductRASISNSAPName)
; ifstr(i) $($R0) == STATUS_FAILED
; Debug-Output "InstallIsnSapService: error adding service dependency"
; endif
; added on 9/19/96 by RamC
; if the NwSapAgent service is installed, change the ImagePath to point to mprouter.exe
; BUGBUG When the router service is removed, we should restore this value back to its previous value
OpenRegKey $(!REG_H_LOCAL) "" $(!RasIsnSapKeyName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != ""
SetRegValue $(KeyService) {ImagePath, 0, $(!REG_VT_EXPAND_SZ), "%SystemRoot%\System32\mprouter.exe"}
CloseRegKey $(KeyService)
endif
; end new code
set Status = STATUS_SUCCESSFUL
InstallIsnSapServiceEnd =+
Debug-Output "InstallIsnSapService exit"
return $(Status)
[RemoveIsnSapService]
; remove IsnSap service by shelling out to OEMNSVSA.INF The SAP agent is
; actually removed if RAS is the only consumer. Otherwise, the SAP installer
; just removes RAS from the list of users of SAP agent.
Debug-Output "RemoveIsnSapService entry"
set Status = STATUS_FAILED
set KeyNull = ""
Set SrcDir = $(!STF_SRCDIR)
; set the flags based on what phase we are in and whether this is an
; IDW installation
set AddCopy = YES
set DoCopy = YES
set DoConfig = YES
; save !NTN_InstallMode and change it to deinstall before shelling the
; inf file.
set SaveNTN_InstallMode = $(!NTN_InstallMode)
set !NTN_InstallMode = deinstall
Shell "oemnsvsa.inf" InstallOption $(!STF_LANGUAGE) "SAP" +
$(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig) "RAS"
; restore the environment variables
set !NTN_InstallMode = $(SaveNTN_InstallMode)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error removing SAP agent"
Goto RemoveIsnSapServiceEnd
Endif
Set RemoveStatus = $($R0)
Ifstr(i) $(RemoveStatus) != STATUS_SUCCESSFUL
Ifstr(i) $(RemoveStatus) != STATUS_USERCANCEL
Debug-Output "RemoveIsnSapService returned "$(RemoveStatus)
Goto RemoveIsnSapServiceEnd
Endif
Endif
Shell "" RemoveServiceDependency "RemoteAccess" $(!ProductRASISNSAPName)
ifstr(i) $($R0) == STATUS_FAILED
Debug-Output "RemoveIsnSapService: error removing service dependency"
endif
set Status = STATUS_SUCCESSFUL
RemoveIsnSapServiceEnd =+
Debug-Output "RemoveIsnSapService exit"
return $(Status)
[InstallSnmpService]
; First check to see if SNMP service is currently installed, if not then
;Install SNMP service by shelling oemnsvsn.inf with the appropriate parameters
Debug-Output "InstallSnmpService entry"
set Status = STATUS_FAILED
set KeyNull = ""
Set SrcDir = $(!STF_SRCDIR)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Snmp" $(!MAXIMUM_ALLOWED) KeySnmp
ifstr $(KeySnmp) != $(KeyNull)
Debug-Output "OEMNSVRA.INF: Not installing SNMP service because it is already installed."
CloseRegkey $(KeySnmp)
return STATUS_SUCCESSFUL
endif
; set !STF_SRCDIR_OVERRIDE to the SrcDir value to prevent asking
; the user for the source driveinformation again.
ifstr(i) $(!NTN_InstallMode) == "install"
set !STF_SRCDIR_OVERRIDE = $(SrcDir)
endif
; set the flags based on what phase we are in and whether this is an
; IDW installation
set AddCopy = YES
set DoCopy = YES
set DoConfig = YES
; save !NTN_InstallMode and change it to install before shelling the
; inf file.
set SaveNTN_InstallMode = $(!NTN_InstallMode)
set !NTN_InstallMode = install
Shell "oemnsvsn.inf" InstallOption $(!STF_LANGUAGE) "SNMP" +
$(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig)
; restore the environment variables
set !NTN_InstallMode = $(SaveNTN_InstallMode)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Error installing SAP agent"
Goto InstallIsnSapServiceEnd
Endif
Set InstallStatus = $($R0)
Ifstr(i) $(InstallStatus) != STATUS_SUCCESSFUL
Ifstr(i) $(InstallStatus) != STATUS_USERCANCEL
Debug-Output "InstallSapService returned "$(InstallStatus)
Goto InstallSnmpServiceEnd
Endif
Endif
set Status = STATUS_SUCCESSFUL
InstallSnmpServiceEnd =+
Debug-Output "InstallSnmpService exit"
return $(Status)
[EnablePPTPFilterDriver]
Debug-Output "EnablePPTPFilterDriver entry"
set Status = STATUS_FAILED
set DrvrKeyName = $(!NTN_ServiceBase)"\RASPPTPF"
OpenRegKey $(!REG_H_LOCAL) "" $(DrvrKeyName) $(!MAXIMUM_ALLOWED) KeyDriver
ifstr $(KeyDriver) != ""
SetRegValue $(KeyDriver) {Start, 0, $(!REG_VT_DWORD), 2}
CloseRegKey $(KeyDriver)
Debug-Output "Set PPTPFilterDriver Start value to 2"
set Status = STATUS_SUCCESSFUL
endif
Debug-Output "EnablePPTPFilterDriver exit"
return $(Status)
[DisablePPTPFilterDriver]
Debug-Output "DisablePPTPFilterDriver entry"
set Status = STATUS_FAILED
set BackupDir = $(!STF_WINDOWSSYSPATH)"\~~RB$$~~"
set DrvrKeyName = $(!NTN_ServiceBase)"\RASPPTPF"
OpenRegKey $(!REG_H_LOCAL) "" $(DrvrKeyName) $(!MAXIMUM_ALLOWED) KeyDriver
ifstr $(KeyDriver) != ""
SetRegValue $(KeyDriver) {Start, 0, $(!REG_VT_DWORD), 4}
CloseRegKey $(KeyDriver)
Debug-Output "Set PPTPFilterDriver Start value to 4"
; Now, remove raspptpf.sys file if it exists
; the saved file will be restored by routing setup when routing
; service is removed
set STATUS = NO
LibraryProcedure STATUS, $(!LIBHANDLE), CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\RASPPTPF.SYS"
ifstr(i) $(STATUS) == YES
set STATUS = NO
LibraryProcedure STATUS, $(!LIBHANDLE), CheckFileExistance $(BackupDir)"\RASPPTPF.SYS"
ifstr(i) $(STATUS) == YES
; if file exists in the backup directory add file to delete list
; else copy this file to the backupdir so that it can be restored
; when routing is removed
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile +
$(!STF_WINDOWSSYSPATH)"drivers\RASPPTPF.OLD"
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(!STF_WINDOWSSYSPATH)"\drivers\RASPPTPF.SYS" +
$(!STF_WINDOWSSYSPATH)"\drivers\RASPPTPF.OLD"
; Add the file to the delete list so that it gets deleted at next boot
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\drivers\RASPPTPF.OLD"
else
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\DRIVERS\RASPPTPF.SYS.SAV"
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(!STF_WINDOWSSYSPATH)"\drivers\RASPPTPF.SYS" +
$(!STF_WINDOWSSYSPATH)"\drivers\RASPPTPF.SYS.SAV"
endif
endif
set Status = STATUS_SUCCESSFUL
endif
Debug-Output "DisablePPTPFilterDriver exit"
return $(Status)
[WritePPPParameters]
; this routine copies the PPP parameters information from
; SOFTWARE\..\RAS\PROTOCOLS to SERVICES\RASMAN\PPP key
Debug-Output "WritePPPParameters: entry"
Set Status = STATUS_FAILED
set KeyNull = ""
set RasManKeyName = $(!NTN_ServiceBase)"\RasMan"
set RasManPPPKeyName = $(!NTN_ServiceBase)"\RasMan\PPP"
set RasProtocolsKeyName = $(!NTN_SoftwareBase)"\Microsoft\RAS\PROTOCOLS"
OpenRegKey $(!REG_H_LOCAL) "" $(RasManKeyName) $(!MAXIMUM_ALLOWED) KeyRasMan
ifstr $(KeyRasMan) != $(KeyNull)
; save the old PPP parameters if they are present
OpenRegKey $(KeyRasMan) "" "PPP" $(!MAXIMUM_ALLOWED) KeyRasManPPP
set NewValueList = {}
ifstr $(KeyRasManPPP) != $(KeyNull)
EnumRegValue $(KeyRasManPPP) NewValueList
else
CreateRegKey $(KeyRasMan) +
{"PPP",0,GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyRasManPPP
CloseRegKey $(KeyRasMan)
ifstr $(KeyRasManPPP) == $(KeyNull)
Debug-Output "WritePPPParameters: error creating RasMan\ppp key"
goto WritePPPParametersEnd
endif
endif
else
Debug-Output "WritePPPParameters: error opening RasMan key"
goto UpdateCPListEnd
endif
ifstr(i) $(NewValueList) == {}
set NewValueList = {{MaxConfigure, 0, $(!REG_VT_DWORD), 10}, +
{MaxTerminate, 0, $(!REG_VT_DWORD), 2}, +
{MaxFailure, 0, $(!REG_VT_DWORD), 10}. +
{MaxReject, 0, $(!REG_VT_DWORD), 5}. +
{NegotiateTime, 0, $(!REG_VT_DWORD), 150}, +
{Logging, 0, $(!REG_VT_DWORD), 0}, +
{RestartTimer, 0, $(!REG_VT_DWORD), 3}}
endif
forlistdo $(NewValueList)
SetRegValue $(KeyRasManPPP) $($)
endforlistdo
; if ForceEncryptedPassword, ForceEncryptedData and ForceStrongEncryption
; are set in
; SOFTWARE\..\RAS\PROTOCOLS get that value and store in the RASMAN\PPP key.
; otherwise just default the values.
set ForceEncryptedPassword = 2
set ForceEncryptedData = 0
set ForceStrongEncryption = 0
OpenRegKey $(!REG_H_LOCAL) "" $(RasProtocolsKeyName) $(!MAXIMUM_ALLOWED) KeyRasProtocols
ifstr $(KeyRasProtocols) != $(KeyNull)
GetRegValue $(KeyRasProtocols) "ForceEncryptedPassword" ForceValue
ifint $(RegLastError) == 0
set ForceEncryptedPassword = *($(ForceValue), 4)
endif
GetRegValue $(KeyRasProtocols) "ForceEncryptedData" ForceValue
ifint $(RegLastError) == 0
set ForceEncryptedData = *($(ForceValue), 4)
endif
GetRegValue $(KeyRasProtocols) "ForceStrongEncryption" ForceValue
ifint $(RegLastError) == 0
set ForceStrongEncryption = *($(ForceValue), 4)
endif
SetRegValue $(KeyRasManPPP) {ForceEncryptedPassword, 0, +
$(!REG_VT_DWORD),$(ForceEncryptedPassword)}
SetRegValue $(KeyRasManPPP) {ForceEncryptedData, 0, +
$(!REG_VT_DWORD),$(ForceEncryptedData)}
SetRegValue $(KeyRasManPPP) {ForceStrongEncryption, 0, +
$(!REG_VT_DWORD),$(ForceStrongEncryption)}
CloseRegKey $(KeyRasProtocols)
endif
CloseRegKey $(KeyRasManPPP)
set Status = STATUS_SUCCESSFUL
WritePPPParametersEnd =+
Debug-Output "WritePPPParameters: exit"
return $(Status)
[UpdateCPList]
; this routine modifies the supported list of CPs and their corresponding
; dll's based on the installed set of protocols.
Debug-Output "UpdateCPList: entry"
Set Status = STATUS_FAILED
set KeyNull = ""
set RasManPPPKeyName = $(!NTN_ServiceBase)"\RasMan\PPP"
; Write the PPP parameters first
Shell "" WritePPPParameters
Shell "" QuerySelectedProtocols
ifstr(i) $($R0) == STATUS_SUCCESSFUL
set fNetbeuiSelected = $($R1)
set fTcpIpSelected = $($R2)
set fIpxSelected = $($R3)
set fNetbeuiAllowed = $($R4)
set fTcpIpAllowed = $($R5)
set fIpxAllowed = $($R6)
else
Debug-Output "UpdateCPList: error QuerySelectedProtocols"
goto UpdateCPListEnd
endif
OpenRegKey $(!REG_H_LOCAL) "" $(RasManPPPKeyName) $(!MAXIMUM_ALLOWED) KeyRasManPPP
ifstr $(KeyRasManPPP) != $(KeyNull)
EnumRegKey $(KeyRasManPPP) OldCPList
ifstr(i) $(fNetbeuiSelected) == TRUE
set fNetbeuiChosen = TRUE
else
set fNetbeuiChosen = $(fNetbeuiAllowed)
endif
ifstr(i) $(fTcpIpSelected) == TRUE
set fTcpIpChosen = TRUE
else
set fTcpIpChosen = $(fTcpIpAllowed)
endif
ifstr(i) $(fIpxSelected) == TRUE
set fIpxChosen = TRUE
else
set fIpxChosen = $(fIpxAllowed)
endif
set CPList = {"PAP", "CHAP", "SPAP", "CBCP", "COMPCP"}
ifstr(i) $(fNetbeuiChosen) == TRUE
set CPList = >($(CPList), "NBFCP")
endif
ifstr(i) $(fTcpIpChosen) == TRUE
set CPList = >($(CPList), "IPCP")
endif
ifstr(i) $(fIpxChosen) == TRUE
set CPList = >($(CPList), "IPXCP")
endif
; ifstr(i) $(fAppleTalkChosen) == TRUE
; set CPList = >($(CPList), "ATALKCP")
; endif
; if a CP was added in a prior configuration and is no more supported
; delete the corresponding registry key
set CurrentCPList = {}
ForListDo $(OldCPList)
set CPName = *($($),1)
ifcontains(i) $(CPName) not-in $(CPList)
DeleteRegTree $(KeyRasManPPP) $(CPName)
else
set CurrentCPList = >($(CurrentCPList), $(CPName))
endif
EndForListDo
forlistdo $(CPList)
; create the CP key only if it doesn't already exist
ifcontains(i) $($) not-in $(CurrentCPList)
CreateRegKey $(KeyRasManPPP) +
{$($),0,GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyCp
set path = #(CP-List, $($), 1)
set NewValueList = {{Path, 0, $(!REG_VT_EXPAND_SZ), $(path)}}
ifstr $(KeyCp) != $(KeyNull)
Shell "utility.inf", AddValueList, $(KeyCp), +
$(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "UpdateCPList:AddValueList bombed out"
goto UpdateCPListEnd
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto UpdateCPListEnd
endif
CloseRegKey $(KeyCp)
else
Debug-Output "UpdateCPList:error creating key"
endif
endif
endforlistdo
CloseRegKey $(KeyRasManPPP)
else
Debug-Output "UpdateCPList:error opening RASMAN\PPP key"
goto UpdateCPListEnd
endif
set Status = STATUS_SUCCESSFUL
UpdateCPListEnd =+
Debug-Output "UpdateCPList: exit"
return $(Status)
[UpdateSoftwareType]
; this routine mofifies \\Software\<manufacturer>\<Product>\CurrentVersion!SoftwareType
; to correctly list a supported type
;
Debug-Output "UpdateSoftwareType: entry"
set ProductKeyName = $(!NTN_SoftwareBase)"\Microsoft\RAS\CurrentVersion"
set Status = STATUS_FAILED
set KeyCurrentVersion = ""
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(!MAXIMUM_ALLOWED) KeyCurrentVersion
ifstr $(KeyCurrentVersion) == ""
Debug-Output "OEMNSVRA.INF:UpdateSoftwareType: couldn't open "$(ProductKeyName)
goto UpdateSoftwareTypeEnd
endif
SetRegValue $(KeyCurrentVersion) {SoftwareType, 0, $(!REG_VT_SZ), "service" }
CloseRegKey $(KeyCurrentVersion)
set Status = STATUS_SUCCESSFUL
UpdateSoftwareTypeEnd=+
Debug-Output "UpdateSoftwareType: exit"
return $(Status)
[UpdateLLInterface]
; then update the NdisWanx\Parameters\TCPIP\LLInterface key with RasArp value
; while we are at it also set the IPAddress, SubnetMask, DefaultGateway and
; EnableDHCP values of each NdisWan adapter bound to TcpIp
; Modified on 9/19/96 by RamC for routing related changes
; WanArp replaces RasArp, so update the NdisWanx\Parameters\TCPIP\LLInterface key with
; WanArp value. Also set WanArp\Linkage\Bind to the list of NdisWan devices bound to
; Tcp/Ip and set WanArp\Parameters\NdisWanAdapter to one of the NdisWan adapters bound to
; Tcp/Ip
Debug-Output "UpdateLLInterface: entry"
set Status = STATUS_FAILED
set KeyNull = ""
; set LLInterface = "\Device\RASARP"
set LLInterface = "\Device\WANARP"
; find out which one of the NdisWan adapters is bound to the IP stack
; we do this by looking in the Linkage key of IP service
set KeyIpLinkage = $(KeyNull)
set IPLinkageKeyName = $(!NTN_ServiceBase)"\TCPIP\Linkage"
OpenRegKey $(!REG_H_LOCAL) "" $(IPLinkageKeyName) $(!MAXIMUM_ALLOWED) KeyIpLinkage
ifstr $(KeyIpLinkage) == $(KeyNull)
Debug-Output "OEMNSVRA.INF:UpdateLLInterface: couldn't open IP Linkage key"
goto UpdateLLInterfaceEnd
endif
; create a list of NdisWan adapters bound to TcpIp
set NdisWanList = {}
set DeviceList = {}
GetRegValue $(KeyIpLinkage) "Bind" TmpList
ForListDo *($(TmpList),4)
Split-String $($), "\", BindList
QueryListSize ListSize $(BindList)
set ServiceName = *($(BindList), $(ListSize))
LibraryProcedure Result $(!LIBHANDLE) SetupStrncmp $(ServiceName) "NdisWan" 7
ifint $(Result) == 0
set NdisWanList = >($(NdisWanList), $(ServiceName))
set DeviceList = >($(DeviceList), $($))
endif
EndForListDo
CloseRegKey $(KeyIpLinkage)
; Find out which of the NdisWan Adapters is the server adapter
set NdisWanServerAdapter = ""
ForListDo $(NdisWanList)
set ServiceKeyName = $(!NTN_ServiceBase)"\"$($)"\Parameters"
OpenRegKey $(!REG_H_LOCAL) "" $(ServiceKeyName) $(!MAXIMUM_ALLOWED) KeyNdisWan
ifstr $(KeyNdisWan) != $(KeyNull)
GetRegValue $(KeyNdisWan) "ServerAdapter" KeyValue
ifint $(RegLastError) == 0
ifint *($(KeyValue), 4) == 1
set NdisWanServerAdapter = "\Device\"$($)
endif
endif
CloseRegKey $(KeyNdisWan)
endif
EndForListDo
; Now set WanArp\Linkage\Bind to the list of Ndiswan devices bound to TcpIp
; and set WanArp\Parameters\NdisWanAdapter value to the first device from
; the DeviceList
; also set WanArp\Parameters\NdisWanServerAdapter value to the NdisWan
; adapter that has ServerAdapter value set to 1
set ListSize = 0
QueryListSize ListSize $(DeviceList)
ifint $(ListSize) >= 1
set KeyLinkage = $(KeyNull)
set KeyParam = $(KeyNull)
set WanArpLinkageKeyName = $(!NTN_ServiceBase)"\WanArp\Linkage"
set WanArpParamKeyName = $(!NTN_ServiceBase)"\WanArp\Parameters"
OpenRegKey $(!REG_H_LOCAL) "" $(WanArpLinkageKeyName) $(!MAXIMUM_ALLOWED) KeyLinkage
ifstr $(KeyLinkage) != $(KeyNull)
SetRegValue $(KeyLinkage) {Bind, 0, $(!REG_VT_MULTI_SZ), $(DeviceList)}
CloseRegKey $(KeyLinkage)
else
Debug-Output "OEMNSVRA.INF:UpdateLLInterface: couldn't open WANARP Linkage key"
endif
OpenRegKey $(!REG_H_LOCAL) "" $(WanArpParamKeyName) $(!MAXIMUM_ALLOWED) KeyParam
ifstr $(KeyParam) != $(KeyNull)
SetRegValue $(KeyParam) {NdisWanAdapter, 0, $(!REG_VT_SZ), *($(DeviceList), 1)}
SetRegValue $(KeyParam) {NdisWanServerAdapter, 0, $(!REG_VT_SZ), $(NdisWanServerAdapter)}
CloseRegKey $(KeyParam)
else
Debug-Output "OEMNSVRA.INF:UpdateLLInterface: couldn't open WANARP Parameters key"
endif
endif
set ListSize = 0
QueryListSize ListSize $(NdisWanList)
ifint $(ListSize) >= 1
ForListDo $(NdisWanList)
set ServiceKeyName = $(!NTN_ServiceBase)"\"$($)"\Parameters\TCPIP"
OpenRegKey $(!REG_H_LOCAL) "" $(ServiceKeyName) $(!MAXIMUM_ALLOWED) KeyNdisWan
ifstr $(KeyNdisWan) != $(KeyNull)
SetRegValue $(KeyNdisWan) {IPAddress, 0, +
$(!REG_VT_MULTI_SZ), {"0.0.0.0"}}
SetRegValue $(KeyNdisWan) {SubnetMask, 0, +
$(!REG_VT_MULTI_SZ), {"0.0.0.0"}}
SetRegValue $(KeyNdisWan) {DefaultGateway, 0, +
$(!REG_VT_MULTI_SZ), {""}}
SetRegValue $(KeyNdisWan) {LLInterface, 0,+
$(!REG_VT_SZ), $(LLInterface)}
SetRegValue $(KeyNdisWan) {EnableDHCP, 0, +
$(!REG_VT_DWORD), 0}
else
CreateRegKey $(!REG_H_LOCAL) +
{$(ServiceKeyName),0,GenericClass} "" +
$(!MAXIMUM_ALLOWED) "" KeyNdisWan
ifstr $(KeyNdisWan) != $(KeyNull)
SetRegValue $(KeyNdisWan) {IPAddress, 0, +
$(!REG_VT_MULTI_SZ), {"0.0.0.0"}}
SetRegValue $(KeyNdisWan) {SubnetMask, 0, +
$(!REG_VT_MULTI_SZ), {"0.0.0.0"}}
SetRegValue $(KeyNdisWan) {DefaultGateway, 0, +
$(!REG_VT_MULTI_SZ), {""}}
SetRegValue $(KeyNdisWan) {LLInterface, 0,+
$(!REG_VT_SZ), $(LLInterface)}
SetRegValue $(KeyNdisWan) {EnableDHCP, 0, +
$(!REG_VT_DWORD), 0}
SetRegValue $(KeyNdisWan) {UseZeroBroadcast, 0, +
$(!REG_VT_DWORD), 0}
else
Debug-Output "OEMNSVRA.INF:UpdateLLInterface: couldn't create NdisWan params-tcpip key"
goto UpdateLLInterfaceEnd
endif
endif
CloseRegKey $(KeyNdisWan)
EndForListDo
endif
set Status = STATUS_SUCCESSFUL
UpdateLLInterfaceEnd =+
Debug-Output "UpdateLLInterface: exit"
return $(Status)
[SetRasArpBindValueFromTcpIP]
;Set the services\RasArp\Linkage\Bind to all NdisWan bindings of TCP/IP
Debug-Output "SetRasArpBindValueFromTcpIP: entry"
set Status = STATUS_FAILED
set KeyNull = ""
; find out which one of the NdisWan adapters is bound to the IP stack
; we do this by looking in the Linkage key of IP service
set IPLinkageKeyName = $(!NTN_ServiceBase)"\TCPIP\Linkage"
OpenRegKey $(!REG_H_LOCAL) "" $(IPLinkageKeyName) $(!MAXIMUM_ALLOWED) KeyIpLinkage
ifstr $(KeyIpLinkage) == $(KeyNull)
Debug-Output "OEMNSVRA.INF:SetRasArpBindValueFromTcpIP: couldn't open IP Linkage key"
goto SetRasArpBindValueFromTcpIPEnd
endif
set NdisWanList = {}
GetRegValue $(KeyIpLinkage) "Bind" TmpList
ForListDo *($(TmpList),4)
Split-String $($), "\", BindList
QueryListSize ListSize $(BindList)
set ServiceName = *($(BindList), $(ListSize))
LibraryProcedure Result $(!LIBHANDLE) SetupStrncmp $(ServiceName) "NdisWan" 7
ifint $(Result) == 0
set NdisWanList = >($(NdisWanList), $($))
endif
EndForListDo
set RasArpLinkageKeyName = $(!NTN_ServiceBase)"\RASARP\Linkage"
OpenRegKey $(!REG_H_LOCAL) "" $(RasArpLinkageKeyName) $(!MAXIMUM_ALLOWED) KeyRasArpLinkage
ifstr $(KeyRasArpLinkage) != $(KeyNull)
SetRegValue $(KeyRasArpLinkage) {Bind, 0, $(!REG_VT_MULTI_SZ), $(NdisWanList)}
CloseRegKey $(KeyRasArpLinkage)
endif
CloseRegKey $(KeyIpLinkage)
set Status = STATUS_SUCCESSFUL
SetRasArpBindValueFromTcpIPEnd=+
Debug-Output "SetRasArpBindValueFromTcpIP: entry"
return $(Status)
[UpdateNetGroupDependency]
; set the DependOnGroup and OtherDependencies parameter of the corresponding
; service to NDISWAN. This will ensure that in a no netcard installation of ras
; the ras drivers would be forced to load
Set Status = STATUS_SUCCESSFUL
set KeyNull = ""
set fNetbeuiInstalled = $($0)
set fTcpIpInstalled = $($1)
set fIpxInstalled = $($2)
Debug-Output "UpdateNetGroupDependency entry"
set ServiceList = {}
ifstr(i) $(fNetbeuiInstalled) == TRUE
set ServiceList = >($(ServiceList), "nbf")
endif
ifstr(i) $(fTcpIpInstalled) == TRUE
set ServiceList = >($(ServiceList), "tcpip")
endif
ifstr(i) $(fIpxInstalled) == TRUE
set ServiceList = >($(ServiceList), "nwlnkipx")
endif
ForListDo $(ServiceList)
set Service = $($)
Debug-Output "OEMNSVRA.INF: Changing group dependency of "$(Service)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(Service) +
$(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != $(KeyNull)
set newGroupList = {"+NDIS", "+NDISWAN"}
GetRegValue $(KeyService) "DependOnGroup" GrpList
ifint $(RegLastError) == 0
Debug-Output "UpdateNetGroupDependency: old group List "*($(GrpList), 4)
ForListDo *($(GrpList),4)
ifstr(i) $($) != "NDIS"
ifstr(i) $($) != "NDISWAN"
set newGroup = "+"$($)
set newGroupList = >($(newGroupList), $(newGroup))
endif
endif
EndForListDo
endif
GetRegValue $(KeyService) "DependOnService" ServiceList
ifint $(RegLastError) == 0
Debug-Output "UpdateNetGroupDependency: old service List "*($(ServiceList), 4)
ForListDo *($(ServiceList),4)
set newGroupList = >($(newGroupList), $($))
EndForListDo
endif
Debug-Output "OEMNSVRA.INF: UpdateNetGroupDependency: new depend List "$(newGroupList)
LibraryProcedure Result, $(!LIBHANDLE), SetupChangeServiceConfig, $(Service) $(!SERVICE_NO_CHANGE), $(!SERVICE_NO_CHANGE), $(!SERVICE_NO_CHANGE), "", "", $(newGroupList), "", "", ""
CloseRegKey $(KeyService)
else
Debug-Output "UpdateNetGroupDependency: failed to open service linkage key"$(Service)
endif
EndForListDo
Debug-Output "UpdateNetGroupDependency exit"
return $(Status)
[RemoveNetGroupDependency]
;Remove transport dependency on group NDISWAN
Set Status = STATUS_SUCCESSFUL
set KeyNull = ""
set fNetbeuiInstalled = $($0)
set fTcpIpInstalled = $($1)
set fIpxInstalled = $($2)
Debug-Output "UpdateNetGroupDependency entry"
set ServiceList = {"nbf", "tcpip", "nwlnkipx"}
ForListDo $(ServiceList)
set Service = $($)
Debug-Output "OEMNSVRA.INF: Changing group dependency of "$(Service)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(Service) +
$(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != $(KeyNull)
; check whether the service is marked for deletion
set DeleteFlag = ""
GetRegValue $(KeyService),"DeleteFlag", DeleteFlagInfo
set DeleteFlag = *($(DeleteFlagInfo), 4)
ifint $(DeleteFlag) != 1
set newGroupList = {}
GetRegValue $(KeyService) "DependOnGroup" GrpList
ifint $(RegLastError) == 0
Debug-Output "UpdateNetGroupDependency: old List "*($(GrpList), 4)
ForListDo *($(GrpList),4)
ifstr(i) $($) != "NDISWAN"
set newGroup = "+"$($)
set newGroupList = >($(newGroupList), $(newGroup))
endif
EndForListDo
endif
GetRegValue $(KeyService) "DependOnService" ServiceList
ifint $(RegLastError) == 0
Debug-Output "UpdateNetGroupDependency: old service List "*($(ServiceList), 4)
ForListDo *($(ServiceList),4)
set newGroupList = >($(newGroupList), $($))
EndForListDo
endif
Debug-Output "OEMNSVRA.INF: UpdateNetGroupDependency: new depend List "$(newGroupList)
LibraryProcedure Result, $(!LIBHANDLE), SetupChangeServiceConfig, $(Service) $(!SERVICE_NO_CHANGE), $(!SERVICE_NO_CHANGE), $(!SERVICE_NO_CHANGE), "", "", $(newGroupList), "", "", ""
CloseRegKey $(KeyService)
endif
else
Debug-Output "UpdateNetGroupDependency: failed to open service linkage key"$(Service)
endif
EndForListDo
Debug-Output "UpdateNetGroupDependency exit"
return $(Status)
[UpdateIPRouterInfo]
; set the IPEnableRouter parameter in TCPIP\Parameters based on input param 1
set EnableRouter = $($0)
set KeyNull = ""
Debug-Output "UpdateIPRouterInfo entry"
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\TCPIP\parameters" $(!MAXIMUM_ALLOWED) KeyIpParams
ifstr $(KeyIpParams) != $(KeyNull)
SetRegValue $(KeyIpParams) {IPEnableRouter, 0,+
$(!REG_VT_DWORD), $(EnableRouter)}
CloseRegKey $(KeyIpParams)
endif
Debug-Output "UpdateIPRouterInfo exit"
return STATUS_SUCCESSFUL
[UpdateIPXRouterInfo]
; Set the DisableWanTraffic parameter in NWLNKIPX\NetConfig\Driverxx key to
; the passed in value of EnableRouter
set Status = STATUS_FAILED
set EnableRouter = $($0)
set KeyNull = ""
Debug-Output "UpdateIPXRouterInfo entry"
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NWLNKIPX\NetConfig" $(!MAXIMUM_ALLOWED) KeyIpxNetConfig
ifstr $(KeyIpxNetConfig) != $(KeyNull)
EnumRegKey $(KeyIpxNetConfig) DriverList
ForListDo $(DriverList)
set DriverName = *($($),1)
OpenRegKey $(KeyIpxNetConfig) "" $(DriverName) $(!MAXIMUM_ALLOWED) Driver
ifstr $(Driver) == $(KeyNull)
Debug-Output "UpdateIPXRouterInfo: could not open key ipx\netconfig\"$(DriverName)
CloseRegKey $(KeyIpxNetConfig)
return $(Status)
endif
SetRegValue $(Driver) {EnableWanRouter, 0,+
$(!REG_VT_DWORD), $(EnableRouter)}
CloseRegKey $(Driver)
EndForListDo
CloseRegKey $(KeyIpxNetConfig)
set Status = STATUS_SUCCESSFUL
else
Debug-Output "UpdateIPXRouterInfo: error opening ipx\netconfig key"
endif
Debug-Output "UpdateIPXRouterInfo exit"
return $(Status)
[IsNetcardInstalled]
; determine if a network card is installed on the system.
; Return TRUE if a non-ras network card is installed, FALSE otherwise.
Set Status = STATUS_FAILED
Set fNetcardInstalled = FALSE
Set KeyNull = ""
set ProductRASASYMACName = "AsyncMac"
set NetworkCardKey = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(!NetworkCardKeyName) $(!MAXIMUM_ALLOWED) NetworkCardKey
Ifstr(i) $(NetworkCardKey) != $(KeyNull)
set NetcardsList = {}
EnumRegKey $(NetworkCardKey) NetcardsList
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "IsNetcardInstalled: EnumRegKey failed."
goto IsNetcardInstalledEnd
endif
; go down the list of installed netcards and determine if there are
; any netcards which are not AsyncMac, NdiswanDialin or NdiswanDialout
ForListDo $(NetcardsList)
set KeyName = *($($),1)
set Card = $(KeyNull)
OpenRegKey $(NetworkCardKey) "" $(KeyName) $(!MAXIMUM_ALLOWED) Card
ifstr $(Card) == $(KeyNull)
Debug-Output "IsNetcardInstalled: could not open netcard key "$(KeyName)
else
GetRegValue $(Card), "ProductName" ProductNameInfo
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "IsNetcardInstalled: ProductName not found."
else
set CardProductName = *($(ProductNameInfo), 4)
Debug-Output "IsNetcardInstalled: ProductName. "$(CardProductName)
ifstr(i) $(CardProductName) != $(!ProductNDISWANName)
ifstr(i) $(CardProductName) != $(!ProductNDISWANDIALINName)
ifstr(i) $(CardProductName) != $(!ProductNDISWANDIALOUTName)
ifstr(i) $(CardProductName) != $(!ProductNDISWANDIALINIPName)
ifstr(i) $(CardProductName) != $(!ProductNDISWANDIALOUTIPName)
ifstr(i) $(CardProductName) != $(!ProductNDISWANDIALINOUTIPXName)
ifstr(i) $(CardProductName) != $(ProductRASASYMACName)
ifstr(i) $(CardProductName) != $(!ProductPCIMACName)
GetRegValue $(Card), "Manufacturer" Manufacturer
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
; if the Manufacturer is Digiboard then this
; is more than likely a multi-port adapter and
; not a net card. so check that.
ifstr(i) *($(Manufacturer), 4) != "Digiboard"
Debug-Output "found installed netcard"
set fNetcardInstalled = TRUE
set Status = STATUS_SUCCESSFUL
CloseRegKey $(Card)
goto IsNetcardInstalledEnd
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
CloseRegKey $(Card)
endif
EndForListDo
else
Debug-Output "IsNetcardInstalled: failed to open "$(!NetworkCardKeyName)
endif
IsNetcardInstalledEnd =+
ifstr(i) $(NetworkCardKey) != $(KeyNull)
CloseRegKey $(NetworkCardKey)
endif
Return $(Status) $(fNetcardInstalled)
[IsNetworkConfigured]
; determine if the lanman workstation isinstalled on the system.
set WkstaKeyName = $(!NTN_ServiceBase)"\LanmanWorkstation"
set SrvrKeyName = $(!NTN_ServiceBase)"\LanmanServer"
Set KeyNull = ""
Set status = STATUS_FAILED
Set WkstaConfigured = FALSE
Set SrvrConfigured = FALSE
Debug-Output "IsNetworkConfigured WkstaKeyName "$(WkstaKeyName)
set KeyProduct = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(WkstaKeyName) $(!MAXIMUM_ALLOWED) KeyProduct
Ifstr(i) $(KeyProduct) != $(KeyNull)
GetRegValue $(KeyProduct),"DeleteFlag", DeleteFlagInfo
set DeleteFlag = *($(DeleteFlagInfo), 4)
ifint $(DeleteFlag) != 1
set WkstaConfigured = TRUE
endif
CloseRegKey $(KeyProduct)
endif
Debug-Output "IsNetworkConfigured SrvrKeyName "$(SrvrKeyName)
set KeyProduct = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(SrvrKeyName) $(!MAXIMUM_ALLOWED) KeyProduct
Ifstr(i) $(KeyProduct) != $(KeyNull)
GetRegValue $(KeyProduct),"DeleteFlag", DeleteFlagInfo
set DeleteFlag = *($(DeleteFlagInfo), 4)
ifint $(DeleteFlag) != 1
set SrvrConfigured = TRUE
endif
CloseRegKey $(KeyProduct)
endif
set status = STATUS_SUCCESSFUL
Debug-Output "IsNetworkConfigured exit"
Return $(status) $(WkstaConfigured) $(SrvrConfigured)
[QueryInstalledProtocols]
; determine if Nbf, Tcpip and Ipx transports are installed in the system
Debug-Output "QueryInstalledProtocols entry "
set NbfKeyName = $(!NTN_ServiceBase)"\Nbf"
set TcpIpKeyName = $(!NTN_ServiceBase)"\TcpIp"
set IpxKeyName = $(!NTN_ServiceBase)"\NWLNKIPX"
set AppleTalkKeyName = $(!NTN_ServiceBase)"\AppleTalk"
Set KeyNull = ""
Set status = STATUS_FAILED
Set NbfInstalled = FALSE
Set TcpIpInstalled = FALSE
Set IpxInstalled = FALSE
Set AppleTalkInstalled = FALSE
set KeyService = $(KeyNull)
set DeleteFlag = 0
set DeleteFlagInfo = {}
OpenRegKey $(!REG_H_LOCAL) "" $(NbfKeyName) $(!MAXIMUM_ALLOWED) KeyService
Ifstr(i) $(KeyService) != $(KeyNull)
; check whether it is marked for deletion
GetRegValue $(KeyService),"DeleteFlag", DeleteFlagInfo
set DeleteFlag = *($(DeleteFlagInfo), 4)
ifint $(DeleteFlag) != 1
set NbfInstalled = TRUE
endif
CloseRegKey $(KeyService)
endif
set KeyService = $(KeyNull)
set DeleteFlag = 0
set DeleteFlagInfo = {}
OpenRegKey $(!REG_H_LOCAL) "" $(TcpIpKeyName) $(!MAXIMUM_ALLOWED) KeyService
Ifstr(i) $(KeyService) != $(KeyNull)
; check whether it is marked for deletion
GetRegValue $(KeyService),"DeleteFlag", DeleteFlagInfo
set DeleteFlag = *($(DeleteFlagInfo), 4)
ifint $(DeleteFlag) != 1
set TcpIpInstalled = TRUE
endif
CloseRegKey $(KeyService)
endif
set KeyService = $(KeyNull)
set DeleteFlag = 0
set DeleteFlagInfo = {}
OpenRegKey $(!REG_H_LOCAL) "" $(IpxKeyName) $(!MAXIMUM_ALLOWED) KeyService
Ifstr(i) $(KeyService) != $(KeyNull)
; check whether it is marked for deletion
GetRegValue $(KeyService),"DeleteFlag", DeleteFlagInfo
set DeleteFlag = *($(DeleteFlagInfo), 4)
ifint $(DeleteFlag) != 1
set IpxInstalled = TRUE
endif
CloseRegKey $(KeyService)
endif
set KeyService = $(KeyNull)
set DeleteFlag = 0
set DeleteFlagInfo = {}
OpenRegKey $(!REG_H_LOCAL) "" $(AppleTalkKeyName) $(!MAXIMUM_ALLOWED) KeyService
Ifstr(i) $(KeyService) != $(KeyNull)
; check whether it is marked for deletion
GetRegValue $(KeyService),"DeleteFlag", DeleteFlagInfo
set DeleteFlag = *($(DeleteFlagInfo), 4)
ifint $(DeleteFlag) != 1
set AppleTalkInstalled = TRUE
endif
CloseRegKey $(KeyService)
endif
set status = STATUS_SUCCESSFUL
Debug-Output "QueryInstalledProtocols exit"
Return $(status) $(NbfInstalled) $(TcpIpInstalled) $(IpxInstalled) +
$(AppleTalkInstalled)
[ProtocolInfo]
; this information is used by InstallProtocol
; protocol name INF file, Option name, bill board index
NETBEUI = "OEMNXPNB.INF", "NBF", 1
TCPIP = "OEMNXPTC.INF", "TC", 2
IPX = "OEMNXPIP.INF", "NWLNKIPX", 3
[InstallProtocol]
; install the specified protocol in parameter 1, by shelling the
; respective inf file.
Set Status = STATUS_FAILED
Set KeyNull = ""
set Protocol = $($0)
; protocol name INF name, Option name, Bill board index
Debug-Output "OEMNSVRA.INF: Label: InstallProtocol"
Set ThisInfName = #(ProtocolInfo, $(Protocol), 1)
Set InfOption = #(ProtocolInfo, $(Protocol), 2)
Set BbIndex = #(ProtocolInfo, $(Protocol), 3)
Debug-Output "OEMNSVRA.INF: Installing "$(ThisInfName)
Ifint $(BbIndex) != 0
read-syms Billboard$(BbIndex)$(!STF_LANGUAGE)
Shell "subroutn.inf" PushBillboard NETSTATUSDLG $(Status)
Set BillboardVisible = 1
Else-ifint $(BillboardVisible) != 0
Shell "subroutn.inf" PopBillboard
Set BillboardVisible = 0
Endif
; set the flags based on what phase we are in and whether this is an
; IDW installation
set AddCopy = YES
set DoCopy = YES
set DoConfig = YES
; indicate to the invoked INF file that RAS setup is invoking them
; this is required because if RAS installed these protocols then those
; INF files should not display a popup that they should configure RAS
; after installing the respective protocols.
set InvokedByRas = YES
; save !NTN_InstallMode and change it to install before shelling the
; inf file.
; save !STF_INSTALL_MODE and change it to EXPRESS before shelling the
; inf file - this triggers the silent mode of install.
set SaveNTN_InstallMode = $(!NTN_InstallMode)
set SaveSTF_INSTALL_MODE = $(!STF_INSTALL_MODE)
set !NTN_InstallMode = install
set !STF_INSTALL_MODE = EXPRESS
Shell $(ThisInfName) InstallOption $(!STF_LANGUAGE) $(InfOption) $(!STF_SRCDIR) $(AddCopy) $(DoCopy) $(DoConfig) $(InvokedByRas)
; restore the environment variables
set !NTN_InstallMode = $(SaveNTN_InstallMode)
set !STF_INSTALL_MODE = $(SaveSTF_INSTALL_MODE)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVRA.INF: INF "$(ThisInfName)" SHELL ERROR!"
Goto InstallProtocolEscape
Endif
Set InstallProtocolStatus = $($R0)
Ifstr(i) $(InstallProtocolStatus) != STATUS_SUCCESSFUL
Ifstr(i) $(InstallProtocolStatus) != STATUS_USERCANCEL
Debug-Output "OEMNSVRA.INF: INF "$(ThisInfName)" returned "$(InstallProtocolStatus)
Goto InstallProtocolEscape
Endif
Endif
InstallProtocolEscape = +
set Status = $(InstallProtocolStatus)
return $(Status)
[UpgradeSelectedProtocols]
; upgrade the user selected protocols info in the
; SOFTWARE\Microsoft\RAS\Protocols key. This procedure
; is called during Upgrade of the product.
; 10/9/95 added the new Multilink key and value which is defaulted to 0 (disabled) if
; not present.
Debug-Output "UpgradeSelectedProtocols entry."
set Status = STATUS_FAILED
Set KeyNull = ""
set RasKeyName = $(!NTN_SoftwareBase)"\Microsoft\Ras"
set RasProtocolName = $(!NTN_SoftwareBase)"\Microsoft\Ras\Protocols"
set RasServiceParmName = $(!NTN_ServiceBase)"\Remoteaccess\Parameters"
set AsyMacServiceParmName = $(!NTN_ServiceBase)"\AsyncMac\Parameters"
set RasManPPPName = $(!NTN_ServiceBase)"\RasMan\PPP"
; first get the NetBiosGatewayEnabled parameter value. This tells us
; how the system was configured earlier for us to set the protocol info.
set GtwyEnabled = 1
OpenRegKey $(!REG_H_LOCAL) "" $(RasServiceParmName) $(!MAXIMUM_ALLOWED) KeyParam
ifstr $(KeyParam) != $(KeyNull)
GetRegValue $(KeyParam), "NetBiosGatewayEnabled", GtwyEnabledList
ifint $(RegLastError) == 0
set GtwyEnabled = *($(GtwyEnabledList), 4)
endif
CloseRegKey $(KeyParam)
else
Debug-Output "UpgradeSelectedProtocols: error opening RemoteAccess\Parameters key"
endif
; now get the number of configured ports for each protocol
set DialinNBF = 0
set DialinIP = 0
set DialoutNBF = 0
set DialoutIP = 0
set DialinoutIPX = 0
OpenRegKey $(!REG_H_LOCAL) "" $(AsyMacServiceParmName) $(!MAXIMUM_ALLOWED) KeyParam
ifstr $(KeyParam) != $(KeyNull)
GetRegValue $(KeyParam), "DialinNBF", DialinNBFList
ifint $(RegLastError) == 0
set DialinNBF = *($(DialinNBFList), 4)
endif
GetRegValue $(KeyParam), "DialinIP", DialinIPList
ifint $(RegLastError) == 0
set DialinIP = *($(DialinIPList), 4)
endif
GetRegValue $(KeyParam), "DialoutNBF", DialoutNBFList
ifint $(RegLastError) == 0
set DialoutNBF = *($(DialoutNBFList), 4)
endif
GetRegValue $(KeyParam), "DialoutIP", DialoutIPList
ifint $(RegLastError) == 0
set DialoutIP = *($(DialoutIPList), 4)
endif
GetRegValue $(KeyParam), "DialinoutIPX", DialinoutIPXList
ifint $(RegLastError) == 0
set DialinoutIPX = *($(DialinoutIPXList), 4)
endif
CloseRegKey $(KeyParam)
else
Debug-Output "UpgradeSelectedProtocols: error opening AsyncMac\Parameters key"
endif
set fDownLevel = FALSE
OpenRegKey $(!REG_H_LOCAL) "" $(RasProtocolName) $(!MAXIMUM_ALLOWED) RasProtocolKey
ifstr $(RasProtocolKey) == $(KeyNull)
; we are dealing with a NT3.1 system here
set fDownLevel = TRUE
OpenRegKey $(!REG_H_LOCAL) "" $(RasKeyName) $(!MAXIMUM_ALLOWED) RasKey
CreateRegKey $(RasKey) {"Protocols",0,GenericClass} "" $(!MAXIMUM_ALLOWED) "" RasProtocolKey
OpenRegKey $(RasKey) "" "Protocols" $(!MAXIMUM_ALLOWED) RasProtocolKey
CloseRegKey $(RasKey)
endif
ifstr $(RasProtocolKey) != $(KeyNull)
; The MultiLink value is new, if it is not set, then default it to 0 (disabled)
set MultilinkList = {}
GetRegValue $(RasProtocolKey), "Multilink", MultiLinkList
ifint $(RegLastError) != 0
Debug-Output "Upgradeselectedprotocols: defaulting Multilink to 0"
SetRegValue $(RasProtocolKey) {Multilink, 0, $(!REG_VT_DWORD), 0}
endif
; xxxSelected means for dial-out and xxxAllowed means for dial-in
set NetbeuiSelected = 0
set NetbeuiAllowed = 0
set TcpIpSelected = 0
set TcpIpAllowed = 0
set IpxSelected = 0
set IpxAllowed = 0
ifint $(DialoutNBF) != 0
set NetbeuiSelected = 1
endif
ifint $(GtwyEnabled) == 1
ifint $(DialinNBF) != 0
set NetbeuiAllowed = 1
endif
else
ifint $(DialoutNBF) != 0
set NetbeuiAllowed = 1
endif
endif
ifstr(i) $(fDownLevel) != TRUE
ifint $(DialoutIP) != 0
set TcpIpSelected = 1
endif
ifint $(DialinIP) != 0
set TcpIpAllowed = 1
endif
ifint $(DialinoutIPX) != 0
set IpxSelected = 1
set IpxAllowed = 1
endif
endif
set ItemList = {}
GetRegValue $(RasProtocolKey), "fNetbeuiSelected", ItemList
ifint $(RegLastError) != 0
SetRegValue $(RasProtocolKey) {fNetbeuiSelected, 0,+
$(!REG_VT_DWORD),$(NetbeuiSelected)}
endif
GetRegValue $(RasProtocolKey), "fTcpIpSelected", ItemList
ifint $(RegLastError) != 0
SetRegValue $(RasProtocolKey) {fTcpIpSelected, 0,+
$(!REG_VT_DWORD),$(TcpIpSelected)}
endif
GetRegValue $(RasProtocolKey), "fIpxSelected", ItemList
ifint $(RegLastError) != 0
SetRegValue $(RasProtocolKey) {fIpxSelected, 0,+
$(!REG_VT_DWORD),$(IpxSelected)}
endif
GetRegValue $(RasProtocolKey), "fNetbeuiAllowed", ItemList
ifint $(RegLastError) != 0
SetRegValue $(RasProtocolKey) {fNetbeuiAllowed, 0,+
$(!REG_VT_DWORD),$(NetbeuiAllowed)}
endif
GetRegValue $(RasProtocolKey), "fTcpIpAllowed", ItemList
ifint $(RegLastError) != 0
SetRegValue $(RasProtocolKey) {fTcpIpAllowed, 0,+
$(!REG_VT_DWORD),$(TcpIpAllowed)}
endif
GetRegValue $(RasProtocolKey), "fIpxAllowed", ItemList
ifint $(RegLastError) != 0
SetRegValue $(RasProtocolKey) {fIpxAllowed, 0,+
$(!REG_VT_DWORD),$(IpxAllowed)}
endif
OpenRegKey $(RasProtocolKey) "" "NBF" $(!MAXIMUM_ALLOWED) NbfKey
ifstr $(NbfKey) == $(KeyNull)
CreateRegKey $(RasProtocolKey) {"NBF",0,GenericClass} "" $(!MAXIMUM_ALLOWED) "" NbfKey
SetRegValue $(NbfKey) {NetBiosGatewayEnabled, 0,+
$(!REG_VT_DWORD),$(GtwyEnabled)}
CloseRegKey $(NbfKey)
endif
ifstr(i) $(fDownLevel) != TRUE
OpenRegKey $(RasProtocolKey) "" "IP" $(!MAXIMUM_ALLOWED) IpKey
ifstr $(IpKey) != $(KeyNull)
GetRegValue $(IpKey), "AllowNetworkAccess", ItemList
ifint $(RegLastError) != 0
SetRegValue $(IpKey) {AllowNetworkAccess, 0,+
$(!REG_VT_DWORD),$(GtwyEnabled)}
endif
CloseRegKey $(IpKey)
endif
OpenRegKey $(RasProtocolKey) "" "IPX" $(!MAXIMUM_ALLOWED) IpxKey
ifstr $(IpxKey) != $(KeyNull)
GetRegValue $(IpxKey), "AllowNetworkAccess", ItemList
ifint $(RegLastError) != 0
SetRegValue $(IpxKey) {AllowNetworkAccess, 0,+
$(!REG_VT_DWORD),$(GtwyEnabled)}
endif
CloseRegKey $(IpxKey)
endif
endif
; Now we need to update the encryption parameters.
; if it is a NT3.1 server, these values are new and are defaulted
; to MS encryption (2) and no data encryption (0).
; If it is a daytona server (beta1) the ForceEncryptedData param
; is new and is defaulted to 0, but the ForceEncryptedPassword
; needs to be properly mapped to the new values.
; If ForceEncryptedPassword = 0, then leave it as is.
; If ForceEncryptedPassword = 1, then map it to the new value of
; 2 for MS encryption.
; if this is a Daytona (beta2 and greater) then leave the values
; alone because the user could have configured them.
set ForceEncryptedPassword = 2
set ForceEncryptedData = 0
ifstr(i) $(fDownLevel) != TRUE
; if the ForceEncryptedData parameter is not present then this
; info needs to be upgraded.
GetRegValue $(RasProtocolKey), "ForceEncryptedData", DataList
ifint $(RegLastError) != 0
GetRegValue $(RasProtocolKey), "ForceEncryptedPassword", PasswdList
ifint $(RegLastError) == 0
set ForceEncryptedPassword = *($(PasswdList), 4)
; if previously the value was set to 1, map it to MS Encryption
ifint $(ForceEncryptedPassword) == 1
set ForceEncryptedPassword = 2
endif
endif
else
goto UpgradeSelectedProtocolsEnd
endif
endif
SetRegValue $(RasProtocolKey) {ForceEncryptedPassword, 0,+
$(!REG_VT_DWORD), $(ForceEncryptedPassword)}
SetRegValue $(RasProtocolKey) {ForceEncryptedData, 0,+
$(!REG_VT_DWORD), $(ForceEncryptedData)}
UpgradeSelectedProtocolsEnd =+
CloseRegKey $(RasProtocolKey)
set Status = STATUS_SUCCESSFUL
else
Debug-Output "UpgradeSelectedProtocols: error opening Ras\protocols key"
endif
Debug-Output "UpgradeSelectedProtocols exit."
return $(Status)
[SaveSelectedProtocols]
; save the user selected protocols in the SOFTWARE\Microsoft\RAS\Protocols
; key.
Debug-Output "SaveSelectedProtocols entry."
set Status = STATUS_FAILED
Set KeyNull = ""
ifstr(i) $($0) == TRUE
set NetbeuiSelected = 1
else
set NetbeuiSelected = 0
endif
ifstr(i) $($1) == TRUE
set TcpIpSelected = 1
else
set TcpIpSelected = 0
endif
ifstr(i) $($2) == TRUE
set IpxSelected = 1
else
set IpxSelected = 0
endif
ifstr(i) $($3) == TRUE
set NetbeuiAllowed = 1
else
set NetbeuiAllowed = 0
endif
ifstr(i) $($4) == TRUE
set TcpIpAllowed = 1
else
set TcpIpAllowed = 0
endif
ifstr(i) $($5) == TRUE
set IpxAllowed = 1
else
set IpxAllowed = 0
endif
set dwRouterType = $($6)
set RasKeyName = $(!NTN_SoftwareBase)"\Microsoft\Ras"
set RasProtocolName = $(!NTN_SoftwareBase)"\Microsoft\Ras\Protocols"
OpenRegKey $(!REG_H_LOCAL) "" $(RasProtocolName) $(!MAXIMUM_ALLOWED) RasProtocolKey
ifstr $(RasProtocolKey) == $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(RasKeyName) $(!MAXIMUM_ALLOWED) RasKey
CreateRegKey $(RasKey) {"Protocols",0,GenericClass} "" $(!MAXIMUM_ALLOWED) "" RasProtocolKey
OpenRegKey $(RasKey) "" "Protocols" $(!MAXIMUM_ALLOWED) RasProtocolKey
CloseRegKey $(RasKey)
endif
ifstr $(RasProtocolKey) != $(KeyNull)
SetRegValue $(RasProtocolKey) {fNetbeuiSelected, 0,+
$(!REG_VT_DWORD),$(NetbeuiSelected)}
SetRegValue $(RasProtocolKey) {fTcpIpSelected, 0,+
$(!REG_VT_DWORD),$(TcpIpSelected)}
SetRegValue $(RasProtocolKey) {fIpxSelected, 0,+
$(!REG_VT_DWORD),$(IpxSelected)}
SetRegValue $(RasProtocolKey) {fNetbeuiAllowed, 0,+
$(!REG_VT_DWORD),$(NetbeuiAllowed)}
SetRegValue $(RasProtocolKey) {fTcpIpAllowed, 0,+
$(!REG_VT_DWORD),$(TcpIpAllowed)}
SetRegValue $(RasProtocolKey) {fIpxAllowed, 0,+
$(!REG_VT_DWORD),$(IpxAllowed)}
SetRegValue $(RasProtocolKey) {RouterType, 0,+
$(!REG_VT_DWORD),$(dwRouterType)}
CloseRegKey $(RasProtocolKey)
set Status = STATUS_SUCCESSFUL
else
Debug-Output "error opening Ras\protocols key"
endif
Debug-Output "SaveSelectedProtocols exit."
return $(Status)
[QuerySelectedProtocols]
; get the user selected protocols in the SOFTWARE\Microsoft\RAS\Protocols
; key.
Debug-Output "QuerySelectedProtocols: entry"
set Status = STATUS_FAILED
Set KeyNull = ""
set fNetbeuiSelected = FALSE
set fTcpIpSelected = FALSE
set fIpxSelected = FALSE
set fNetbeuiAllowed = FALSE
set fTcpIpAllowed = FALSE
set fIpxAllowed = FALSE
set dwRouterType = 0
set NetbeuiSelected = {}
set TcpIpSelected = {}
set IpxSelected = {}
set NetbeuiAllowed = {}
set TcpIpAllowed = {}
set IpxAllowed = {}
set RouterType = {}
set RasKeyName = $(!NTN_SoftwareBase)"\Microsoft\Ras\Protocols"
OpenRegKey $(!REG_H_LOCAL) "" $(RasKeyName) $(!MAXIMUM_ALLOWED) RasKey
ifstr $(RasKey) != $(KeyNull)
GetRegValue $(RasKey), "fNetbeuiSelected", NetbeuiSelected
ifint *($(NetbeuiSelected), 4) == 1
set fNetbeuiSelected = TRUE
else
set fNetbeuiSelected = FALSE
endif
GetRegValue $(RasKey), "fTcpIpSelected", TcpIpSelected
ifint *($(TcpIpSelected), 4) == 1
set fTcpIpSelected = TRUE
else
set fTcpIpSelected = FALSE
endif
GetRegValue $(RasKey), "fIpxSelected", IpxSelected
ifint *($(IpxSelected), 4) == 1
set fIpxSelected = TRUE
else
set fIpxSelected = FALSE
endif
GetRegValue $(RasKey), "fNetbeuiAllowed", NetbeuiAllowed
ifint *($(NetbeuiAllowed), 4) == 1
set fNetbeuiAllowed = TRUE
else
set fNetbeuiAllowed = FALSE
endif
GetRegValue $(RasKey), "fTcpIpAllowed", TcpIpAllowed
ifint *($(TcpIpAllowed), 4) == 1
set fTcpIpAllowed = TRUE
else
set fTcpIpAllowed = FALSE
endif
GetRegValue $(RasKey), "fIpxAllowed", IpxAllowed
ifint *($(IpxAllowed), 4) == 1
set fIpxAllowed = TRUE
else
set fIpxAllowed = FALSE
endif
GetRegValue $(RasKey), "RouterType", RouterType
set dwRouterType = *($(RouterType), 4)
CloseRegKey $(RasKey)
set Status = STATUS_SUCCESSFUL
else
Debug-Output "error opening Ras\protocols key"
endif
Debug-Output "QuerySelectedProtocols: NbfSelected="$(fNetbeuiSelected)+
" TcpSelected="$(fTcpIpSelected)" IpxSelected="$(fIpxSelected)+
" NbfAllowed="$(fNetbeuiAllowed)" TcpAllowed="$(fTcpIpAllowed)+
" IpxAllowed="$(fIpxAllowed)" dwRouterType="$(dwRouterType)
Debug-Output "QuerySelectedProtocols: exit"
return $(Status) $(fNetbeuiSelected) $(fTcpIpSelected) $(fIpxSelected) +
$(fNetbeuiAllowed) $(fTcpIpAllowed) $(fIpxAllowed) $(dwRouterType)
[UpdateSelectedProtocols]
; updates the user selected protocol list based on what protocols have been
; recently removed. This routine is called during the review bindings time.
Debug-Output "UpdateSelectedProtocols: entry"
set Status = STATUS_FAILED
set fNetbeuiChosen = FALSE
set fTcpIpChosen = FALSE
set fIpxChosen = FALSE
set dwRouterType = 0
Shell "" QuerySelectedProtocols
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling QuerySelectedProtocols."
goto UpdateSelectedProtocolsEnd
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by QuerySelectedProtocols."
goto UpdateSelectedProtocolsEnd
endif
set fNetbeuiSelected = $($R1)
set fTcpIpSelected = $($R2)
set fIpxSelected = $($R3)
set fNetbeuiAllowed = $($R4)
set fTcpIpAllowed = $($R5)
set fIpxAllowed = $($R6)
set dwRouterType = $($R7)
Debug-Output "UpdateSelectedProtocols: Selected protocols NBF IP IPX "$(fNetbeuiSelected)" "$(fTcpIpSelected)" "$(fIpxSelected)
shell "" QueryInstalledProtocols
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling QueryInstalledProtocols."
goto UpdateSelectedProtocolsEnd
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by QueryInstalledProtocols."
goto UpdateSelectedProtocolsEnd
endif
set fNetbeuiInstalled = $($R1)
set fTcpIpInstalled = $($R2)
set fIpxInstalled = $($R3)
Debug-Output "UpdateSelectedProtocols: Installed Protocols NBF IP IPX "$(fNetbeuiInstalled)" "$(fTcpIpInstalled)" "$(fIpxInstalled)
set fNetbeuiSelectedNew = $(fNetbeuiSelected)
set fTcpIpSelectedNew = $(fTcpIpSelected)
set fIpxSelectedNew = $(fIpxSelected)
set fNetbeuiAllowedNew = $(fNetbeuiAllowed)
set fTcpIpAllowedNew = $(fTcpIpAllowed)
set fIpxAllowedNew = $(fIpxAllowed)
; the protocols are chosen for either dialout or dialin.
; let us just 'OR' the values to determine which protocols are relevant
ifstr(i) $(fNetbeuiSelectedNew) == TRUE
set fNetbeuiChosen = TRUE
else
set fNetbeuiChosen = $(fNetbeuiAllowedNew)
endif
ifstr(i) $(fTcpIpSelectedNew) == TRUE
set fTcpIpChosen = TRUE
else
set fTcpIpChosen = $(fTcpIpAllowedNew)
endif
ifstr(i) $(fIpxSelectedNew) == TRUE
set fIpxChosen = TRUE
else
set fIpxChosen = $(fIpxAllowedNew)
endif
ifstr(i) $(fNetbeuiInstalled) == FALSE
set fNetbeuiSelectedNew = FALSE
set fNetbeuiAllowedNew = FALSE
endif
ifstr(i) $(fTcpIpInstalled) == FALSE
set fTcpIpSelectedNew = FALSE
set fTcpIpAllowedNew = FALSE
endif
ifstr(i) $(fIpxInstalled) == FALSE
set fIpxSelectedNew = FALSE
set fIpxAllowedNew = FALSE
endif
ifstr(i) $(fNetbeuiSelectedNew) == $(fNetbeuiSelected)
ifstr(i) $(fTcpIpSelectedNew) == $(fTcpIpSelected)
ifstr(i) $(fIpxSelectedNew) == $(fIpxSelected)
ifstr(i) $(fNetbeuiAllowedNew) == $(fNetbeuiAllowed)
ifstr(i) $(fTcpIpAllowedNew) == $(fTcpIpAllowed)
ifstr(i) $(fIpxAllowedNew) == $(fIpxAllowed)
set Status = STATUS_SUCCESSFUL
Debug-Output "UpdateSelectedProtocols: Nothing changed"
goto UpdateSelectedProtocolsEnd
endif
endif
endif
endif
endif
endif
Shell "" SaveSelectedProtocols $(fNetbeuiSelectedNew) $(fTcpIpSelectedNew) +
$(fIpxSelectedNew) $(fNetbeuiAllowedNew) +
$(fTcpIpAllowedNew) $(fIpxAllowedNew) $(dwRouterType)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling SaveSelectedProtocols."
goto UpdateSelectedProtocolsEnd
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by SaveSelectedProtocols."
goto UpdateSelectedProtocolsEnd
endif
; the protocols are chosen for either dialout or dialin.
; let us just 'OR' the values to determine which protocols are relevant
ifstr(i) $(fNetbeuiSelectedNew) == TRUE
set fNetbeuiChosen = TRUE
else
set fNetbeuiChosen = $(fNetbeuiAllowedNew)
endif
ifstr(i) $(fTcpIpSelectedNew) == TRUE
set fTcpIpChosen = TRUE
else
set fTcpIpChosen = $(fTcpIpAllowedNew)
endif
ifstr(i) $(fIpxSelectedNew) == TRUE
set fIpxChosen = TRUE
else
set fIpxChosen = $(fIpxAllowedNew)
endif
Shell "" UpdateNetCardInfo $(fNetbeuiChosen) $(fTcpIpChosen) +
$(fIpxChosen)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling UpdateNetCardInfo."
goto UpdateSelectedProtocolsEnd
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by UpdateNetCardInfo."
goto UpdateSelectedProtocolsEnd
endif
set Status = STATUS_SUCCESSFUL
; remove the services we installed, if we discover that tcp/ip or ipx are
; not selected any more.
ifstr(i) $(fNetbeuiAllowedNew) == FALSE
Debug-Output "UpdateSelectedProtocols: Removing RemoteAccess NBF dependency"
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\RemoteAccess\Parameters" $(!MAXIMUM_ALLOWED) KeyParams
ifstr $(KeyParams) != ""
SetRegValue $(KeyParams) {NetBiosGatewayEnabled, 0,+
$(!REG_VT_DWORD), 0 }
CloseRegKey $(KeyParams)
endif
Shell "" RemoveServiceDependency "RemoteAccess" "NBF"
endif
ifstr(i) $(fTcpIpChosen) == FALSE
Debug-Output "UpdateSelectedProtocols: Removing RasArp service"
shell "" RemoveRasArpService
endif
ifstr(i) $(fIpxAllowedNew) == FALSE
Debug-Output "UpdateSelectedProtocols: Removing IPX router and SAP"
shell "" RemoveNwlnkRipService
shell "" RemoveIsnSapService
Shell "" RemoveServiceDependency "RemoteAccess" "NWLNKIPX"
ifstr(i) $($R0) == STATUS_FAILED
Debug-Output "UpdateSelectedProtocols: error removing service dependency of RemoteAccess on NWLNKIPX"
endif
endif
UpdateSelectedProtocolsEnd = +
Debug-Output "UpdateSelectedProtocols: exit"
return $(Status) $(fNetbeuiChosen) $(fTcpIpChosen) $(fIpxChosen) $(dwRouterType)
[UpgradeIsdnInfo]
; upgrade the ISDN info from the NT3.1 format to the TAPI DEVICES format
; NOTE that this routine is not generic, but assumes that PCIMAC was the
; the only ISDN device installed for NT3.1. This assumption is valid.
; First check to see if SOFTWARE\Microsoft\RAS\Medias\ISDN key exists.
; if it does, then map this information to ...RAS\TAPI DEVICES format.
Debug-Output "UpgradeIsdnInfo entry."
set Status = STATUS_FAILED
Set KeyNull = ""
set RasKeyName = $(!NTN_SoftwareBase)"\Microsoft\Ras"
set TapiName = $(!NTN_SoftwareBase)"\Microsoft\Ras\Tapi Devices"
set RasIsdnName = $(!NTN_SoftwareBase)"\Microsoft\Ras\MEDIA\ISDN"
set RasManParamName = $(!NTN_ServiceBase)"\RasMan\Parameters"
set PcimacName = "HARDWARE\DEVICEMAP\TAPI DEVICES\PCIMAC"
; Check if we are dealing with a NT3.1 system by checking to see if the
; RAS\MEDIAS\ISDN key is present and if ISDN ports are actually configured
; by enumerating the RAS\MEDIAS\ISDN key.
set KeyIsdn = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(RasIsdnName) $(!MAXIMUM_ALLOWED) KeyIsdn
ifstr $(KeyIsdn) != $(KeyNull)
EnumRegKey $(KeyIsdn) PortList
ifint $(RegLastError) != 0
Debug-Output "UpgradeIsdnInfo: error enumerating MEDIAS\ISDN key."
CloseRegKey $(KeyIsdn)
set Status = STATUS_SUCCESSFUL
goto UpgradeIsdnInfoEnd
endif
QueryListSize IsdnPorts $(PortList)
ifint $(IsdnPorts) == 0
; no configured ISDN ports, just return success
set Status = STATUS_SUCCESSFUL
CloseRegKey $(KeyIsdn)
goto UpgradeIsdnInfoEnd
endif
set MediaType = "ISDN"
set Addresses = {}
OpenRegKey $(!REG_H_LOCAL) "" $(PcimacName) +
$(!MAXIMUM_ALLOWED) KeyPcimac
ifstr $(KeyPcimac) != $(KeyNull)
GetRegValue $(KeyPcimac), "Address", AddressList
ifint $(RegLastError) == 0
set Addresses = *($(AddressList), 4)
endif
GetRegValue $(KeyPcimac), "Media Type", MediaValue
ifint $(RegLastError) == 0
set MediaType = *($(MediaValue), 4)
endif
CloseRegKey $(KeyPcimac)
else
Debug-Output "UpgradeIsdnInfo: error opening DEVICEMAP\TAPI DEVICES\PCIMAC key."
CloseRegKey $(KeyIsdn)
goto UpgradeIsdnInfoEnd
endif
set AddressList = {}
set NameList = {}
set UsageList = {}
set index = 1
forlistdo $(PortList)
set Address = *($(Addresses), $(index))
set-add index = $(index) , 1
set AddressList = >($(AddressList), $(Address))
set PortName = *($($), 1)
set NameList = >($(NameList), Pcimac$(PortName))
OpenRegKey $(KeyIsdn) "" $(PortName) $(!MAXIMUM_ALLOWED) KeyPort
ifstr $(KeyPort) != $(KeyNull)
GetRegValue $(KeyPcimac), "Usage", UsageValue
ifint $(RegLastError) == 0
set Usage = *($(UsageValue), 4)
set UsageList = >($(UsageList), $(Usage))
else
Debug-Output "UpgradeIsdnInfo: error reading usage "$(PortName)
set UsageList = >($(UsageList), "Client")
endif
CloseRegKey $(KeyPort)
else
Debug-Output "UpgradeIsdnInfo: error opening key "$(PortName)
set UsageList = >($(UsageList), "Client")
endif
endforlistdo
set KeyTapi = $(KeyNull)
CreateRegKey $(!REG_H_LOCAL) +
{$(TapiName),$(NoTitle),GenericClass} +
"" $(!MAXIMUM_ALLOWED) "" KeyTapi
ifstr $(KeyTapi) != $(KeyNull)
CreateRegKey $(KeyTapi) +
{"Pcimac" ,$(NoTitle),GenericClass} +
"" $(!MAXIMUM_ALLOWED) "" KeyPcimac
ifstr $(KeyPcimac) != $(KeyNull)
Debug-Output "UpgradeIsdnInfo: MediaType "$(MediaType)
Debug-Output "UpgradeIsdnInfo: Addresses "$(AddressList)
Debug-Output "UpgradeIsdnInfo: Names "$(NameList)
Debug-Output "UpgradeIsdnInfo: Usage "$(UsageList)
SetRegValue $(KeyPcimac) {"Media Type", 0, +
$(!REG_VT_SZ),$(MediaType)}
SetRegValue $(KeyPcimac) {"Address", 0, +
$(!REG_VT_MULTI_SZ),$(AddressList)}
SetRegValue $(KeyPcimac) {"Friendly Name", 0, +
$(!REG_VT_MULTI_SZ),$(NameList)}
SetRegValue $(KeyPcimac) {"Usage", 0, +
$(!REG_VT_MULTI_SZ),$(UsageList)}
CloseRegKey $(KeyPcimac)
else
Debug-Output "UpgradeIsdnInfo: error creating RAS\TAPI DEVICES\Pcimac key"
endif
else
Debug-Output "UpgradeIsdnInfo: error creating RAS\TAPI DEVICES key"
endif
CloseRegKey $(KeyIsdn)
; now blow away the RAS\Media key because we don't need it any more.
OpenRegKey $(!REG_H_LOCAL) "" $(RasKeyName) +
$(!MAXIMUM_ALLOWED) KeyRas
ifstr $(KeyRas) != $(KeyNull)
DeleteRegTree $(KeyRas) "Media"
CloseRegKey $(KeyRas)
endif
; now modify the Medias parameter in Services\Rasman to contain
; rasser (if serial ports are configured) and
; rastapi (for the new tapi devices configured)
set KeyRasman = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(RasManParamName) +
$(!MAXIMUM_ALLOWED) KeyRasman
ifstr $(KeyRasman) != $(KeyNull)
GetRegValue $(KeyRasman), "Medias", MediaList
ifint $(RegLastError) == 0
set Medias = *($(MediaList), 4)
else
Debug-Output "UpgradeIsdnInfo: error reading Medias value "
endif
set NewMedias = {}
forlistdo $(Medias)
ifstr(i) $($) != "ISDN"
set NewMedias = >($(NewMedias), $($))
endif
endforlistdo
set NewMedias = >($(NewMedias), "rastapi")
Debug-Output "UpgradeIsdnInfo: NewMedias "$(NewMedias)
SetRegValue $(KeyRasman) {"Medias", 0, +
$(!REG_VT_MULTI_SZ),$(NewMedias)}
CloseRegKey $(KeyRasman)
else
Debug-Output "UpgradeIsdnInfo: error opening Services\Rasman\Parameters key"
goto UpgradeIsdnInfoEnd
endif
set Status = STATUS_SUCCESSFUL
else
set Status = STATUS_SUCCESSFUL
endif
UpgradeIsdnInfoEnd = +
Debug-Output "UpgradeIsdnInfo exit."
return $(Status)
[UpdateNetCardInfo]
; Remove the netcards and NdisWan adapter corresponding to the removed protocol
; and update the list of adapters in services\asyncmac\parameters
Debug-Output "UpdateNetCardInfo: entry"
set Status = STATUS_FAILED
Set KeyNull = ""
set fNetbeuiChosen = $($0)
set fTcpIpChosen = $($1)
set fIpxChosen = $($2)
set RasAsyMacParamKeyName = $(!NTN_ServiceBase)"\AsyncMac\Parameters"
OpenRegKey $(!REG_H_LOCAL) "" $(!NetworkCardKeyName) $(!MAXIMUM_ALLOWED) KeyNetcards
ifstr $(KeyNetcards) == $(KeyNull)
Debug-Output "UpdateNetCardInfo: could not open Netcards key"
goto UpdateNetCardInfoEnd
endif
EnumRegKey $(KeyNetcards) NetcardsList
set RemoveList = {}
ForListDo $(NetcardsList)
set KeyName = *($($),1)
OpenRegKey $(KeyNetcards) "" $(KeyName) $(!MAXIMUM_ALLOWED) Card
ifstr $(Card) == $(KeyNull)
Debug-Output "OEMNSVRA.INF: could not open netcard key"
CloseRegKey $(KeyNetcards)
goto UpdateNetCardInfoEnd
endif
GetRegValue $(Card), "ProductName" ProductNameInfo
set CardProductName = *($(ProductNameInfo), 4)
ifstr(i) $(fNetbeuiChosen) == FALSE
ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINName)
set RemoveList = >($(RemoveList), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALOUTName)
set RemoveList = >($(RemoveList), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
endif
endif
ifstr(i) $(fTcpIpChosen) == FALSE
ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINIPName)
set RemoveList = >($(RemoveList), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
else-ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALOUTIPName)
set RemoveList = >($(RemoveList), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
endif
endif
ifstr(i) $(fIpxChosen) == FALSE
ifstr(i) $(CardProductName) == $(!ProductNDISWANDIALINOUTIPXName)
set RemoveList = >($(RemoveList), +
{$(!ProductNDISWANName),+
$(!NetworkCardKeyName)"\"$(KeyName)})
endif
endif
CloseRegKey $(Card)
EndForListDo
CloseRegKey $(KeyNetcards)
QueryListSize NetCards $(RemoveList)
ifint $(NetCards) != 0
ForListDo $(RemoveList)
debug-output "Removing hardware component: "$($)
Shell "utility.inf", RemoveHardwareComponent, +
$(!Manufacturer), *($($),1), *($($),2)
EndForListDo
endif
; now update the asyncmac info
OpenRegKey $(!REG_H_LOCAL) "" $(RasAsyMacParamKeyName) $(!MAXIMUM_ALLOWED) KeyMacParams
ifstr $(KeyMacParams) == $(KeyNull)
Debug-Output "UpdateNetCardInfo: could not open AsyncMac Params key"
goto UpdateNetCardInfoEnd
endif
set NewValueList = {}
ifstr(i) $(fNetbeuiChosen) == FALSE
set NewValueList = >($(NewValueList), +
{DialinNBF, $(NoTitle), $(!REG_VT_DWORD), 0})
set NewValueList = >($(NewValueList), +
{DialoutNBF, $(NoTitle), $(!REG_VT_DWORD), 0})
endif
ifstr(i) $(fTcpIpChosen) == FALSE
set NewValueList = >($(NewValueList), +
{DialinIP, $(NoTitle), $(!REG_VT_DWORD), 0 })
set NewValueList = >($(NewValueList), +
{DialoutIP, $(NoTitle), $(!REG_VT_DWORD), 0 })
endif
ifstr(i) $(fIpxChosen) == FALSE
set NewValueList = >($(NewValueList), +
{DialinoutIPX, $(NoTitle), $(!REG_VT_DWORD), 0})
endif
Shell "utility.inf", AddValueList, $(KeyMacParams), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "UpdateNetCardInfo:AddValueList bombed out"
goto UpdateNetCardInfoEnd
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(KeyMacParams)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
goto UpdateNetCardInfoEnd
endif
set Status = STATUS_SUCCESSFUL
UpdateNetCardInfoEnd =+
Debug-Output "UpdateNetcardInfo: Exit"
return $(Status)
[UpdateNdisWanInfo]
; Update NdisWan netrules to reflect the new protocols (IP/IPX) support
; Also add new block rules to NdisWan dialin/dialout adapters in the
; Microsoft\Windows NT\CurrentVersion\NetworkCards key
; Also modify RasMan\Linkage\OtherDependencies from RasHub to NdisWan.
; This routine is invoked during Upgrade of RAS
Debug-Output "UpdateNdisWanNetInfo: entry"
set Status = STATUS_FAILED
Set KeyNull = ""
set NdisWanName = $(!NTN_SoftwareBase)"\Microsoft\NdisWan\CurrentVersion"
set NdisWanRulesName = $(!NTN_SoftwareBase)"\Microsoft\NdisWan\CurrentVersion\NetRules"
set NdisWanSvcName = $(!NTN_ServiceBase)"\NdisWan"
set RasManLinkageName = $(!NTN_ServiceBase)"\RasMan\Linkage"
; first rename all RasHub to NdisWan in the software section
OpenRegKey $(!REG_H_LOCAL) "" $(NdisWanName) $(!MAXIMUM_ALLOWED) KeyNdisWan
ifstr $(KeyNdisWan) != $(KeyNull)
SetRegValue $(KeyNdisWan) {Description, 0, +
$(!REG_VT_SZ),$(!ProductNDISWANDescription)}
SetRegValue $(KeyNdisWan) {PathName, 0, +
$(!REG_VT_SZ),$(!ProductNDISWANImagePath)}
SetRegValue $(KeyNdisWan) {ServiceName, 0, +
$(!REG_VT_SZ),$(!ProductNDISWANName)}
SetRegValue $(KeyNdisWan) {Title, 0, +
$(!REG_VT_SZ),$(!ProductNDISWANTitle)}
CloseRegKey $(KeyNdisWan)
else
Debug-Output "UpdateNdisWanInfo: could not open NdisWan key"
endif
; now change the net rules
OpenRegKey $(!REG_H_LOCAL) "" $(NdisWanRulesName) $(!MAXIMUM_ALLOWED) KeyRules
ifstr $(KeyRules) != $(KeyNull)
SetRegValue $(KeyRules) {bindable, 0, +
$(!REG_VT_MULTI_SZ),$(!NetRuleNDISWANBindable)}
SetRegValue $(KeyRules) {bindform, 0, +
$(!REG_VT_SZ),$(!NetRuleNDISWANBindForm)}
SetRegValue $(KeyRules) {class, 0, +
$(!REG_VT_MULTI_SZ),$(!NetRuleNDISWANClass)}
SetRegValue $(KeyRules) {type, 0, +
$(!REG_VT_SZ),$(!NetRuleNDISWANType)}
;Modified on 9/24/96 by Ramc - changed NDISWAN to ROUTING
SetRegValue $(KeyRules) {InfOption, 0, +
$(!REG_VT_SZ), "RAS"}
CloseRegKey $(KeyRules)
else
Debug-Output "UpdateNdisWanInfo: could not open NdisWan NetRules key"
endif
; finally update the DisplayName and ImagePath in the services area
; also set the start type to autostart and change the group to
; NDISWAN & remove all dependencies because NdisWan doesn't need them
; anymore.
OpenRegKey $(!REG_H_LOCAL) "" $(NdisWanSvcName) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != $(KeyNull)
SetRegValue $(KeyService) {DisplayName, 0, +
$(!REG_VT_SZ),$(!ProductNDISWANDisplayName)}
SetRegValue $(KeyService) {ImagePath, 0, +
$(!REG_VT_EXPAND_SZ),$(!ProductNDISWANImagePath)}
SetRegValue $(KeyService) {Start, 0, $(!REG_VT_DWORD),2}
SetRegValue $(KeyService) {Group, 0, $(!REG_VT_SZ), "NDISWAN"}
DeleteRegValue $(KeyService) "DependOnService"
DeleteRegValue $(KeyService) "DependOnGroup"
OpenRegKey $(KeyService) "" "Linkage" $(!MAXIMUM_ALLOWED) KeyLinkage
ifstr $(KeyLinkage) != $(KeyNull)
DeleteRegValue $(KeyLinkage) "OtherDependencies"
CloseRegKey $(KeyLinkage)
endif
CloseRegKey $(KeyService)
else
Debug-Output "UpdateNdisWanInfo: could not open NdisWan services key"
endif
;; ; now set the RasMan\Linkage\OtherDependencies from RasHub to nothing
;; ; because NdisWan will autostart.
;; DON't just set OtherDependencies to nothing, instead use RemoveServiceDependency routine
;; to do the right thing, because some other dependency could be present.
Shell "" RemoveServiceDependency "RasMan" "RasHub"
set Status = STATUS_SUCCESSFUL
UpdateNdisWanInfoEnd =+
Debug-Output "UpdateNdisWanInfo: Exit"
return $(Status)
[UpdateAsyncMacNetRules]
; Update AsyncMac netrules to prevent blood hound from binding to asyncmac -
; this support was added for NT 3.5 beta
Debug-Output "UpdateAsyncMacNetRules: entry"
set Status = STATUS_FAILED
Set KeyNull = ""
set AsyncMacRulesName = $(!NTN_SoftwareBase)"\Microsoft\AsyncMac\CurrentVersion\NetRules"
OpenRegKey $(!REG_H_LOCAL) "" $(AsyncMacRulesName) $(!MAXIMUM_ALLOWED) KeyRules
ifstr $(KeyRules) != $(KeyNull)
set Status = STATUS_SUCCESSFUL
SetRegValue $(KeyRules) {bindable, 0, +
$(!REG_VT_MULTI_SZ),$(!NetRuleRASASYMACBindable)}
CloseRegKey $(KeyRules)
else
Debug-Output "UpdateAsyncMacNetRules: could not open NdisWan NetRules key"
endif
Debug-Output "UpdateAsyncMacNetRules: Exit"
return $(Status)
[UpdateAsyncMacParameters]
; If DialinNBF and DialoutNBF don't already exist in
; Services\AsyncMac\Parameters, then add these values setting them equal
; to Dialin and Dialout ports, respectively. While at it, delete the
; Dialin and Dialout keys as well.
; This routine is invoked during upgrade of RAS
Debug-Output "UpdateAsyncMacParameters: entry"
set Status = STATUS_SUCCESSFUL
Set KeyNull = ""
set RasAsyMacParamKeyName = $(!NTN_ServiceBase)"\AsyncMac\Parameters"
OpenRegKey $(!REG_H_LOCAL) "" $(RasAsyMacParamKeyName) $(!MAXIMUM_ALLOWED) KeyMacParams
ifstr $(KeyMacParams) != $(KeyNull)
GetRegValue $(KeyMacParams), "DialinNBF" DialinNBFInfo
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
; no DialinNBF variable
GetRegValue $(KeyMacParams), "Dialin" DialinNBFInfo
set PrevNumDialinNBF = *($(DialinNBFInfo), 4)
SetRegValue $(KeyMacParams) {DialinNBF, 0, +
$(!REG_VT_DWORD),$(PrevNumDialinNBF)}
; delete the old key if we succefully added the new key
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Debug-Output "UpdateAsyncMacParameters: deleting dialin key"
DeleteRegValue $(KeyMacParams) "Dialin"
endif
endif
GetRegValue $(KeyMacParams), "DialoutNBF" DialoutNBFInfo
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
; no DialoutNBF variable
GetRegValue $(KeyMacParams), "Dialout" DialoutNBFInfo
set PrevNumDialoutNBF = *($(DialoutNBFInfo), 4)
SetRegValue $(KeyMacParams) {DialoutNBF, 0, +
$(!REG_VT_DWORD),$(PrevNumDialoutNBF)}
; delete the old key if we succefully added the new key
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Debug-Output "UpdateAsyncMacParameters: deleting dialout key"
DeleteRegValue $(KeyMacParams) "Dialout"
endif
endif
CloseRegKey $(KeyMacParams)
else
Debug-Output "OEMNSVRA.INF: could not open AsyncMac Params key"
endif
Debug-Output "UpdateAsyncMacParameters: Exit"
return $(Status)
[UpdateAsyncMacStartType]
; change the AsyncMac start type from KernelAuto to KernelAutoStart
Debug-Output "UpdateAsyncMacStartType: entry"
set Status = STATUS_SUCCESSFUL
Set KeyNull = ""
set RasAsyMacKeyName = $(!NTN_ServiceBase)"\AsyncMac"
OpenRegKey $(!REG_H_LOCAL) "" $(RasAsyMacKeyName) $(!MAXIMUM_ALLOWED) KeyMac
ifstr $(KeyMac) != $(KeyNull)
GetRegValue $(KeyMac), "Start" StartValue
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
set Start = *($(StartValue), 4)
ifint $(Start) == 3
set Start = 2
SetRegValue $(KeyMac) {Start, 0, $(!REG_VT_DWORD), $(Start)}
endif
endif
CloseRegKey $(KeyMac)
else
Debug-Output "OEMNSVRA.INF: could not open AsyncMac key"
endif
Debug-Output "UpdateAsyncMacStartType: Exit"
return $(Status)
[UpdatePerfmonInfo]
; add the performance key to Services\RemoteAccess key and load the perf
; counters to the registry
; this routine is invoked during ras upgrade
Debug-Output "UpdatePerfmonInfo: entry"
set Status = STATUS_FAILED
Set KeyNull = ""
set RemoteAccessService = $(!NTN_ServiceBase)"\RemoteAccess"
OpenRegKey $(!REG_H_LOCAL) "" $(RemoteAccessService) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != $(KeyNull)
Shell "" UpdatePerfmonInfoHelper $(KeyService)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "error shelling UpdatePerfmonInfoHelper."
goto UpdatePerfmonInfoEnd
endif
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "error returned by UpdatePerfmonInfo."
goto UpdatePerfmonInfoEnd
endif
CloseRegKey $(KeyService)
set Status = STATUS_SUCCESSFUL
else
Debug-Output "UpdatePerfmonInfo: error opening RemoteAccess service key"
endif
UpdatePerfmonInfoEnd =+
Debug-Output "UpdatePerfmonInfo: Exit"
return $(Status)
[UpdatePerfmonInfoHelper]
; helper routine used by UpdatePerfmonInfo routine. This routine creates
; the performance key if it doesn't exist, and adds the performance parameters.
; It also loads the perf counters to the registry.
; the first parameter is the service key
Debug-Output "UpdatePerfmonInfoHelper: entry"
set Status = STATUS_FAILED
Set KeyNull = ""
set ServiceKey = $($0)
set KeyPerformance = $(KeyNull)
OpenRegKey $(ServiceKey) "" $(!RasPerfKeyName) $(!MAXIMUM_ALLOWED) KeyPerformance
ifstr $(KeyPerformance) == $(KeyNull)
CreateRegKey $(ServiceKey) {$(!RasPerfKeyName),$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" KeyPerformance
OpenRegKey $(ServiceKey) "" $(!RasPerfKeyName) $(!MAXIMUM_ALLOWED) KeyPerformance
ifstr $(KeyPerformance) == $(KeyNull)
Debug-Output "Error creating Performance key"
goto UpdatePerfmonInfoHelperEnd
endif
endif
set NewValueList = +
{{Library ,$(NoTitle),$(!REG_VT_SZ),$(!RasPerfLibraryName)},+
{Open, $(NoTitle),$(!REG_VT_SZ),$(!RasPerfOpenFunction)},+
{Close, $(NoTitle),$(!REG_VT_SZ),$(!RasPerfCloseFunction)},+
{Collect, $(NoTitle),$(!REG_VT_SZ),$(!RasPerfCollectFunction)}}
Shell "Utility.Inf", AddValueList, $(KeyPerformance), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "UpdatePerfmonInfoHelper: error shelling AddValueList"
goto UpdatePerfmonInfoHelperEnd
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
Debug-Output "UpdatePerfmonInfoHelper: AddValueList bombed out"
goto UpdatePerfmonInfoHelperEnd
endif
CloseRegKey $(KeyPerformance)
set Status = STATUS_SUCCESSFUL
UpdatePerfmonInfoHelperEnd =+
Debug-Output "UpdatePerfmonInfoHelper: Exit"
return $(Status)
[RenameRasHubToNdisWan]
; Rename all occurences of RasHub to NdisWan at
; SOFTWARE\Microsoft\WindowsNT\CurrentVersion\NetworkCards
; for upgrading to NT3.5.
; Also, rename some of the RasHub references in Software\Microsoft\NdisWan
; as well as in the services area of the registry.
;
Debug-Output "RenameRasHubToNdisWan: entry"
set Status = STATUS_FAILED
Set KeyNull = ""
OpenRegKey $(!REG_H_LOCAL) "" $(!NetworkCardKeyName) $(!MAXIMUM_ALLOWED) KeyNetcards
ifstr $(KeyNetcards) == $(KeyNull)
Debug-Output "RenameRasHubToNdisWan: could not open Netcards key"
goto RenameRasHubToNdisWanEnd
endif
EnumRegKey $(KeyNetcards) NetcardsList
ForListDo $(NetcardsList)
set KeyName = *($($),1)
OpenRegKey $(KeyNetcards) "" $(KeyName) $(!MAXIMUM_ALLOWED) Card
ifstr $(Card) == $(KeyNull)
Debug-Output "RenameRasHubToNdisWan: could not open netcard key"
CloseRegKey $(KeyNetcards)
goto RenameRasHubToNdisWanEnd
endif
GetRegValue $(Card), "ProductName" ProductNameInfo
set CardProductName = *($(ProductNameInfo), 4)
ifstr(i) $(CardProductName) == $(!ProductRASHUBDIALINName)
set ThisOption = DIALIN
else-ifstr(i) $(CardProductName) == $(!ProductRASHUBDIALOUTName)
set ThisOption = DIALOUT
else-ifstr(i) $(CardProductName) == $(!ProductRASHUBDIALINIPName)
set ThisOption = DIALINIP
else-ifstr(i) $(CardProductName) == $(!ProductRASHUBDIALOUTIPName)
set ThisOption = DIALOUTIP
else-ifstr(i) $(CardProductName) == $(!ProductRASHUBDIALINOUTIPXName)
set ThisOption = DIALINOUTIPX
else
goto endloop
endif
SetRegValue $(Card) {ProductName, 0, +
$(!REG_VT_SZ),$(!ProductNDISWAN$(ThisOption)Name)}
SetRegValue $(Card) {Description, 0, +
$(!REG_VT_SZ),$(!ProductNDISWANDescription)}
SetRegValue $(Card) {ServiceName, 0, $(!REG_VT_SZ), +
$(!ProductNDISWANName)$(KeyName)}
SetRegValue $(Card) {Title, 0, $(!REG_VT_SZ),+
"["$(KeyName)"] "$(!ProductNDISWANTitle)}
OpenRegKey $(Card) "" "NetRules" $(!MAXIMUM_ALLOWED) NetRules
ifstr $(NetRules) == $(KeyNull)
CloseRegKey $(KeyNetCards)
CloseRegKey $(Card)
Debug-Output "RenameRasHubToNdisWan: could not open "$(KeyName)"\NetRules key"
goto RenameRasHubToNdisWanEnd
Endif
;Modified on 9/24/96 by Ramc - changed NDISWAN to ROUTING
SetRegValue $(NetRules) {InfOption, 0, +
$(!REG_VT_SZ), "RAS"}
SetRegValue $(NetRules) {block, 0, +
$(!REG_VT_MULTI_SZ),$(!NetRuleHardware$(ThisOption)Block)}
SetRegValue $(NetRules) {class, 0, +
$(!REG_VT_MULTI_SZ),$(!NetRuleHardware$(ThisOption)Class)}
SetRegValue $(NetRules) {type, 0, +
$(!REG_VT_SZ),$(!NetRuleHardware$(ThisOption)Type)}
Set TempProdName = """"$(!ProductNDISWANName)$(KeyName)""""
Set TempBindForm = $(TempProdName)$(!NetRuleHardwareNDISWANBindForm)
SetRegValue $(NetRules) {bindform, 0, $(!REG_VT_SZ),$(TempBindForm)}
CloseRegKey $(NetRules)
endloop=+
CloseRegKey $(Card)
EndForListDo
CloseRegKey $(KeyNetcards)
set Status = STATUS_SUCCESSFUL
RenameRasHubToNdisWanEnd =+
Debug-Output "RenameRasHubToNdisWan: Exit"
return $(Status)
[UpgradeIpxInfo]
; This routine is invoked during upgrade.
; If RAS is configured for NWLNKIPX, then rename the IPXROUTER
; key to NWLNKRIP and rename occurances of isnrip.sys to nwlnkrip.sys.
; Change the RemoteAccess service dependency to depend on NWLNKRIP service.
; Add the NwlnkRip\Parameters\UseRef key to indicate RAS is using the service.
; If SAP agent was installed by RAS, remove and install
; the service by shelling the OEMNSVSA.INF file so that SAP
; agent can be shared by NCP server.
; Also if NWLNRIP service was installed by RAS, reinstall it using the
; common installer.
; And add some parameters to Services\NwlnkIpx\Parameters.
Debug-Output "UpgradeIpxInfo: entry"
set PORTSDLGHANDLE = $($0)
set RasProtocolsName = $(!NTN_SoftwareBase)"\Microsoft\Ras\Protocols"
set SapAgentName = $(!NTN_SoftwareBase)"\Microsoft\NWSAPAGENT"
set NwlnkRipName = $(!NTN_SoftwareBase)"\Microsoft\NWLNKRIP"
set IpxRouterName = $(!NTN_ServiceBase)"\IpxRouter"
OpenRegKey $(!REG_H_LOCAL) "" +
$(RasProtocolsName) $(!MAXIMUM_ALLOWED) KeyProtocols
ifstr $(KeyProtocols) != ""
set fIpxAllowed = 0
GetRegValue $(KeyProtocols) "fIpxAllowed" IpxList
ifint $(RegLastError) == 0
set fIpxAllowed = *($(IpxList), 4)
endif
ifint $(fIpxAllowed) != 0
Debug-Output "UpgradeIpxInfo: RAS is configured for IPX dialin"
; check to see if the IpxRouter service exists
set KeyRouter = ""
OpenRegKey $(!REG_H_LOCAL) "" +
$(IpxRouterName) $(!MAXIMUM_ALLOWED) KeyRouter
ifstr $(KeyRouter) != ""
CloseRegKey $(KeyRouter)
Debug-Output "Renaming IpxRouter to NwlnkRip..."
LibraryProcedure Result $(PORTSDLGHANDLE) RenameIpxRouterToNwlnkRip
Shell "" RemoveServiceDependency "RemoteAccess" "IpxRouter"
; Shell "" AddServiceDependency "RemoteAccess" "NwlnkRip"
Debug-Output "Renaming IpxRouter to NwlnkRip done..."
endif
; ; now add Parameters\UseRef to indicate that RAS is using
; ; NwlnkRip service
; OpenRegKey $(!REG_H_LOCAL) "" $(!RasIsnRipKeyName) +
; $(!MAXIMUM_ALLOWED) KeyService
; ifstr $(KeyService) != ""
; OpenRegKey $(KeyService) "" "Parameters" +
; $(!MAXIMUM_ALLOWED) KeyParams
; ifstr(i) $(KeyParams) != ""
; ; add the NetbiosRouting parameter (if it is not already there)
; ; and enable the WAN bit - this allows wan->lan type 20 broadcast
;
; GetRegValue $(KeyParams) "NetbiosRouting" NetbiosRoutingInfo
; Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
; set NetbiosRouting = *($(NetbiosRoutingInfo), 4)
; else
; ; not defined, so set the default value
; set NetbiosRouting = 2
; endif
;
; set NetbiosRouting = *($(NetbiosRoutingInfo), 4)
; ; Now enable the WAN bit
; ifint $(NetbiosRouting) == 0
; set NetbiosRouting = 2
; else-ifint $(NetbiosRouting) == 1
; set NetbiosRouting = 3
; endif
;
; SetRegValue $(KeyParams) {"NetbiosRouting" , 0, $(!REG_VT_DWORD), $(NetbiosRouting)}
; endif
;
; OpenRegKey $(KeyService) "" "Parameters\UseRef" +
; $(!MAXIMUM_ALLOWED) KeyUseRef
; ifstr(i) $(KeyUseRef) == ""
; ifstr(i) $(KeyParams) != ""
; CreateRegKey $(KeyParams) {"UseRef", 0, GenericClass} +
; "" $(!MAXIMUM_ALLOWED) "" KeyUseRef
; CloseRegKey $(KeyParams)
; endif
; endif
; ifstr(i) $(KeyUseRef) != ""
; SetRegValue $(KeyUseRef) {"RAS" , 0, $(!REG_VT_SZ), "1"}
; CloseRegKey $(KeyUseRef)
; endif
; CloseRegKey $(KeyService)
; endif
; ; if SAP agent was installed by RAS, remove and install it using
; ; the common SAP agent installer.
; OpenRegKey $(!REG_H_LOCAL) "" $(SapAgentName) +
; $(!MAXIMUM_ALLOWED) KeyService
; ifstr $(KeyService) == ""
; OpenRegKey $(!REG_H_LOCAL) "" $(!RasIsnSapKeyName) +
; $(!MAXIMUM_ALLOWED) KeySap
; Ifstr(i) $(KeySap) != ""
; ; remove the service using DeleteService
; Shell "utility.inf", RemoveService +
; $(!ProductRASISNSAPName) "YES"
; Shell "" InstallIsnSapService
; endif
; CloseRegKey $(KeySap)
; else
; CloseRegKey $(KeyService)
; endif
; ; if NWLNKRIP was installed by RAS, reinstall it using
; ; the common NWLNKRIP service installer. We don't remove it first
; ; (unlike the SAP agent) because the NWLNKRIP installer
; ; creates the SOFTWARE registry key on our behalf and we want
; ; to retain the parameters created earlier.
; Modified by RamC on 10/11/96 - routing related changes
; we don't install nwlnkrip service any more because it
; is part of router service now.
;
; OpenRegKey $(!REG_H_LOCAL) "" $(NwlnkRipName) +
; $(!MAXIMUM_ALLOWED) KeyService
; ifstr $(KeyService) == ""
; OpenRegKey $(!REG_H_LOCAL) "" $(!RasIsnRipKeyName) +
; $(!MAXIMUM_ALLOWED) KeyRip
; Ifstr(i) $(KeyRip) != ""
; Shell "" InstallNwlnkRipService
; CloseRegKey $(KeyRip)
; else
; CloseRegKey $(KeyService)
; endif
; set some parameters in the NWLNKIPX\Parameters area
OpenRegKey $(!REG_H_LOCAL) "" +
$(!NTN_ServiceBase)"\NWLNKIPX\Parameters" +
$(!MAXIMUM_ALLOWED) KeyIpxParameters
ifstr $(KeyIpxParameters) != $(KeyNull)
; add the parameters only if they don't already exist
GetRegValue $(KeyIpxParameters), "SingleNetworkActive" +
SingleNetworkActive
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyIpxParameters) +
{SingleNetworkActive, 0, $(!REG_VT_DWORD), 1}
endif
GetRegValue $(KeyIpxParameters), "DisableDialoutSap" +
DisableDialoutSap
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyIpxParameters) +
{DisableDialoutSap, 0, $(!REG_VT_DWORD), 1}
endif
GetRegValue $(KeyIpxParameters), "DisableDialinNetbios" +
DisableDialinNetbios
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyIpxParameters) +
{DisableDialinNetbios, 0, $(!REG_VT_DWORD), 1}
endif
CloseRegKey $(KeyIpxParameters)
Endif
else
Debug-Output "OEMNSVRA.INF: error opening NWLNKIPX\Parameters key"
endif
endif
CloseRegKey $(KeyProtocols)
else
Debug-Output "UpgradeIpxInfo: error opening RAS\Protocols key"
endif
Debug-Output "UpgradeIpxInfo: exit"
return
[SaveTcpipInfo]
; copy the Tcpip information from SOFTWARE\Microsoft\RAS\Protocols\Ip to
; services\remoteaccess\parameters\Ip
; unless the caller wants the IP info to be removed
Debug-Output "SaveTcpipInfo: entry - AddIpInfo = "$($0)
set AddTcpInfo = $($0)
set Status = STATUS_FAILED
Set KeyNull = ""
set RasIpKeyName = $(!NTN_SoftwareBase)"\Microsoft\Ras\Protocols\Ip"
set RasSvrParamKeyName = $(!NTN_ServiceBase)"\RemoteAccess\Parameters"
OpenRegKey $(!REG_H_LOCAL) "" $(RasIpKeyName) $(!MAXIMUM_ALLOWED) RasIpKey
ifstr $(RasIpKey) != $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(RasSvrParamKeyName) $(!MAXIMUM_ALLOWED) KeySrvParams
ifstr $(KeySrvParams) == $(KeyNull)
Debug-Output "SaveTcpipInfo: could not open RasSvr Params key"
CloseRegKey $(RasIpKey)
return $(Status)
endif
ifstr(i) $(AddTcpInfo) == TRUE
CreateRegKey $(KeySrvParams) {"Ip",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" RemoteIpKey
OpenRegKey $(KeySrvParams) "" "Ip" $(!MAXIMUM_ALLOWED) RemoteIpKey
ifstr $(RemoteIpKey) != $(KeyNull)
EnumRegValue $(RasIpKey) NewValueList
Shell "utility.inf", AddValueList, $(RemoteIpKey), $(NewValueList)
CloseRegKey $(RemoteIpKey)
endif
else
; no dialin ports configured, so remove IP info
Debug-Output "SaveTpcipInfo: removing ip info"
DeleteRegTree $(KeySrvParams) "IP"
endif
CloseRegKey $(RasIpKey)
CloseRegKey $(KeySrvParams)
endif
Debug-Output "SaveTcpipInfo: exit"
set Status = STATUS_SUCCESSFUL
return $(Status)
[SaveIpxInfo]
; copy the IPX information from SOFTWARE\Microsoft\RAS\Protocols\Ipx to
; services\remoteaccess\parameters\Ipx
; unless the caller wants the IPX info to be removed
Debug-Output "SaveIpxInfo: entry RouterInstalled= "$($0)" AddIpxInfo = "$($1)
set RouterInstalled = $($0)
set AddIpxInfo = $($1)
set Status = STATUS_FAILED
Set KeyNull = ""
set RasIpxKeyName = $(!NTN_SoftwareBase)"\Microsoft\Ras\Protocols\Ipx"
set RasSvrParamKeyName = $(!NTN_ServiceBase)"\RemoteAccess\Parameters"
OpenRegKey $(!REG_H_LOCAL) "" $(RasIpxKeyName) $(!MAXIMUM_ALLOWED) RasIpxKey
ifstr $(RasIpxKey) != $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(RasSvrParamKeyName) +
$(!MAXIMUM_ALLOWED) KeySrvParams
ifstr $(KeySrvParams) == $(KeyNull)
Debug-Output "SaveTcpipInfo: could not open RasSvr Params key"
CloseRegKey $(RasIpxKey)
return $(Status) $(fRouterInstalled)
endif
ifstr(i) $(AddIpxInfo) == TRUE
CreateRegKey $(KeySrvParams) {"Ipx",$(NoTitle),GenericClass} "" $(!MAXIMUM_ALLOWED) "" RemoteIpxKey
OpenRegKey $(KeySrvParams) "" "Ipx" $(!MAXIMUM_ALLOWED) RemoteIpxKey
ifstr $(RemoteIpxKey) != $(KeyNull)
EnumRegValue $(RasIpxKey) NewValueList
Shell "utility.inf", AddValueList, $(RemoteIpxKey), $(NewValueList)
SetRegValue $(RemoteIpxKey) {RouterInstalled, 0,$(!REG_VT_DWORD), $(RouterInstalled)}
CloseRegKey $(RemoteIpxKey)
endif
else
Debug-Output "SaveIpxInfo: removing ipx info"
DeleteRegTree $(KeySrvParams) "IPX"
endif
CloseRegKey $(KeySrvParams)
CloseRegKey $(RasIpxKey)
endif
Debug-Output "SaveIpxInfo: exit"
set Status = STATUS_SUCCESSFUL
return $(Status)
[AddServiceDependency]
; This routine adds the service dependency
; Input: $($0) is the dependent service
; $($1) is the service $($0) depends on
Debug-Output "AddServiceDependency: entry"
set Status = STATUS_FAILED
Set KeyNull = ""
set DependentService = $(!NTN_ServiceBase)\$($0)
set DependentName = $($0)
set DependOn = $($1)
set ServiceKey = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(DependentService)"\Linkage" $(!MAXIMUM_ALLOWED) ServiceKey
ifstr(i) $(ServiceKey) != $(KeyNull)
GetRegValue $(ServiceKey) "OtherDependencies" ServicesList
ifint $(RegLastError) != 0
set ServiceValues = {}
else
set ServiceValues = *($(ServicesList),4)
endif
debug-output "AddServiceDependency: Old OtherDependencies: "$(ServiceValues)
ifstr(i) $(ServiceValues) == {}
Set ServiceValues = {$(DependOn)}
else-ifstr(i) $(ServiceValues) == ""
Set ServiceValues = {$(DependOn)}
else-ifcontains(i) $(DependOn) in $(ServiceValues)
; It is already there!! something is wrong, but it doesn't matter
return STATUS_SUCCESSFUL
else
; Add to the dependcy list
Set ServiceValues = >($(ServiceValues), $(DependOn))
endif
debug-output "AddServiceDependency: New OtherDependencies: "$(ServiceValues)
SetRegValue $(ServiceKey) {OtherDependencies, 0,+
$(!REG_VT_MULTI_SZ), $(ServiceValues)}
CloseRegKey $(ServiceKey)
set Status = STATUS_SUCCESSFUL
else
Debug-Output "AddServiceDependency: error opening service "$(DependentService)"\Linkage"
endif
set KeyService = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(DependentService) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != $(KeyNull)
set newDependList = {$(DependOn)}
GetRegValue $(KeyService) "DependOnService" ServiceList
ifint $(RegLastError) == 0
Debug-Output "AddServiceDependency: old DependOnService List "*($(ServiceList), 4)
ForListDo *($(ServiceList),4)
ifstr(i) $($) != $(DependOn)
set newDependList = >($(newDependList), $($))
endif
EndForListDo
endif
GetRegValue $(KeyService) "DependOnGroup" GrpList
ifint $(RegLastError) == 0
Debug-Output "AddServiceDependency: old DependOnGroup List "*($(GrpList), 4)
ForListDo *($(GrpList),4)
set grp = "+"$($)
set newDependList = >($(newDependList), $(grp))
EndForListDo
endif
Debug-Output "OEMNSVRA.INF: AddServiceDependency: new Dependency List "$(newDependList)
LibraryProcedure Result, $(!LIBHANDLE), SetupChangeServiceConfig, $(DependentName) $(!SERVICE_NO_CHANGE), $(!SERVICE_NO_CHANGE), $(!SERVICE_NO_CHANGE), "", "", $(newDependList), "", "", ""
CloseRegKey $(KeyService)
else
Debug-Output "AddServiceDependency: failed to open service linkage key"$(DependentService)
endif
Debug-Output "AddServiceDependency: exit"
return $(Status)
[RemoveServiceDependency]
; This routine removes the service dependency
; Input: $($0) is the dependent service
; $($1) is the service $($0) should not depend on
Debug-Output "RemoveServiceDependency: entry"
set Status = STATUS_FAILED
Set KeyNull = ""
set DependentService = $(!NTN_ServiceBase)\$($0)
set DependentName = $($0)
set DependOn = $($1)
OpenRegKey $(!REG_H_LOCAL) "" $(DependentService)"\Linkage" $(!MAXIMUM_ALLOWED) ServiceKey
ifstr(i) $(ServiceKey) != $(KeyNull)
GetRegValue $(ServiceKey) "OtherDependencies" ServicesList
ifint $(RegLastError) != 0
set ServiceValues = {}
else
set ServiceValues = *($(ServicesList),4)
endif
debug-output "RemoveServiceDependency: old OtherDependencies list:"$(ServicesList)
set ServiceValues = *($(ServicesList),4)
debug-output "ServiceValues: "$(ServiceValues)
ifcontains(i) $(DependOn) in $(ServiceValues)
; Remove RasArp from the dependcy list
set NewServiceValues = {}
ForListDo $(ServiceValues)
ifstr(i) $($) != $(DependOn)
set NewServiceValues = >($(NewServiceValues), $($))
endif
EndForListDo
debug-output "RemoveServiceDependency: new OtherDependencies list: "$(NewServiceValues)
SetRegValue $(ServiceKey) {OtherDependencies, 0,+
$(!REG_VT_MULTI_SZ), $(NewServiceValues)}
else
; something wrong...
endif
CloseRegKey $(ServiceKey)
set Status = STATUS_SUCCESSFUL
else
Debug-Output "RemoveServiceDependency: error opening service "$(DependentService)"\Linkage"
endif
set KeyService = $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(DependentService) $(!MAXIMUM_ALLOWED) KeyService
ifstr $(KeyService) != $(KeyNull)
set newDependList = {}
GetRegValue $(KeyService) "DeleteFlag" DeleteFlagValue
; make sure the service is not marked for deletion
ifint $(RegLastError) != 0
GetRegValue $(KeyService) "DependOnService" ServiceList
ifint $(RegLastError) == 0
Debug-Output "RemoveServiceDependency: old DependOnService List "*($(ServiceList), 4)
ifcontains(i) $(DependOn) in *($(ServiceList),4)
ForListDo *($(ServiceList),4)
ifstr(i) $($) != $(DependOn)
set newDependList = >($(newDependList), $($))
endif
EndForListDo
; now get any existing group dependencies
GetRegValue $(KeyService) "DependOnGroup" GrpList
ifint $(RegLastError) == 0
ForListDo *($(GrpList),4)
set grp = "+"$($)
set newDependList = >($(newDependList), $(grp))
EndForListDo
endif
Debug-Output "OEMNSVRA.INF:RemoveServiceDependency: new DependOnService List "$(newDependList)
LibraryProcedure Result, $(!LIBHANDLE), +
SetupChangeServiceConfig, $(DependentName) +
$(!SERVICE_NO_CHANGE), $(!SERVICE_NO_CHANGE), +
$(!SERVICE_NO_CHANGE), "", "", +
$(newDependList), "", "", ""
endif
endif
endif
CloseRegKey $(KeyService)
else
Debug-Output "RemoveServiceDependency: failed to open service linkage key"$(DependentService)
endif
Debug-Output "RemoveServiceDependency: exit"
return $(Status)
[SetLanOnlyMode]
; This routine removes sets Router\Parameters\LanOnlyMode value to the
; value passed as parameter 0
; Input: $($0) is the value for LanOnlyMode
Debug-Output "SetLanOnlyMode: entry"
set Status = STATUS_FAILED
Set KeyNull = ""
set RouterParam = $(!NTN_ServiceBase)"\Router\Parameters"
set LanOnlyModeValue = $($0)
OpenRegKey $(!REG_H_LOCAL) "" $(RouterParam) $(!MAXIMUM_ALLOWED) KeyRtrParam
ifstr(i) $(KeyRtrParam) != $(KeyNull)
SetRegValue $(KeyRtrParam) {LanOnlyMode, $(NoTitle), $(!REG_VT_DWORD), $(LanOnlyModeValue)}
CloseRegKey $(KeyRtrParam)
set Status = STATUS_SUCCESSFUL
else
Debug-Output "SetLanOnlyMode: failed to open Router\parameters key"$(RouterParam)
endif
Debug-Output "SetLanOnlyMode: exit"
return $(Status)
;-----------------------------------------------------------------------
; ROUTINE: QueryUserQuit
;
; DESCRIPTION: This routine queries whether the user wants to quit setup
;
; INPUTS: None
;
; OUTPUTS: $R0: Status: STATUS_SUCCESSFUL |
; STATUS_FAILED
;
; $R1: UserAction: OK | CANCEL
;
;------------------------------------------------------------------------
[QueryUserQuit]
set Status = STATUS_FAILED
set UserAction = CANCEL
;
; read in quit message
;
set STF_MB_TEXT = "The changes will not be saved. "+
"Are you sure you want to exit Setup."
read-syms ExitWarningDlg$(!STF_LANGUAGE)
ui start "ExitWarning"
ifstr(i) $(DLGEVENT) == "YES"
set Status = STATUS_SUCCESSFUL
set UserAction = "OK"
else-ifstr(i) $(DLGEVENT) == "NO"
set Status = STATUS_SUCCESSFUL
set UserAction = "CANCEL"
else
endif
fin_QueryUserQuit = +
Return $(Status) $(UserAction)
;----------------------------------------------
; EXIT Remote Access Service warning dialog
;----------------------------------------------
;-----------------------------------------------------------------------
; ROUTINE: QueryRasUpgrade
;
; DESCRIPTION: This routine queries whether the user wants to upgrade to
; the new Ras version.
;
; INPUTS: $0: ProductTitle
; $1: InstalledVersion
; $2: new version
;
; OUTPUTS: $R0: Status: STATUS_SUCCESSFUL |
; STATUS_FAILED
;
; $R1: UserAction: OK | CANCEL
;
;------------------------------------------------------------------------
[QueryRasUpgrade]
set Status = STATUS_FAILED
set UserAction = CANCEL
;
; read in quit message
;
read-syms RasUpgrade$(!STF_LANGUAGE)
set Text = $($0)$(Ver)$($1)$(Text1)$(Ver)$($2)$(Text2)$(Text3)
set STF_MB_TEXT = $(Text)
read-syms ExitWarningDlg$(!STF_LANGUAGE)
ui start "RasUpgrade"
ifstr(i) $(DLGEVENT) == "YES"
set Status = STATUS_SUCCESSFUL
set UserAction = "OK"
else-ifstr(i) $(DLGEVENT) == "NO"
set Status = STATUS_SUCCESSFUL
set UserAction = "CANCEL"
else
endif
fin_QueryRasUpgrade = +
Return $(Status) $(UserAction)
;-----------------------------------------------
; Input DIALOGS
;-----------------------------------------------
[CP-List]
NBFCP = "%SystemRoot%\SYSTEM32\RASNBFCP.DLL"
IPCP = "%SystemRoot%\SYSTEM32\RASIPCP.DLL"
IPXCP = "%SystemRoot%\SYSTEM32\RASIPXCP.DLL"
;ATALKCP = "%SystemRoot%\SYSTEM32\RASATCP.DLL"
PAP = "%SystemRoot%\SYSTEM32\RASPAP.DLL"
CHAP = "%SystemRoot%\SYSTEM32\RASCHAP.DLL"
SPAP = "%SystemRoot%\SYSTEM32\RASSPAP.DLL"
CBCP = "%SystemRoot%\SYSTEM32\RASCBCP.DLL"
COMPCP = "%SystemRoot%\SYSTEM32\RASCCP.DLL"
[Files-RemoveList]
; Note that not all RAS files are removed when RAS is
; removed.
; rascfg.dll, rasphone.exe, rasphone.hlp, rasphone.cnt
; rasadmin.exe, rasadmin.hlp, rasadmin.cnt
; all files in system32\ras directory are not removed
; because these are the files copied to the computer
; during text mode setup and should always be present
; so that ras can be setup.
;
; BUGBUG
; Even the list below is not complete. Don't want to
; mess with this so close to NT 4.0 rtm, but this should
; be fixed for next release.
RASADMINDLL = $(!STF_WINDOWSSYSPATH)\RASADMIN.DLL
RASGTWYDLL = $(!STF_WINDOWSSYSPATH)\RASGTWY.DLL
RASGPRXYDLL = $(!STF_WINDOWSSYSPATH)\RASGPRXY.DLL
RASSRVEXE = $(!STF_WINDOWSSYSPATH)\RASSRV.EXE
RASCTRSDLL = $(!STF_WINDOWSSYSPATH)\RASCTRS.DLL
RASCTRSINI = $(!STF_WINDOWSSYSPATH)\RASCTRS.INI
RASCTRNMH = $(!STF_WINDOWSSYSPATH)\RASCTRNM.H
RASSPRXYEXE = $(!STF_WINDOWSSYSPATH)\RASSPRXY.EXE
RASSAUTHDLL = $(!STF_WINDOWSSYSPATH)\RASSAUTH.DLL
RASDIALEXE = $(!STF_WINDOWSSYSPATH)\RASDIAL.EXE
RASPHONEHLP = $(!STF_WINDOWSSYSPATH)\RASPHONE.HLP
RASGLOSSHLP = $(!STF_WINDOWSSYSPATH)\RASGLOSS.HLP
RASAPI32DLL = $(!STF_WINDOWSSYSPATH)\RASAPI32.DLL
RASCAUTHDLL = $(!STF_WINDOWSSYSPATH)\RASCAUTH.DLL
RASADMINHLP = $(!STF_WINDOWSSYSPATH)\RASADMIN.HLP
RASMANDLL = $(!STF_WINDOWSSYSPATH)\RASMAN.DLL
RASMANEXE = $(!STF_WINDOWSSYSPATH)\RASMAN.EXE
RASSERDLL = $(!STF_WINDOWSSYSPATH)\RASSER.DLL
RASIPXCPDLL = $(!STF_WINDOWSSYSPATH)\RASIPXCP.DLL
RASPPPDLL = $(!STF_WINDOWSSYSPATH)\RASPPP.DLL
RASPPPENDLL = $(!STF_WINDOWSSYSPATH)\RASPPPEN.DLL
RASPAPDLL = $(!STF_WINDOWSSYSPATH)\RASPAP.DLL
RASCHAPDLL = $(!STF_WINDOWSSYSPATH)\RASCHAP.DLL
RASSPAPDLL = $(!STF_WINDOWSSYSPATH)\RASSPAP.DLL
RASIPCPDLL = $(!STF_WINDOWSSYSPATH)\RASIPCP.DLL
RASIPHLPDLL = $(!STF_WINDOWSSYSPATH)\RASIPHLP.DLL
RASNBFCPDLL = $(!STF_WINDOWSSYSPATH)\RASNBFCP.DLL
RASNBIPCDLL = $(!STF_WINDOWSSYSPATH)\RASNBIPC.DLL
RASCCPDLL = $(!STF_WINDOWSSYSPATH)\RASCCP.DLL
RASCBCPDLL = $(!STF_WINDOWSSYSPATH)\RASCBCP.DLL
ASYNCMACSYS = $(!STF_WINDOWSSYSPATH)\DRIVERS\ASYNCMAC.SYS
NDISWANSYS = $(!STF_WINDOWSSYSPATH)\DRIVERS\NDISWAN.SYS
RASARPSYS = $(!STF_WINDOWSSYSPATH)\DRIVERS\RASARP.SYS