10490 lines
394 KiB
INI
10490 lines
394 KiB
INI
;***********************************************************************
|
|
;
|
|
; 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
|
|
|