;/**************************************************************************** ;* oemnxppp.inf : $Revision: 1.10 ;* Modified : $Date: Feb 06 1996 16:42:16 ;* By : $Author: abordia $, U.S. Robotics Access Corp. ;* Logfile : $Logfile: L:/SRC/INSTALL/STRAWMAN/INFFILE/oemsetup.inv ;***************************************************************************** ;* Copyright (c) $Date: Feb 06 1996 16:42:16 $, ;* U.S. Robotics Access Corp., Microsoft Corp. ;* All Rights Reserved ;***************************************************************************** ;* "OTHER CODE" ;* This software may be used to implement the POINT to POINT TUNNELING ;* PROTOCOL as defined by the PPTP forum. The PPTP forum consists of: ;* U.S. Robotics, Ascend Communications, Microsoft, 3Com/Primary Access, ;* Telematics. ;***************************************************************************** ;* ;* This file is part of the USR Total Control STRAWMAN Installation Program ;* ;* It is the RASPPTP WindowsNT Setup File ;* ;***************************************************************************** ;* ;* Redistribution and use in source and binary forms, with or without ;* modification, are permitted provided that the following conditions ;* are met: ;* ;* 1. Redistributions of source code must retain this entire header ;* including the above copyright notice, this list of conditions and ;* the following disclaimer. ;* 2. Source code access must be limited to employees or contractors of ;* Microsoft Corp. ;* 3. The name of U.S. Robotics may not be used to endorse or promote ;* products derived from this software without specific prior written ;* permission of U.S. Robotics. ;* ;* THIS SOFTWARE IS PROVIDED BY U.S. ROBOTICS ACESS CORP. ``AS IS'' AND ;* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ;* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL U.S. ROBOTICS BE LIABLE FOR ;* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ;* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ;* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ;* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING ;* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ;* POSSIBILITY OF SUCH DAMAGE. ;* ;*****************************************************************************/ ;*********************************************************************** ; ;*********************************************************************** [Identification] OptionType = NetTransport ;*********************************************************************** ;RamC, Commented out because PPTP is platform independent and should not ;be using this information. 12/10/96 ;*********************************************************************** ;[PlatformsSupported] ; ISA ; EISA ; "Jazz-Internal Bus" ;*********************************************************************** ; ;*********************************************************************** [Options] RASPPTP ;*********************************************************************** ; ;*********************************************************************** [FileConstants] InfName = "OEMNXPPP.INF" UtilityInf = "UTILITY.INF" ParamInf = "NCPARAM.INF" subroutineinf = "SUBROUTN.INF" SoftwareType = "driver" Exit_Code = 0 NetEventDLL = "%SystemRoot%\System32\netevent.dll" IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll" RASPPTPMsgDLL = "%SystemRoot%\System32\raspptpl.dll;%SystemRoot%\System32\netevent.dll" Manufacturer = "Microsoft" ProductMajorVersion = "4" ProductMinorVersion = "0" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) ProductSoftwareName = "RASPPTPM" ProductSoftwareImagePath = "\SystemRoot\System32\drivers\RASPPTPM.sys" NetworkCardKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards" ProductKeyBase = $(!NTN_SoftwareBase)"\"$(Manufacturer) NetRuleSoftwareType = "RASPPTPSys RASPPTPDriver" NetRuleSoftwareUse = $(SoftwareType) NetRuleSoftwareBindForm = """RASPPTPSys"" yes no container" NetRuleSoftwareClass = {"RASPPTPDriver basic"} NetRuleSoftwareBindable = {"RASPPTPDriver RASPPTPAdapter non exclusive 100"} ProductHardwareName = "RASPPTPM" NetRuleHardwareBindForm = " yes yes container" NetRuleHardwareRASPPTPType = "RASPPTP RASPPTPAdapter" NetRuleHardwareRASPPTPClass = {"RASPPTPAdapter basic"} BindableRASPPTPTxt = {"RASPPTPDriver RASPPTPAdapter non exclusive 100"} ProductOpSupport = 134 ; 0x0086 ; Display,Removable,Properties,Not Updatable ;values for the placeholder Microsoft\RASPPTP transport ProductRASPPTPName = "RASPPTP" ProductRASPPTPSvcType = "transport" NetRuleRASPPTPClass = "classRaspptpTransport ""basic""" NetRuleRASPPTPType = "RaspptpTransport classRaspptpTransport" NetRuleRASPPTPUse = "system" TapiDevices = "TAPI DEVICES" TapiDeviceKey = $(ProductHardwareName) TapiMediaType = "VPN" ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"+ $(ProductSoftwareName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)+ "\Parameters" ProductRASPPTPKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"+ "RASPPTP\CurrentVersion" ; default to dialup line mode = 1 -- leased line = 0 ; Right now this file only supports dialup mode - leased line changes are needed LineType = 1 ; FIXME - Set to zero before release DebugFlags = 0 ; RASPPTP_SPECFIC_START ;*********************************************************************** ; The following constants are specifically for the raspptpe.sys driver ; which is specific to STRAWMAN ;*********************************************************************** [SMANFileConstants] PPTPProductMajorVersion = "4" PPTPProductMinorVersion = "0" PPTPProductVersion = $(PPTPProductMajorVersion)"."$(PPTPProductMinorVersion) PPTPProductSoftwareName = "RASPPTPE" PPTPProductSoftwareImagePath = "\SystemRoot\System32\drivers\RASPPTPE.sys" PPTPNetRuleSoftwareType = "RASPPTPSys RASPPTPDriver" PPTPNetRuleSoftwareBindForm = """RASPPTPSys"" yes no container" PPTPNetRuleSoftwareClass = {"RASPPTPDriver basic"} PPTPNetRuleSoftwareBindable = {"RASPPTPDriver RASPPTPAdapter non exclusive 100"} PPTPProductHardwareName = "RASPPTPE" PPTPNetRuleHardwareRASPPTPType = "RASPPTP RASPPTPAdapter" PPTPNetRuleHardwareRASPPTPClass = {"RASPPTPAdapter basic"} PPTPBindableRASPPTPTxt = {"RASPPTPDriver RASPPTPAdapter non exclusive 100"} PPTPProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"+ $(PPTPProductSoftwareName)"\CurrentVersion" PPTPParamKeyName = $(!NTN_ServiceBase)"\"$(PPTPProductHardwareName)+ "\Parameters" ;RASPPTP_SPECIFIC_END ;*********************************************************************** ; ;*********************************************************************** [GeneralConstants] from = "" to = "" ExitCodeOk = 0 ExitCodeCancel = 1 ExitCodeFatal = 2 KeyNull = "" MAXIMUM_ALLOWED = 33554432 SERVICE_NO_CHANGE = 4294967295 RegistryErrorIndex = NO_ERROR KeyProduct = "" KeyParameters = "" TRUE = 1 FALSE = 0 NoTitle = 0 ExitState = "Active" OldVersionExisted = $(FALSE) DriverPath = $(!STF_NTPATH)\drivers ;*********************************************************************** ; ;*********************************************************************** [Date] Now = {} ? $(!LIBHANDLE) GetSystemDate ;*********************************************************************** ; ;*********************************************************************** [Identify] Read-Syms Identification Set Status = STATUS_SUCCESSFUL Set Identifier = $(OptionType) Set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) ;*********************************************************************** ; ;*********************************************************************** [ReturnOptions] Set Status = STATUS_FAILED Set OptionList = {} Set OptionTextList = {} Set LanguageList = ^(LanguagesSupported, 1) IfContains(i) $($0) in $(LanguageList) IfStr(i) $($1) == "" GoTo SetOptions EndIf ; ;RamC, Commented out because PPTP is platform independent and should not ;be checking the platfom. 12/10/96 ; ; Set PlatformList = ^(PlatformsSupported, 1) ; IfContains(i) $($1) in $(PlatformList) ; GoTo SetOptions ; Else ; Set Status = STATUS_NOTSUPPORTED ; GoTo ExitReturnOptions ; EndIf Else Set Status = STATUS_NOLANGUAGE GoTo ExitReturnOptions EndIf SetOptions = + Set OptionList = ^(Options, 1) Set OptionTextList = ^(OptionsText$($0), 1) Set Status = STATUS_SUCCESSFUL ExitReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) ;*********************************************************************** ; ;*********************************************************************** [InstallOption] Set Status = STATUS_FAILED Set Option = $($1) Set SrcDir = $($2) Set RasDir = $($2) Set AddCopy = $($3) Set DoCopy = $($4) Set DoConfig = $($5) Set LanguageList = ^(LanguagesSupported, 1) IfContains(i) $($0) NOT-IN $(LanguageList) Return STATUS_NOLANGUAGE EndIf ; ; FIXME - make sure this flag is disabled before shipping ; Set-Subst LF = "\n" Read-Syms GeneralConstants Read-Syms FileConstants Read-Syms DialogConstants$(!STF_LANGUAGE) ;RASPPTP_SPECIFIC_START Read-Syms SMANFileConstants ;RASPPTP_SPECIFIC_END IfStr(i) $(!NTN_Origination) == "NCPA" Set Continue = $(OK) EndIf Read-Syms FileConstants$(!STF_LANGUAGE) Detect Date Set-Title $(FunctionTitle)$(Option) ;RASPPTP_SPECIFIC_START Read-Syms SMANFileConstants$(!STF_LANGUAGE) ;RASPPTP_SPECIFIC_END Set to = Begin Set from = Begin Set CommonStatus = STATUS_SUCCESSFUL EndWait ;*********************************************************************** ; ;*********************************************************************** Begin = + Set ActivateDetection = FALSE IfStr(i) $(!NTN_InstallMode) == deinstall Set StartLabel = RemoveAdapter Else-IfStr(i) $(!NTN_InstallMode) == Update Set StartLabel = UpgradeSoftware Else-IfStr(i) $(!NTN_InstallMode) == bind Set StartLabel = BindingAdapter Else-IfStr(i) $(!NTN_InstallMode) == configure Set StartLabel = ConfigureAdapter Set ActivateDetection = TRUE Set CommonStatus = STATUS_REBOOT ; Set CommonStatus = STATUS_SUCCESSFUL IfStr(i) $(ProductKeyName) == $(!NTN_RegBase) Debug-Output $(InfName)": Cannot configure the EtherWORKS 3 driver software." Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error: cannot get an error string." GoTo ShellCodeError EndIf Set Error = $($R0) Set from = end Set to = end GoTo NonFatalInfo EndIf Else Set StartLabel = InstallAdapter Set ActivateDetection = TRUE Set OEM_ABANDON_OPTIONS = {} Set OEM_ABANDON_SOFTWARE = FALSE Set OEM_ABANDON_ON = TRUE ;RASPPTP_SPECIFIC_START Set OEM_ABANDON_PPTP_SOTWARE = FALSE ;RASPPTP_SPECIFIC_END EndIf Debug-Output $(InfName)": ==================================================" Debug-Output $(InfName)": STF_CWDIR is: "$(!STF_CWDIR) Debug-Output $(InfName)": STF_LANGUAGE is: "$(!STF_LANGUAGE) Debug-Output $(InfName)": Option is: "$(Option) Debug-Output $(InfName)": !STF_NCDETECT is: "$(!STF_NCDETECT) Debug-Output $(InfName)": !STF_NCOPTION is: "$(!STF_NCOPTION) Debug-Output $(InfName)": !STF_NCDETCARD is: "$(!STF_NCDETCARD) Debug-Output $(InfName)": !STF_NCDETINFO is: "$(!STF_NCDETINFO) Debug-Output $(InfName)": ==================================================" Set DetectedCard = FALSE IfStr(i) $(ActivateDetection) != TRUE GoTo $(StartLabel) EndIf Debug-Output $(InfName)": Calling Param_SetDefaults" Shell $(ParamInf) Param_SetDefaults {} IfStr(i) $(!STF_NCDETECT) == YES IfStr(i) $(!STF_NCOPTION) == $(Option) Set DetectedCard = TRUE Debug-Output $(InfName)": Setting DetectedCard to TRUE" EndIf EndIf Shell "" DebugConfiguration "After parameter querying" Set from = FatalError Set to = FatalError GoTo $(StartLabel) ;*********************************************************************** ; ;*********************************************************************** InstallAdapter = + OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct IfStr $(KeyProduct) != $(KeyNull) CloseRegKey $(KeyProduct) IfStr(i) !(NTN_RegBase) == $(ProductKeyName) Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+ $(ProductVersion) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error: cannot get an error string." GoTo ShellCodeError EndIf GoTo end Else Shell $(UtilityInf), CardExistedDlg IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error: cannot get an error string." GoTo ShellCodeError EndIf IfStr(i) $($R1) != "OK" Set CommonStatus = STATUS_USERCANCEL GoTo end EndIf Set OldVersionExisted = $(TRUE) EndIf EndIf Set CurrParamSettings = {} IfStr(i) $(DetectedCard) != TRUE GoTo AdapterSetup EndIf StartWait Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD) EndWait IfStr(i) $($R0) != STATUS_SUCCESSFUL GoTo AdapterSetup EndIf Set DetectedParams = $($R1) Debug-Output $(InfName)": Calling Param_SetDefaults to merge detected params" Shell $(ParamInf) Param_SetDefaults $(DetectedParams) GoTo AdapterSetup ;*********************************************************************** ; ;*********************************************************************** ConfigureAdapter = + Read-Syms InvokeConfigureDlg$(!STF_LANGUAGE) LoadLibrary "x" $(!STF_CWDDIR)raspptpc.dll RASPPTPDLGHANDLE Debug-Output $(InfName)": Getting info from GetChassisConfiguration" Debug-Output $(InfName)": NTN_InstallMode is "$(!NTN_InstallMode) LibraryProcedure Result, $(RASPPTPDLGHANDLE), GetChassisConfiguration $(!NTN_InstallMode) Set NumberOfLineDevices = *($(Result), 1) Set AdapterNum = *($(Result), 2) FreeLibrary $(RASPPTPDLGHANDLE) ifstr(i) $(NumberOfLineDevices) != "EXITSETUP" ifstr(i) $(NumberOfLineDevices) != "RASNOCHANGE" Shell "" UpdateAddressList $(NumberOfLineDevices) $(AdapterNum) $(ProductSoftwareName) + $(TapiMediaType) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Cannot update address list for RAS" goto ShellCodeError endif endif Set CommonStatus = STATUS_SUCCESSFUL ; Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", + ; $(InvokeConfigureMsg) Else Set CommonStatus = STATUS_USERCANCEL EndIf goto end ;*********************************************************************** ; ;*********************************************************************** AdapterSetup = + Shell "" DebugConfiguration "before Param_ParameterConfidence" Shell $(ParamInf) Param_ParameterConfidence IfStr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output $(InfName)": parameter confidence too low to bypass configuration" Shell "" DebugConfiguration "before AdapterOptions" GoTo AdapterOptions EndIf IfStr(i) $(DetectedCard) == TRUE IfStr(i) $(!STF_INSTALL_MODE) != CUSTOM Shell "" DebugConfiguration "before AdapterVerify" GoTo AdapterVerify EndIf EndIf ;*********************************************************************** ; ;*********************************************************************** AdapterOptions = + Shell "" DebugConfiguration "inside AdapterOptions" Read-Syms FileDependentDlg$(!STF_LANGUAGE) ;*********************************************************************** ; ;*********************************************************************** AdapterVerify = + Shell "" DebugConfiguration "inside AdapterVerify" Shell "" DebugConfiguration "after running dialog" IfStr(i) $(DetectedCard) != TRUE Shell $(ParamInf) Param_SaveValues Set NewParamSettings = $($R0) IfStr(i) $(CurrParamSettings) == {} Set DiffParamSettings = $(NewParamSettings) Else Shell $(ParamInf) Param_DiffValues $(CurrParamSettings) Set DiffParamSettings = $($R0) EndIf Debug-Output $(InfName)": Calling Param_VerifyResources" Shell $(ParamInf) Param_VerifyResources $(DiffParamSettings) IfStr(i) $($R0) == STATUS_SUCCESSFUL Debug-Output $(InfName)": Param_VerifyResources succeeded" GoTo SkipOptions EndIf Else Set CardVerifyIndex = $(!STF_NCDETCARD) Debug-Output $(InfName)": Calling Param_VerifyCard" Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD) IfStr(i) $($R0) == STATUS_SUCCESSFUL Debug-Output $(InfName)": Param_VerifyCard succeeded" GoTo SkipOptions EndIf EndIf Set from = AdapterOptions Set to = SkipOptions Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error: cannot get an error string." GoTo ShellCodeError EndIf Set Error = $($R0) GoTo WarningMsg ;*********************************************************************** ; ;*********************************************************************** SkipOptions =+ IfInt $(OldVersionExisted) == $(TRUE) IfStr(i) $(!NTN_InstallMode) == configure GoTo WriteParameters EndIf EndIf StartWait IfInt $(OldVersionExisted) == $(FALSE) IfStr(i) $(!NTN_InstallMode) == "install" IfStr(i) $(DoCopy) == "YES" Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError Else-IfStr(i) $($R0) == STATUS_FAILED Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf Set Error = $($R0) GoTo FatalError Else-IfStr(i) $($R0) == STATUS_USERCANCEL GoTo SuccessfulOption EndIf Set SrcDir = $($R1) EndIf Install "Install-Option" IfStr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf Set Error = $($R0) GoTo FatalError EndIf EndIf ; Add the placeholder dummy RASPPTP transport to registry Shell $(UtilityInf), InstallSoftwareProduct, $(Manufacturer),+ $(ProductRASPPTPName), $(InfName) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "InstallSoftware bombed out." goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR" Debug-Output "REGISTRY PROBLEM" 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),$(InfName)},+ {SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(ProductRASPPTPSvcType)},+ {Title,$(NoTitle),$(!REG_VT_SZ), $(ProductRASPPTPTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductRASPPTPDescription)},+ {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),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), $(NetRuleRASPPTPClass)},+ {type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleRASPPTPType)},+ {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleRASPPTPUse)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}, + {Infname ,$(NoTitle),$(!REG_VT_SZ),$(InfName)}} 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 Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), + $(ProductSoftwareName), + $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath), "kernelautostart", "NDIS", {}, "",+ $(RASPPTPMsgDLL) Set OEM_ABANDON_SOFTWARE = TRUE IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error" GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) Set KeyProduct = $($R1) Set SoftNetRulesKey = $($R2) CloseRegKey $($R3) CloseRegKey $($R4) CloseRegKey $($R5) IfStr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output $(InfName)": Registry error: add software components" CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) GoTo FatalRegistry EndIf Set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error." GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output $(InfName)": Registry error: add value list." CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) GoTo FatalRegistry EndIf Set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+ {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, + {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, + {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(Bindable$(Option)Txt)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error." GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) IfStr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output $(InfName)": Resgitry error: add value list." GoTo FatalRegistry EndIf Shell "" AddServiceDependency $(ProductSoftwareName) $(PPTPProductSoftwareName) ;RASPPTP_SPECIFIC_START Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(PPTPProductSoftwareName), + $(PPTPProductSoftwareName), + $(PPTPProductSoftwareTitle), $(STF_CONTEXTINFNAME), + $(PPTPProductSoftwareImagePath), "kernelauto", "NDIS", {}, "",+ $(RASPPTPMsgDLL) Set OEM_ABANDON_PPTP_SOFTWARE = TRUE IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error" GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) Set PPTPKeyProduct = $($R1) Set PPTPSoftNetRulesKey = $($R2) CloseRegKey $($R3) CloseRegKey $($R4) CloseRegKey $($R5) IfStr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output $(InfName)": Registry error: add sman software components" CloseRegKey $(PPTPKeyProduct) CloseRegKey $(PPTPSoftNetRulesKey) GoTo FatalRegistry EndIf Set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(PPTPProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(PPTPProductMinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),$(PPTPProductSoftwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(PPTPProductSoftwareDescription)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(PPTPProductSoftwareName)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(PPTPKeyProduct), $(NewValueList) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error." GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output $(InfName)": Registry error: add value list." CloseRegKey $(PPTPKeyProduct) CloseRegKey $(PPTPSoftNetRulesKey) GoTo FatalRegistry EndIf ;RASPPTP_SPECIFIC_END EndIf Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName) IfInt $($R4) != -1 Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4)) EndIf IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": Cannot add hardware component" GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output $(InfName)": Registry error: add hardware component" CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) GoTo FatalRegistry EndIf Set KeyParameters = $($R3) Set KeyAdapterRules = $($R2) Set AdapterNumber = $($R4) Set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+ {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+ {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)},+ {Hidden,$(NoTitle),$(!REG_VT_DWORD),1}} Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error" GoTo ShellCodeError EndIf CloseRegKey $($R1) Set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)"""" Set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm) Set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardware$(Option)Type)},+ {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardware$(Option)Class)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error." GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output $(InfName)": Registry error: add value list." CloseRegKey $(KeyParameters) CloseRegKey $(KeyAdapterRules) GoTo FatalRegistry EndIf CloseRegKey $(KeyAdapterRules) ; Now, add the NetCard information to the software section. ; we use this information for deleting this netcard on removal of PPTP OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct IfStr $(KeyProduct) != $(KeyNull) SetRegValue $(KeyProduct) {NetCard,$(NoTitle),$(!REG_VT_DWORD),$(AdapterNumber)} CloseRegKey $(KeyProduct) EndIf GoTo WriteParameters ;*********************************************************************** ; ;*********************************************************************** WriteParameters = + ; Since no simple arithmetic is possible, a little convulated way to create ; the address list from the number of line devices. Also configure the ; NetServer IP Addresses LoadLibrary "x" $(!STF_CWDDIR)raspptpc.dll RASPPTPDLGHANDLE Debug-Output $(InfName)": Getting info from GetChassisConfiguration" 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) ; To support Unattended mode of installing pptp (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 pptp parameters. ; else ; this is an attended mode of install ; endif LibraryProcedure Result, $(RASPPTPDLGHANDLE), GetChassisConfiguration $(!NTN_InstallMode) + $(!STF_GUI_UNATTENDED) $(!STF_UNATTENDED) $(!STF_UNATTENDED_SECTION) Debug-Output $(InfName)": Result value is :"$(Result) Set NumberOfLineDevices = *($(Result), 1) FreeLibrary $(RASPPTPDLGHANDLE) ifstr(i) $(NumberOfLineDevices) == "EXITSETUP" Read-Syms InvokeCancelDlg$(!STF_LANGUAGE) Debug-Output $(InfName)": GetChassisConfiguration User selected ExitSetup" Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", $(InvokeCancelMsg) GoTo SetFailed endif Debug-Output $(InfName)": Number Of Line Devices are :"$(NumberOfLineDevices) Shell "" CreateFullTapiAddrList $(AdapterNumber) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Cannot create the TAPI address list" goto ShellCodeError endif Set FullTapiAddrList = $($R0) Set TapiAddressList = {} ForListDo $(FullTapiAddrList) Set CurListItem = $($) Set CurListNumber = $(#) IfInt $(CurListNumber) <= $(NumberOfLineDevices) Set TapiAddressList = >($(TapiAddressList), $(CurListItem)) Endif EndForListDo Debug-Output $(InfName)": Modified Tapi Address List is :"$(TapiAddressList) Set NewValueList = {+ {AddressList,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TapiAddressList)},+ ;{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+ ;{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusType)},+ {DeviceName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+ ;{InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(InterruptNumber)},+ {LineType,$(NoTitle),$(!REG_VT_DWORD),$(LineType)},+ {MediaType,$(NoTitle),$(!REG_VT_SZ),$(TapiMediaType)},+ ;{RamBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(RamBaseAddress)}+ } Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList) CloseRegKey $(KeyParameters) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error." GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR Debug-Output $(InfName)": Registry error: Add value list" GoTo FatalRegistry EndIf ; ; Skip TAPI/RAS setup if already installed. ; IfStr(i) $(!NTN_InstallMode) == configure GoTo SuccessfulOption EndIf ; Set PPTPTcpMaxDataRetransmissions to 9 in services\tcpip\parameters OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\TcpIp\Parameters" $(MAXIMUM_ALLOWED) TcpKey IfStr(i) $(TcpKey) != "" Debug-Output $(InfName)": setting tcpip\parameters\PPTPTcpMaxDataRetransmissions to 9" SetRegValue $(TcpKey) {PPTPTcpMaxDataRetransmissions,$(NoTitle),$(!REG_VT_DWORD), 9} CloseRegKey $(TcpKey) Else Debug-Output $(InfName)": Registry error: can't open services\tcpip key" EndIf ; ; Create the SOFTWARE\Microsoft\TAPI DEVICES\RASPPTPM key ; ; This key name should be the same as the miniport driver name without the ; extension - RASPPTPM.SYS OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft" $(MAXIMUM_ALLOWED) BaseKey shell "" HtCreateRegKey $(BaseKey) "TAPI DEVICES\RASPPTPM" IfStr(i) $($R0) != NO_ERROR Debug-Output $(InfName)": Error creating registry key!" GoTo FatalRegistry EndIf Set TapiDeviceKey = $($R1) Set NewValueList = {+ {Address,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TapiAddressList)},+ {"Media Type",$(NoTitle),$(!REG_VT_SZ),$(TapiMediaType)}} Shell $(UtilityInf), AddValueList, $(TapiDeviceKey), $(NewValueList) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error." GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR Debug-Output $(InfName)": Registry error: Add value list" GoTo FatalRegistry EndIf CloseRegKey $(TapiDeviceKey) CloseRegKey $(BaseKey) ; if TCP/IP is not installed, then shell to the TCP/IP setup INF file ; to install it only in the attended mode. ; ifstr(i) $(!STF_INSTALL_MODE) == EXPRESS GoTo InstallRas Else Shell "" InstallTCPIPIfNotInstalled $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Cannot install TCP/IP if not already installed" goto ShellCodeError endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "Error installing TCP/IP" set Error = "Error installing TCP/IP" goto FatalError endif ; Shell "" DebugGlobalFlags "After TCP/IP" ; EndIf InstallRas = + ; install or configure RAS only in attended mode of install ifstr(i) $(!STF_INSTALL_MODE) == EXPRESS GoTo SuccessfulOption Else ; ; if RAS is not installed, then shell ras setup INF file to install RAS ; else invoke RAS to allow user to configure RAS for RASPPTP. ; Read-Syms InvokeRasDlg$(!STF_LANGUAGE) Shell "oemnsvra.inf" CheckRasInstalled IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": Error Shelling the RAS INF file oemnsvra.inf" Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), + "STATUS", $(InvokeRasError) IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf GoTo RASSetup EndIf Set RasInstalled = $($R0) Debug-Output $(InfName)": Is RAS Installed? "$(RasInstalled) ; ; display a message to the user that RAS setup will now be invoked ; ; give the user a choice to say YES or NO to this query. IfStr(i) $(RasInstalled) == FALSE read-syms InvokeRasSetupDlg$(!STF_LANGUAGE) ui start "InvokeRasSetup" ifstr(i) $(DLGEVENT) == "YES" goto RASSetup else-ifstr(i) $(DLGEVENT) == "NO" GoTo SuccessfulOption endif ; Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", + ; $(InvokeRasSetupMsg) ; IfInt $($ShellCode) != $(!SHELL_CODE_OK) ; GoTo RASSetup ; EndIf Else read-syms InvokeRasConfigDlg$(!STF_LANGUAGE) ui start "InvokeRasConfig" ifstr(i) $(DLGEVENT) == "YES" goto RASSetup else-ifstr(i) $(DLGEVENT) == "NO" GoTo SuccessfulOption endif ; Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", + ; $(InvokeRasConfigMsg) ; IfInt $($ShellCode) != $(!SHELL_CODE_OK) ; GoTo RASSetup ; EndIf EndIf EndWait GoTo RASSetup Endif ;*********************************************************************** ; ;*********************************************************************** RASSetup =+ ; force the copy flags to YES to allow RAS setup to copy files ; even if in config mode. Set AddCopy = YES Set DoCopy = YES Set DoConfig = YES ; ; change the global install mode flag to configure if RAS is already installed ; IfStr(i) $(RasInstalled) == TRUE Set SaveNTN_InstallMode = $(!NTN_InstallMode) Set !NTN_InstallMode = configure EndIf ; if we have already obtained the SrcDir use that instead of ; prompting the user again Set PREV_SRCDIR = $(!STF_SRCDIR_OVERRIDE) Set !STF_SRCDIR_OVERRIDE = $(SrcDir) ; ; now invoke RAS setup to do the right thing ; Shell "oemnsvra.inf" InstallOption $(!STF_LANGUAGE) "RAS" $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig) set !STF_SRCDIR_OVERRIDE = $(PREV_SRCDIR) ; ; restore the global instal mode flag if it was changed ; IfStr(i) $(RasInstalled) == TRUE Set !NTN_InstallMode = $(SaveNTN_InstallMode) EndIf IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": Error Shelling the RAS INF file oemnsvra.inf" Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", + $(InvokeRasError) IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf GoTo SuccessfulOption EndIf EndWait GoTo SuccessfulOption ;*********************************************************************** ; ;*********************************************************************** BindingAdapter =+ Set Error = "Binding: Sorry, not yet implemented." GoTo FatalError ;*********************************************************************** ; ;*********************************************************************** RemoveAdapter = + ;RASPPTP_SPECIFIC_START OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct IfStr $(KeyProduct) != $(KeyNull) GetRegValue $(KeyProduct),"NetCard", NetCardInfo Set NetCard = *($(NetCardInfo), 4) Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $(NetworkCardKeyName)"\"$(NetCard) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error" GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR GoTo FatalRegistry EndIf EndIf Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(PPTPProductSoftwareName) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error" GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR GoTo FatalRegistry EndIf ; Remove the place holder RASPPTP transport entry OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyBase) + $(MAXIMUM_ALLOWED) ProductKey Ifstr $(ProductKey) == $(KeyNull) Debug-Output "OEMNXPPP.INF: could not open Software product key" else DeleteRegTree $(ProductKey) $(ProductRASPPTPName) CloseRegKey $(ProductKey) endif ; remove the TAPI DEVICES port information OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\TAPI DEVICES" $(MAXIMUM_ALLOWED) BaseKey IfStr $(BaseKey) != $(KeyNull) DeleteRegTree $(BaseKey) $(ProductSoftwareName) EndIf ; remove PPTPTcpMaxDataRetransmissions value from services\tcpip\parameters which ; was added when PPTP was installed. OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\TcpIp\Parameters" $(MAXIMUM_ALLOWED) TcpKey IfStr(i) $(TcpKey) != "" Debug-Output $(InfName)": removing tcpip\parameters\PPTPTcpMaxDataRetransmissions value" DeleteRegValue $(TcpKey) "PPTPTcpMaxDataRetransmissions" CloseRegKey $(TcpKey) Else Debug-Output $(InfName)": Registry error: can't open services\tcpip key" EndIf ; ; if RAS is installed, then shell ras setup INF file to allow user ; to delete PPTP ports ; Read-Syms InvokeRasDlg$(!STF_LANGUAGE) Shell "oemnsvra.inf" CheckRasInstalled IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": Error Shelling the RAS INF file oemnsvra.inf" Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), + "STATUS", $(InvokeRasError) IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf GoTo RASSetup2 EndIf Set RasInstalled = $($R0) Debug-Output $(InfName)": Is RAS Installed? "$(RasInstalled) ; ; display a message to the user that RAS setup will now be invoked ; IfStr(i) $(RasInstalled) == FALSE goto end Else Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", + $(InvokeRasConfigMsg2) IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo RASSetup2 EndIf EndIf EndWait GoTo RASSetup2 ;*********************************************************************** ; ;*********************************************************************** RASSetup2 =+ Set AddCopy = NO Set DoCopy = NO Set DoConfig = NO ; ; change the global install mode flag to configure if RAS is already installed ; Set SaveNTN_InstallMode = $(!NTN_InstallMode) Set !NTN_InstallMode = configure ; ; now invoke RAS setup to do the right thing ; Shell "oemnsvra.inf" InstallOption $(!STF_LANGUAGE) "RAS" $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig) ; ; restore the global instal mode flag if it was changed ; Set !NTN_InstallMode = $(SaveNTN_InstallMode) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": Error Shelling the RAS INF file oemnsvra.inf" Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", + $(InvokeRasError) IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf GoTo end EndIf ;RASPPTP_SPECIFIC_END GoTo end ;*********************************************************************** ; ;*********************************************************************** UpgradeSoftware = + Debug-Output $(InfName)": comes into 1st part of upgrade" OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct IfStr $(KeyProduct) != $(KeyNull) GetRegValue $(KeyProduct),"MajorVersion", VersionInfo Set Version = *($(VersionInfo), 4) Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error" GoTo ShellCodeError EndIf Set !UG_Filename = $($R0) IfStr(i) $(!UG_Filename) != "" Debug-Output $(InfName)": starts to install" install "Install-Update" IfStr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS GoTo FatalError EndIf EndIf SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)} SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)} IfInt $(Version) != $(ProductVersion) EndIf CloseRegKey $(KeyProduct) Else GoTo FatalRegistry EndIf ;RASPPTPE_SPECIFIC_START Debug-Output $(InfName)": comes into PPTPE part of upgrade" OpenRegKey $(!REG_H_LOCAL) "" $(PPTPProductKeyName) $(MAXIMUM_ALLOWED) PPTPKeyProduct IfStr $(PPTPKeyProduct) != $(KeyNull) SetRegValue $(PPTPKeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(PPTPProductMajorVersion)} SetRegValue $(PPTPKeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(PPTPProductMinorVersion)} CloseRegKey $(PPTPKeyProduct) Else GoTo FatalRegistry EndIf ;RASPPTPE_SPECIFIC_END ;RASPPTP_SPECIFIC_START ; ; This is the location that the NCPA cares about ; Debug-Output $(InfName)": comes into PPTP part of upgrade" OpenRegKey $(!REG_H_LOCAL) "" $(ProductRASPPTPKeyName) $(MAXIMUM_ALLOWED) PPTPKeyProduct IfStr $(PPTPKeyProduct) != $(KeyNull) SetRegValue $(PPTPKeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(PPTPProductMajorVersion)} SetRegValue $(PPTPKeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(PPTPProductMinorVersion)} SetRegValue $(PPTPKeyProduct) {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductRASPPTPDescription)} SetRegValue $(PPTPKeyProduct) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)} CloseRegKey $(PPTPKeyProduct) Else GoTo FatalRegistry EndIf ;RASPPTPE_SPECIFIC_END GoTo end ;*********************************************************************** ; ;*********************************************************************** SuccessfulOption = + GoTo end ;*********************************************************************** ; ;*********************************************************************** Abandon = + ForListDo $(OEM_ABANDON_OPTIONS) Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $($) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error" GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR GoTo FatalRegistry EndIf EndForListDo IfStr(i) $(OEM_ABANDON_SOFTWARE) == TRUE Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), FALSE IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error" GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR GoTo FatalRegistry EndIf EndIf ;RASPPTP_SPECIFIC_START IfStr(i) $(OEM_ABANDON_PPTP_SOFTWARE) == TRUE Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(PPTPProductSoftwareName), FALSE IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error" GoTo ShellCodeError EndIf Set RegistryErrorIndex = $($R0) IfStr(i) $(RegistryErrorIndex) != NO_ERROR GoTo FatalRegistry EndIf EndIf ;RASPPTP_SPECIFIC_END GoTo end ;*********************************************************************** ; ;*********************************************************************** WarningMsg = + Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error) IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf IfStr(i) $($R1) == "OK" GoTo $(to) Else-IfStr(i) $($R1) == "CANCEL" GoTo $(from) EndIf GoTo end ;*********************************************************************** ; ;*********************************************************************** NonFatalInfo = + Set Severity = STATUS Set CommonStatus = STATUS_USERCANCEL IfStr(i) $(Error) == "" Set Severity = NONFATAL Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf Set Error = $($R0) EndIf Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error) IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf IfStr(i) $($R1) == "OK" GoTo $(from) EndIf GoTo end ;*********************************************************************** ; ;*********************************************************************** FatalRegistry = + Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex) IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf Set Error = $($R0) GoTo FatalError ;*********************************************************************** ; ;*********************************************************************** FatalDetect = + Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": ShellCode error: cannot get an error string." GoTo ShellCodeError EndIf Set Error = $($R0) GoTo FatalError ;*********************************************************************** ; ;*********************************************************************** FatalError = + IfStr(i) $(Error) == "" Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf Set Error = $($R0) EndIf Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error) IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf GoTo SetFailed ;*********************************************************************** ; ;*********************************************************************** ShellCodeError = + Set DlgType = "MessageBox" Set STF_MB_TITLE = $(ShellCodeErrorTitle) Set STF_MB_TEXT = $(ShellCodeErrorText) Set STF_MB_TYPE = 1 Set STF_MB_ICON = 3 Set STF_MB_DEF = 1 UI Start "Error Message" GoTo SetFailed ;*********************************************************************** ; ;*********************************************************************** SetFailed = + Set CommonStatus = STATUS_FAILED IfStr(i) $(OEM_ABANDON_ON) == TRUE Set OEM_ABANDON_ON = FALSE GoTo Abandon EndIf GoTo end ;*********************************************************************** ; ;*********************************************************************** end = + Return $(CommonStatus) ;*********************************************************************** ; ;*********************************************************************** [HtCreateRegKey] Debug-Output $(InfName)": Entering [HtCreateRegKey]" Set ECR_Result = NO_ERROR Set ECR_BaseKeyHandle = $($0) Set ECR_NewPath = $($1) Set KeyNull = "" Set MAXIMUM_ALLOWED = 33554432 Debug-Output $(InfName)": HtCreateRegKey - ECR_BaseKeyHandle = "$(ECR_BaseKeyHandle) Debug-Output $(InfName)": ECR_NewPath = "$(ECR_NewPath) Debug-Output $(InfName)": MAXIMUM_ALLOWED = "$(MAXIMUM_ALLOWED) Debug-Output $(InfName)": KeyNull = "$(KeyNull) OpenRegKey $(ECR_BaseKeyHandle) "" $(ECR_NewPath) $(MAXIMUM_ALLOWED) + ECR_BaseKey Debug-Output $(InfName)": ECR_BaseKey = "$(ECR_BaseKey) Debug-Output $(InfName)": OpenRegKey returned "$($R0) IfStr $(ECR_BaseKey) == $(KeyNull) Debug-Output $(InfName)": ECR_BaseKey == KeyNull" Else Debug-Output $(InfName)": ECR_BaseKey != KeyNull" Set ECR_KeyHandle = $(ECR_BaseKey) GoTo ECR_Return EndIf Set ECR_TmpPath = "" Split-String $(ECR_NewPath) "\" ECR_PList Debug-Output $(InfName)": ECR_PList = "$(ECR_PList) ForListDo $(ECR_PList) IfStr(i) $($) != "\" IfInt $(#) == 1 Set ECR_TmpPath = $($) Else Set ECR_TmpPath = $(ECR_TmpPath)"\"$($) EndIf Debug-Output $(InfName)": Determining if "$(ECR_TmpPath)" exists" OpenRegKey $(ECR_BaseKeyHandle) "" $(ECR_TmpPath) $(MAXIMUM_ALLOWED) ECR_BaseKey IfStr $(ECR_BaseKey) == $(KeyNull) Debug-Output $(InfName)": Creating "$(ECR_TmpPath) CreateRegKey $(ECR_BaseKeyHandle) {$(ECR_TmpPath),0,GenericClass} "" $(MAXIMUM_ALLOWED) "" ECR_KeyHandle IfStr(i) $(ECR_KeyHandle) == $(KeyNull) Set ECR_Result = $($R0) GoTo ECR_Return EndIf EndIf EndIf EndForListDo ECR_Return = + Return $(ECR_Result) $(ECR_KeyHandle) ;*********************************************************************** ; ;*********************************************************************** [InstallTCPIPIfNotInstalled] Debug-Output $(InfName)"InstallTCPIPIfNotInstalled entry " Debug-Output $(InfName)"!NTN_ServiceBase is "$(!NTN_ServiceBase) set SrcDir = $($0) set AddCopy = $($1) set DoCopy = $($2) set DoConfig = $($3) Read-Syms InvokeTCPIPDlg$(!STF_LANGUAGE) set TcpIpKeyName = $(!NTN_ServiceBase)"\TcpIp" Set KeyNull = "" Set status = STATUS_FAILED Set TcpIpInstalled = FALSE Set MAXIMUM_ALLOWED = 33554432 set Protocol = "TCPIP" set KeyService = $(KeyNull) set DeleteFlag = 0 set DeleteFlagInfo = {} OpenRegKey $(!REG_H_LOCAL) "" $(TcpIpKeyName) $(MAXIMUM_ALLOWED) KeyService Ifstr(i) $(KeyService) != $(KeyNull) GetRegValue $(KeyService),"DeleteFlag", DeleteFlagInfo set DeleteFlag = *($(DeleteFlagInfo), 4) ifint $(DeleteFlag) != 1 set TcpIpInstalled = TRUE endif CloseRegKey $(KeyService) endif Debug-Output $(InfName)"TCP/IP Installed? "$(TcpIpInstalled) Ifstr(i) $(TcpIpInstalled) == "FALSE" Debug-Output $(InfName)"Installing TCP/IP" Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", + $(InvokeTCPSetupMsg) set InvokedByRas = FALSE ; set the !STF_SRCDIR_OVERRIDE to SrcDir so that TCP setup can ; use this information rather than ask the user again for ; source directory. Debug-Output $(InfName)": resetting stf_srcdir_override flag" Set PREV_SRCDIR = $(!STF_SRCDIR_OVERRIDE) Set !STF_SRCDIR_OVERRIDE = $(SrcDir) Shell "oemnxptc.inf" InstallOption $(!STF_LANGUAGE) "TC" $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig) $(InvokedByRas) set !STF_SRCDIR_OVERRIDE = $(PREV_SRCDIR) Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)"SHELL ERROR! during TCP/IP installation" Goto InstallTCPEscape Endif Set status = $($R0) Ifstr(i) $(status) != STATUS_SUCCESSFUL Ifstr(i) $(status) != STATUS_USERCANCEL Debug-Output $(InfName)"oemnxptc.inf returned "$(status) Goto InstallTCPEscape Endif Endif Else set status = STATUS_SUCCESSFUL Endif ;*********************************************************************** ; ;*********************************************************************** InstallTCPEscape = + set RetStatus = $(status) return $(RetStatus) ;RASPPTP_SPECIFIC_START ;*********************************************************************** ; ;*********************************************************************** [AddUSRMediaGroupToServiceGroupOrder] Debug-Output $(InfName)": Entering [AddUSRMediaGroupToServiceGroupOrder]" Set MAXIMUM_ALLOWED = 33554432 Set KeyNull = "" Read-Syms SMANFileConstants 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 "AddUSRMediaGroupToServiceGroupOrder current list "$(OldList) Ifcontains(i) $(PPTPGroupName) not-in $(OldList) set NewGroupList = {} ForListDo $(OldList) ifstr(i) $($) == "NDIS" set NewGroupList = >($(NewGroupList), $(PPTPGroupName)) endif set NewGroupList = >($(NewGroupList), $($)) EndForListDo Debug-Output "AddUSRMediaGroupToServiceGroupOrder new list "$(NewGroupList) SetRegValue $(KeyGroup) {List, 0,$(!REG_VT_MULTI_SZ),$(NewGroupList)} endif CloseRegKey $(KeyGroup) else Debug-Output "AddUSRMediaGroupToServiceGroupOrder error opening ServiceGroupOrder key." Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", "ServiceGroupOrder Update Failed" endif return ;RASPPTP_SPECIFIC_END ;*********************************************************************** ; ;*********************************************************************** [UpdateAddressList] Debug-Output $(InfName)": Entering [UpdateAddressList]" Set NumberLineDevices = $($0) Set AdapNum = $($1) Set DriverName = $($2) Set MediaType = $($3) Set MAXIMUM_ALLOWED = 33554432 Set KeyNull = "" Debug-Output $(InfName)": number of line devices received value "$(NumberLineDevices) Debug-Output $(InfName)": adapter number received value "$(AdapNum) Debug-Output $(InfName)": driver name received value "$(DriverName) ; create the new address list Shell "" CreateFullTapiAddrList $(AdapNum) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Cannot create the new TAPI address list" goto ShellCodeError endif Set NewTapiAddrList = $($R0) Set TapiAddressList = {} ForListDo $(NewTapiAddrList) Set CurListItem = $($) Set CurListNumber = $(#) IfInt $(CurListNumber) <= $(NumberLineDevices) Set TapiAddressList = >($(TapiAddressList), $(CurListItem)) Endif EndForListDo Debug-Output $(InfName)": Modified new Tapi Address List is :"$(TapiAddressList) ; ; delete the old value under RASPPTP driver and create new one ; set RASPPTPAddress = "SYSTEM\CurrentControlSet\Services\"$(DriverName)$(AdapNum)"\Parameters" Debug-Output $(InfName)": RASPPTPAddress is "$(RASPPTPAddress) OpenRegKey $(!REG_H_LOCAL) "" $(RASPPTPAddress) $(MAXIMUM_ALLOWED) KeyParam Debug-Output $(InfName)": keyparam value is "$(KeyParam) Ifstr(i) $(KeyParam) != $(KeyNull) Debug-Output $(InfName)": entering to set usrwan2 value" DeleteRegValue $(KeyParam) "AddressList" SetRegValue $(KeyParam) {AddressList, 0,$(!REG_VT_MULTI_SZ),$(TapiAddressList)} CloseRegKey $(KeyParam) EndIf ; ; Create the SOFRWARE\Microsoft\TAPI DEVICES\RASPPTPM key or open it if exists ; and set the new address value ; This key name should be the same as the miniport driver name without the ; extension - RASPPTPM.SYS ; OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft" $(MAXIMUM_ALLOWED) BaseKey Shell "" HtCreateRegKey $(BaseKey) "TAPI DEVICES\RASPPTPM" IfStr(i) $($R0) != NO_ERROR Debug-Output $(InfName)": Error creating registry key!" GoTo FatalRegistry EndIf Set TapiDeviceKey = $($R1) DeleteRegValue $(TapiDeviceKey) "Address" DeleteRegValue $(TapiDeviceKey) "Media Type" SetRegValue $(TapiDeviceKey) {Address, 0,$(!REG_VT_MULTI_SZ),$(TapiAddressList)} SetRegValue $(TapiDeviceKey) {"Media Type", 0,$(!REG_VT_SZ),$(MediaType)} CloseRegKey $(TapiDeviceKey) CloseRegKey $(BaseKey) ; shell to RAS and invoke it Read-Syms InvokeRasDlg$(!STF_LANGUAGE) Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", + $(InvokeRasConfigMsg) Set AddCopy = YES Set DoCopy = YES Set DoConfig = YES ; ; change the global install mode flag to configure RAS since already installed ; Set SaveNTN_InstallMode = $(!NTN_InstallMode) Set !NTN_InstallMode = configure ; now invoke RAS Shell "oemnsvra.inf" InstallOption $(!STF_LANGUAGE) "RAS" "" $(AddCopy) $(DoCopy) $(DoConfig) ; ; restore the global instal mode flag ; Set !NTN_InstallMode = $(SaveNTN_InstallMode) IfInt $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output $(InfName)": Error Shelling the RAS INF file oemnsvra.inf" Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", + $(InvokeRasError) IfInt $($ShellCode) != $(!SHELL_CODE_OK) GoTo ShellCodeError EndIf EndIf EndWait return ;*********************************************************************** ; ;*********************************************************************** [CreateFullTapiAddrList] Debug-Output $(InfName)": Entering [TapiAddrList]" Set AdapterNum = $($0) Set FullTapiAddrList = {$(AdapterNum)"-1-0", $(AdapterNum)"-2-0", $(AdapterNum)"-3-0", + $(AdapterNum)"-4-0", $(AdapterNum)"-5-0", $(AdapterNum)"-6-0", + $(AdapterNum)"-7-0", $(AdapterNum)"-8-0", $(AdapterNum)"-9-0", + $(AdapterNum)"-10-0", $(AdapterNum)"-11-0", $(AdapterNum)"-12-0", + $(AdapterNum)"-13-0", $(AdapterNum)"-14-0", $(AdapterNum)"-15-0", + $(AdapterNum)"-16-0", $(AdapterNum)"-17-0", $(AdapterNum)"-18-0", + $(AdapterNum)"-19-0", $(AdapterNum)"-20-0", $(AdapterNum)"-21-0", + $(AdapterNum)"-22-0", $(AdapterNum)"-23-0", $(AdapterNum)"-24-0", + $(AdapterNum)"-25-0", $(AdapterNum)"-26-0", $(AdapterNum)"-27-0", + $(AdapterNum)"-28-0", $(AdapterNum)"-29-0", $(AdapterNum)"-30-0", + $(AdapterNum)"-31-0", $(AdapterNum)"-32-0", $(AdapterNum)"-33-0", + $(AdapterNum)"-34-0", $(AdapterNum)"-35-0", $(AdapterNum)"-36-0", + $(AdapterNum)"-37-0", $(AdapterNum)"-38-0", $(AdapterNum)"-39-0", + $(AdapterNum)"-40-0", $(AdapterNum)"-41-0", $(AdapterNum)"-42-0", + $(AdapterNum)"-43-0", $(AdapterNum)"-44-0", $(AdapterNum)"-45-0", + $(AdapterNum)"-46-0", $(AdapterNum)"-47-0", $(AdapterNum)"-48-0", + $(AdapterNum)"-49-0", $(AdapterNum)"-50-0", $(AdapterNum)"-51-0", + $(AdapterNum)"-52-0", $(AdapterNum)"-53-0", $(AdapterNum)"-54-0", + $(AdapterNum)"-55-0", $(AdapterNum)"-56-0", $(AdapterNum)"-57-0", + $(AdapterNum)"-58-0", $(AdapterNum)"-59-0", $(AdapterNum)"-60-0", + $(AdapterNum)"-61-0", $(AdapterNum)"-62-0", $(AdapterNum)"-63-0", + $(AdapterNum)"-64-0", $(AdapterNum)"-65-0", $(AdapterNum)"-66-0", + $(AdapterNum)"-67-0", $(AdapterNum)"-68-0", $(AdapterNum)"-69-0", + $(AdapterNum)"-70-0", $(AdapterNum)"-71-0", $(AdapterNum)"-72-0", + $(AdapterNum)"-73-0", $(AdapterNum)"-74-0", $(AdapterNum)"-75-0", + $(AdapterNum)"-76-0", $(AdapterNum)"-77-0", $(AdapterNum)"-78-0", + $(AdapterNum)"-79-0", $(AdapterNum)"-80-0", $(AdapterNum)"-81-0", + $(AdapterNum)"-82-0", $(AdapterNum)"-83-0", $(AdapterNum)"-84-0", + $(AdapterNum)"-85-0", $(AdapterNum)"-86-0", $(AdapterNum)"-87-0", + $(AdapterNum)"-88-0", $(AdapterNum)"-89-0", $(AdapterNum)"-90-0", + $(AdapterNum)"-91-0", $(AdapterNum)"-92-0", $(AdapterNum)"-93-0", + $(AdapterNum)"-94-0", $(AdapterNum)"-95-0", $(AdapterNum)"-96-0", + $(AdapterNum)"-97-0", $(AdapterNum)"-98-0", $(AdapterNum)"-99-0", + $(AdapterNum)"-100-0", $(AdapterNum)"-101-0", $(AdapterNum)"-102-0", + $(AdapterNum)"-103-0", $(AdapterNum)"-104-0", $(AdapterNum)"-105-0", + $(AdapterNum)"-106-0", $(AdapterNum)"-107-0", $(AdapterNum)"-108-0", + $(AdapterNum)"-109-0", $(AdapterNum)"-110-0", $(AdapterNum)"-111-0", + $(AdapterNum)"-112-0", $(AdapterNum)"-113-0", $(AdapterNum)"-114-0", $(AdapterNum)"-115-0", + $(AdapterNum)"-116-0", $(AdapterNum)"-117-0", $(AdapterNum)"-118-0", + $(AdapterNum)"-119-0", $(AdapterNum)"-120-0", $(AdapterNum)"-121-0", + $(AdapterNum)"-122-0", $(AdapterNum)"-123-0", $(AdapterNum)"-124-0", + $(AdapterNum)"-125-0", $(AdapterNum)"-126-0", $(AdapterNum)"-127-0", + $(AdapterNum)"-128-0", $(AdapterNum)"-129-0", $(AdapterNum)"-130-0", + $(AdapterNum)"-131-0", $(AdapterNum)"-132-0", $(AdapterNum)"-133-0", + $(AdapterNum)"-134-0", $(AdapterNum)"-135-0", $(AdapterNum)"-136-0", + $(AdapterNum)"-137-0", $(AdapterNum)"-138-0", $(AdapterNum)"-139-0", + $(AdapterNum)"-140-0", $(AdapterNum)"-141-0", $(AdapterNum)"-142-0", + $(AdapterNum)"-143-0", $(AdapterNum)"-144-0", $(AdapterNum)"-145-0", + $(AdapterNum)"-146-0", $(AdapterNum)"-147-0", $(AdapterNum)"-148-0", + $(AdapterNum)"-149-0", $(AdapterNum)"-150-0", $(AdapterNum)"-151-0", + $(AdapterNum)"-152-0", $(AdapterNum)"-153-0", $(AdapterNum)"-154-0", + $(AdapterNum)"-155-0", $(AdapterNum)"-156-0", $(AdapterNum)"-157-0", + $(AdapterNum)"-158-0", $(AdapterNum)"-159-0", $(AdapterNum)"-160-0", + $(AdapterNum)"-161-0", $(AdapterNum)"-162-0", $(AdapterNum)"-163-0", + $(AdapterNum)"-164-0", $(AdapterNum)"-165-0", $(AdapterNum)"-166-0", + $(AdapterNum)"-167-0", $(AdapterNum)"-168-0", $(AdapterNum)"-169-0", + $(AdapterNum)"-170-0", $(AdapterNum)"-171-0", $(AdapterNum)"-172-0", + $(AdapterNum)"-173-0", $(AdapterNum)"-174-0", $(AdapterNum)"-175-0", + $(AdapterNum)"-176-0", $(AdapterNum)"-177-0", $(AdapterNum)"-178-0", + $(AdapterNum)"-179-0", $(AdapterNum)"-180-0", $(AdapterNum)"-181-0", + $(AdapterNum)"-182-0", $(AdapterNum)"-183-0", $(AdapterNum)"-184-0", + $(AdapterNum)"-185-0", $(AdapterNum)"-186-0", $(AdapterNum)"-187-0", + $(AdapterNum)"-188-0", $(AdapterNum)"-189-0", $(AdapterNum)"-190-0", + $(AdapterNum)"-191-0", $(AdapterNum)"-192-0", $(AdapterNum)"-193-0", + $(AdapterNum)"-194-0", $(AdapterNum)"-195-0", $(AdapterNum)"-196-0", + $(AdapterNum)"-197-0", $(AdapterNum)"-198-0", $(AdapterNum)"-199-0", + $(AdapterNum)"-200-0", $(AdapterNum)"-201-0", $(AdapterNum)"-202-0", + $(AdapterNum)"-203-0", $(AdapterNum)"-204-0", $(AdapterNum)"-205-0", + $(AdapterNum)"-206-0", $(AdapterNum)"-207-0", $(AdapterNum)"-208-0", + $(AdapterNum)"-209-0", $(AdapterNum)"-210-0", $(AdapterNum)"-211-0", + $(AdapterNum)"-212-0", $(AdapterNum)"-213-0", $(AdapterNum)"-214-0", $(AdapterNum)"-215-0", + $(AdapterNum)"-216-0", $(AdapterNum)"-217-0", $(AdapterNum)"-218-0", + $(AdapterNum)"-219-0", $(AdapterNum)"-220-0", $(AdapterNum)"-221-0", + $(AdapterNum)"-222-0", $(AdapterNum)"-223-0", $(AdapterNum)"-224-0", + $(AdapterNum)"-225-0", $(AdapterNum)"-226-0", $(AdapterNum)"-227-0", + $(AdapterNum)"-228-0", $(AdapterNum)"-229-0", $(AdapterNum)"-230-0", + $(AdapterNum)"-231-0", $(AdapterNum)"-232-0", $(AdapterNum)"-233-0", + $(AdapterNum)"-234-0", $(AdapterNum)"-235-0", $(AdapterNum)"-236-0", + $(AdapterNum)"-237-0", $(AdapterNum)"-238-0", $(AdapterNum)"-239-0", + $(AdapterNum)"-240-0", $(AdapterNum)"-241-0", $(AdapterNum)"-242-0", + $(AdapterNum)"-243-0", $(AdapterNum)"-244-0", $(AdapterNum)"-245-0", + $(AdapterNum)"-246-0", $(AdapterNum)"-247-0", $(AdapterNum)"-248-0", + $(AdapterNum)"-249-0", $(AdapterNum)"-250-0", $(AdapterNum)"-251-0", + $(AdapterNum)"-252-0", $(AdapterNum)"-253-0", $(AdapterNum)"-254-0", + $(AdapterNum)"-255-0", $(AdapterNum)"-256-0"} return $(FullTapiAddrList) [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 MAXIMUM_ALLOWED = 33554432 set SERVICE_NO_CHANGE = 4294967295 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) ;*********************************************************************** ; ;*********************************************************************** [DebugConfiguration] Debug-Output $(!p:InfName)": **CONFIGURATION STATE: "$($0) Debug-Output $(!p:InfName)": InterruptNumber is "$(!p:InterruptNumber) Debug-Output $(!p:InfName)": RamBaseAddress is "$(!p:RamBaseAddress) Return ;*********************************************************************** ; ;*********************************************************************** [DebugGlobalFlags] Debug-Output $(InfName)": **CONFIGURATION STATE: "$($0) Debug-Output $(InfName)": !STF_SRCDIR_USED value is "$(!STF_SRCDIR_USED) Debug-Output $(InfName)": !STF_SRCDIR_KEYED value is "$(!STF_SRCDIR_KEYED) Debug-Output $(InfName)": !STF_SRCDIR_OVERRIDE value is "$(!STF_SRCDIR_OVERRIDE) Return ;*********************************************************************** ; ;*********************************************************************** [Install-Option] Set STF_VITAL = "" IfStr(i) $(AddCopy) == "YES" AddSectionFilesToCopyList Files-RASPPTPDLL $(SrcDir) $(!STF_WINDOWSSYSPATH) ;RASPPTP_SPECIFIC_START AddSectionFilesToCopyList Files-RASPPTPDRV $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers ;RASPPTP_SPECIFIC_END EndIf IfStr(i) $(DoCopy) == "YES" Set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList Else LibraryProcedure STATUS, $(!NCPA_HANDLE), CopySingleFile $(!STF_HWND) $(SrcDir)\RASPPTPC.DLL $(!STF_WINDOWSSYSPATH)\RASPPTPC.DLL EndIf Exit ;*********************************************************************** ; ;*********************************************************************** [Install-Update] Set STF_VITAL = "" Set STF_OVERWRITE = "VERIFYSOURCEOLDER" AddSectionFilesToCopyList Files-RASPPTPDLL $(SrcDir) $(!STF_WINDOWSSYSPATH) ;RASPPTP_SPECIFIC_START AddSectionFilesToCopyList Files-RASPPTPDRV $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers ;RASPPTP_SPECIFIC_END Set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList Exit