home *** CD-ROM | disk | FTP | other *** search
INI File | 2003-11-20 | 112.0 KB | 3,425 lines |
- [Identification]
- OptionType = NetService
- [Options]
- OPFFLTNT
- [FileConstants]
- NoNdisWanSupport = 0
- UtilityInf = "UTILITY.INF"
- subroutineinf = "SUBROUTN.INF"
- SoftwareType = "service"
- Exit_Code = 0
- NetEventDLL = "%SystemRoot%\System32\netevent.dll"
- Manufacturer = "Microsoft"
- ProductMajorVersion = "5"
- ProductMinorVersion = "1"
- ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
-
- ProductSoftwareName = IM
- ProductSoftwareName4.0 = OPFFLTNT
- ProductSoftwareImagePath = "\SystemRoot\System32\drivers\OPFFLTNT.SYS"
- ProductSoftKey = $(!NTN_SoftwareBase)"\"$(Manufacturer)
- ProductKeyName = $(ProductSoftKey)"\"$(ProductSoftwareName)"\CurrentVersion"
- ProductKeyName4.0 = $(ProductSoftKey)"\"$(ProductSoftwareName4.0)"\CurrentVersion"
-
- ProductHardwareSupport = 0
- ProductSoftwareSupport = 132
-
-
- IMTransports = { imTransport,+
- imTcpipTransport,+
- imIpxTransport,+
- imNetBiosTransport+
- }
-
- SupportedTransports = { ndisTransport,+
- tcpipTransport,+
- ipxTransport,+
- netBiosTransport+
- }
-
- IMDrivers = { imDriver }
- SupportedDrivers = { ndisDriver}
-
- IMAdapters = {imAdapter}
-
- NetRuleSoftwareType = $(ProductSoftwareName)" "*($(\IMDrivers),1)" "*($(IMTransports),1)
- NetRuleSoftwareUse = $(SoftwareType)" yes yes"
- NetRuleSoftwareClass = {*($(IMDrivers),1)" basic",*($(IMTransports),1)" basic"}
- NetRuleHardwareClass = {*($(IMAdapters),1)" basic"}
-
- ;
- ; TCPIP protocol only
- ;
- NetRuleSoftwareBindable = {+
- *($(IMTransports),1)" "*($(IMAdapters),1)" non non 100"}+
- *($(IMTransports),1)" "*($(ndisDrivers),1)" non non 100"}
-
- ;
- ; Multiprotocol (test)
- ;
- ;NetRuleSoftwareBindable = {+
- ; *($(IMTransports),2)" "*($(IMAdapters),1)+
- ; " non non 100",+
- ; *($(IMTransports),3)" "*($(IMAdapters),1)+
- ; " non non 100"}
-
- NetRuleSoftwareBindForm = " yes no simple"
- NetRuleHardwareBindForm = " yes yes container"
- ProductSoftwareReview = "1"
-
- MicroSW = $(!NTN_SoftwareBase)"\Microsoft\"
- CVNetRules = "\CurrentVersion\NetRules"
-
- ;
- ; TCPIP protocol only
- ;
- NetRuleDriverKeys = {{$(MicroSW)"Tcpip"$(CVNetRules),1}}
- NetRuleTransportKeys = {{$(MicroSW)"Ndiswan"$(CVNetRules),2}}
- TransportServiceKeys = {$(!NTN_ServiceBase)"\Tcpip",+
- $(!NTN_ServiceBase)"\NetBT"}
-
- ;
- ; Multiprotocol (test)
- ;
- ;NetRuleDriverKeys = {{$(MicroSW)"Tcpip"$(CVNetRules),1},+
- ; {$(MicroSW)"NwlnkIpx"$(CVNetRules),1}}
- ;NetRuleTransportKeys = {{$(MicroSW)"Ndiswan"$(CVNetRules),2},+
- ; {$(MicroSW)"Ndiswan"$(CVNetRules),3}}
- ;TransportServiceKeys = {$(!NTN_ServiceBase)"\Tcpip",+
- ; $(!NTN_ServiceBase)"\NwlnkIpx"}
-
- NetBTServiceKey = $(!NTN_ServiceBase)"\NetBT\Adapters"
- IMServiceKeyName = $(!NTN_ServiceBase)"\"$(ProductSoftwareName)
- IMLinkageKeyName = $(IMServiceKeyName)"\Linkage"
- NtCurrentVersion = $(MicroSW)"Windows NT\CurrentVersion"
- NetworkCardsKeyName = $(NtCurrentVersion)"\NetworkCards"
-
- ServiceOrder = "SYSTEM\CurrentControlSet\Control\ServiceGroupOrder"
- ReviewProgram = "SOFTWARE\Microsoft\Ncpa\CurrentVersion"
- IMSoftwareKey = "SOFTWARE\"$(Manufacturer)"\"
- NetRules = $(IMSoftwareKey)$(ProductSoftwareName)$(CVNetRules)
- RunOnce = $(!NTN_SoftwareBase)+
- "\Microsoft\Windows\CurrentVersion\RunOnce"
- FixupServices = {$(!NTN_ServiceBase)"\LanmanServer\Linkage",+
- $(!NTN_ServiceBase)"\LanmanWorkstation\Linkage"}
-
- [GeneralConstants]
- from = ""
- to = ""
- ExitCodeOk = 0
- ExitCodeCancel = 1
- ExitCodeFatal = 2
- KeyNull = ""
- MAXIMUM_ALLOWED = 33554432
- RegistryErrorIndex = NO_ERROR
- KeyProduct = ""
- KeyParameters = ""
- TRUE = 1
- FALSE = 0
- NoTitle = 0
- ExitState = "Active"
- OldVersionExisted = $(FALSE)
- DriverPath = $(!STF_NTPATH)\drivers
- [date]
- ifstr(i) $(!LIBHANDLE) == ""
- LoadLibrary "x" setupdll.dll !LIBHANDLE
- endif
- 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)
- goto returnoptions
- else
- set Status = STATUS_NOLANGUAGE
- goto finish_ReturnOptions
- endif
- returnoptions = +
- set OptionList = ^(Options, 1)
- set OptionTextList = ^(OptionsText$($0), 1)
- set Status = STATUS_SUCCESSFUL
- finish_ReturnOptions = +
- Return $(Status) $(OptionList) $(OptionTextList)
-
- [Shell Commands]
- set-title "Ndis Intermediate Driver Sample Setup"
- set !G:DebugOutputControl = 1
- exit
- [InstallOption]
- set Option = $($1)
- set SrcDir = $($2)
- set AddCopy = $($3)
- set DoCopy = $($4)
- set DoConfig = $($5)
- set LanguageList = ^(LanguagesSupported, 1)
- Ifcontains(i) $($0) NOT-IN $(LanguageList)
- Return STATUS_NOLANGUAGE
- endif
- Debug-Output "OEMSETNT.INF: STF_CWDDIR is: "$(!STF_CWDDIR)
- Debug-Output "OEMSETNT.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
- set-subst LF = "\n"
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms DialogConstants$(!STF_LANGUAGE)
- ifstr(i) $(!NTN_Origination) == "NCPA"
- set Continue = $(OK)
- endif
- read-syms FileConstants$(!STF_LANGUAGE)
- detect date
- set-title $(FunctionTitle)
- set to = Begin
- set from = Begin
- set CommonStatus = STATUS_SUCCESSFUL
- EndWait
- Begin = +
- 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) == cleanup
- set StartLabel = cleanupSoftware
- else-Ifstr(i) $(!NTN_InstallMode) == configure
- Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "OEMSETNT.INF: ShellCode error: no error string."
- goto ShellCodeError
- endif
- set Error = $($R0)
- set from = end
- set to = end
- goto nonfatalinfo
- else
- set StartLabel = installadapter
- endif
- set RadioDefault = 2
- set RadioIn = {$(RadioDefault)}
- set Size = 2 ;
- set from = $(fatal)
- set to = $(fatal)
- goto $(StartLabel)
- installadapter = +
-
- OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) +
- KeyProduct
- Ifstr $(KeyProduct) != $(KeyNull)
-
- GetRegValue $(KeyProduct) MajorVersion major
- GetRegValue $(KeyProduct) MinorVersion minor
- CloseRegKey $(KeyProduct)
-
- ifstr $(major) == ""
- goto noVersionCheck
- endif
- ifstr $(minor) == ""
- goto noVersionCheck
- endif
-
- ifint *($(major),4) > $(ProductMajorVersion)
- CloseRegKey $(KeyProduct)
- goto versionOlder
- endif
-
- ifint *($(major),4) == $(ProductMinorVersion)
- ifint *($(minor),4) > $(ProductMinorVersion)
- CloseRegKey $(KeyProduct)
- goto versionOlder
- endif
- endif
-
- ifstr *($(major),4) == $(ProductMajorVersion)
- ifstr *($(minor),4) == $(ProductMinorVersion)
- goto versionExist
- endif
- endif
- endif
-
- noVersionCheck = +
- ;
- ; remove 5.0 IM
- ;
- ;Shell "" RemoveIM
-
- ;
- ; remove 4.0 IM
- ;
- Shell "" MyRemoveSoftwareComponent,$(Manufacturer),+
- $(ProductSoftwareName4.0),$(ProductSoftwareName),+
- $(STF_CONTEXTINFNAME)
-
- ifstr $($R0) == STATUS_SUCCESSFUL
- goto installproduct
- endif
-
- goto end
-
- versionExist = +
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", +
- $(ProductSoftwareTitle)" "*($(major),4)"."*($(minor),4)+
- " is already installed."
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error: cannot get an error string."
- goto ShellCodeError
- endif
- goto end
-
- versionOlder = +
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", +
- $(ProductSoftwareTitle)" "*($(major),4)"."*($(minor),4)+
- " is already installed. Upgrading to version "+
- $(ProductMajorVersion)"."$(ProductMinorVersion)" is not allowed."
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error: cannot get an error string."
- goto ShellCodeError
- endif
- goto end
-
- installproduct = +
- StartWait
- ifint $(OldVersionExisted) == $(FALSE)
- Ifstr(i) $(DoCopy) == "YES"
-
- ;OpenRegKey $(!REG_H_LOCAL) "" +
- ;"SOFTWARE\Microsoft\Windows Nt\CurrentVersion" +
- ;$(MAXIMUM_ALLOWED) MSCVHandle
- ;Ifstr $(MSCVHandle) != $(KeyNull)
- ;set srcPath = ""
- ;GetRegValue $(MSCVHandle) SourcePath srcPath
- ;endif
-
- ;set SrcDir = $(!STF_WINDOWSSYSPATH)
- set SrcKey = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\TCPIP"
-
- OpenRegKey $(!REG_H_LOCAL) "" $(SrcKey) $(MAXIMUM_ALLOWED) KeyHandle
- Ifstr $(KeyHandle) != $(KeyNull)
- GetRegValue $(KeyHandle) Path value
- ifint $(RegLastError) == 0
- ;set SrcDir = *($(value),4)
-
- set paths = {*($(value),4)}
- set names = {NMFTR.SYS}
- Shell $(UtilityInf) CheckIfCopyNecessary $(paths) $(names)
-
- Ifint $($ShellCode) == $(!SHELL_CODE_OK)
- Ifstr $($R0) == STATUS_SUCCESSFUL
- set SrcDir = *($(value),4)
- CloseRegKey $(KeyHandle)
- goto skip_DoAskSource
- endif
- endif
- endif
- CloseRegKey $(KeyHandle)
- endif
-
- 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 fatal
- Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
- Goto successful
- Endif
- Set SrcDir = $($R1)
- Endif
- skip_DoAskSource = +
- install "Install-Option"
- ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
- Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- goto ShellCodeError
- endif
- set Error = $($R0)
- goto fatal
- endif
- set OEM_ABANDON_ON = TRUE
- Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
- $(ProductSoftwareName), $(ProductSoftwareName), +
- $(ProductSoftwareDisplayName), $(STF_CONTEXTINFNAME), +
- $(ProductSoftwareImagePath), "kernelautostart", +
- $(ProductSoftwareGroup), "", "", $(NetEventDLL)
- set RegistryErrorIndex = $($R0)
- Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
- ;
- ; Try to recover
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName)"\NetRules" +
- $(MAXIMUM_ALLOWED) SoftNetRuleKey
- Ifstr $(SoftNetRuleKey) != $(KeyNull)
- OpenRegKey $(!REG_H_LOCAL) "" +
- $(ProductSoftKey)"\"$(ProductSoftwareName) +
- $(MAXIMUM_ALLOWED) SoftProductKey
- Ifstr $(SoftProductKey) != $(KeyNull)
- OpenRegKey $(!REG_H_LOCAL) "" $(IMServiceKeyName) +
- $(MAXIMUM_ALLOWED) sHandle
- Ifstr $(sHandle) != $(KeyNull)
- CloseRegKey $(sHandle)
- goto continueInstall
- else
- CloseRegKey $(SoftProductKey)
- CloseRegKey $(SoftNetRuleKey)
- Shell $(subroutineinf) SetupMessage,+
- $(!STF_LANGUAGE),"FATAL",+
- $(ProductSoftwareTitle)" has recently been "+
- "removed. You must reboot before installing "+
- "it again."
- CloseRegKey $($R1)
- CloseRegKey $($R2)
- CloseRegKey $($R3)
- CloseRegKey $($R4)
- CloseRegKey $($R5)
- goto fatal
- endif
- else
- CloseRegKey $(SoftNetRuleKey)
- endif
- endif
-
- EndWait
- CloseRegKey $($R1)
- CloseRegKey $($R2)
- CloseRegKey $($R3)
- CloseRegKey $($R4)
- CloseRegKey $($R5)
- goto fatalRegistry
- endif
- Set SoftProductKey = $($R1)
- Set SoftNetRuleKey = $($R2)
- Set SoftServiceKey = $($R3)
- set KeyParameters = $($R4)
- Set SoftLinkageKey = $($R5)
-
- continueInstall = +
-
- Shell "" GetNtVersion
- ifstr $($R0) == "3.51"
- set NewValueList = { +
- {SoftwareType,$(NoTitle),+
- $(!REG_VT_SZ),$(SoftwareType)},+
- {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),+
- $(ProductMajorVersion)},+
- {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),+
- $(ProductMinorVersion)},+
- {Title,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareTitle)},+
- {Description,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareDescription)},+
- {ServiceName,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareName)},+
- {Review,$(NoTitle),$(!REG_VT_DWORD),+
- $(ProductSoftwareReview)},+
- {InstallDate,$(NoTitle),$(!REG_VT_DWORD),+
- *($(Now),1)}}
- else
- set NewValueList = { +
- {SoftwareType,$(NoTitle),+
- $(!REG_VT_SZ),$(SoftwareType)},+
- {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),+
- $(ProductMajorVersion)},+
- {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),+
- $(ProductMinorVersion)},+
- {Title,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareTitle)},+
- {Description,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareDescription)},+
- {ServiceName,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareName)},+
- {Review,$(NoTitle),$(!REG_VT_DWORD),+
- $(ProductSoftwareReview)},+
- {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),+
- $(ProductSoftwareSupport)},+
- {InstallDate,$(NoTitle),$(!REG_VT_DWORD),+
- *($(Now),1)}}
- endif
-
- Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
- set RegistryErrorIndex = $($R0)
- Ifstr $(RegistryErrorIndex) != NO_ERROR
- CloseRegKey $(SoftProductKey)
- CloseRegKey $(SoftNetRuleKey)
- CloseRegKey $(SoftServiceKey)
- CloseRegKey $(SoftLinkageKey)
- CloseRegKey $(KeyParameters)
- goto fatalRegistry
- endif
- set-subst NetRuleSoftwareBindForm = "\042"$(ProductSoftwareName)"\042"+
- $(NetRuleSoftwareBindForm)
- set NewValueList = { +
- {type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)}, +
- {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
- {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)},+
- {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)},+
- {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)},+
- {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
- Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
- set RegistryErrorIndex = $($R0)
- Ifstr $(RegistryErrorIndex) != NO_ERROR
- CloseRegKey $(SoftProductKey)
- CloseRegKey $(SoftNetRuleKey)
- CloseRegKey $(SoftServiceKey)
- CloseRegKey $(SoftLinkageKey)
- CloseRegKey $(KeyParameters)
- goto fatalRegistry
- endif
-
- CloseRegKey $(SoftProductKey)
- CloseRegKey $(SoftNetRuleKey)
- CloseRegKey $(SoftServiceKey)
- CloseRegKey $(SoftLinkageKey)
- endif
-
- ;Ifstr $(MSCVHandle) != $(KeyNull)
- ;ifstr $(srcPath) != ""
- ;SetRegValue $(MSCVProduct) $(srcPath)
- ;endif
- ;CloseRegKey $(MSCVHandle)
- ;endif
-
- ;
- ; Modify Driver NetRules
- ;
- ForListDo $(NetRuleDriverKeys)
- ;
- ; upgrade from 4.0 rule first
- ;
- Shell "" ChangeNetRules *($($),1) IMSAMPTransport +
- *($(SupportedDrivers),*($($),2)) Bindable
-
- Shell "" ChangeNetRules *($($),1) *($(SupportedDrivers),*($($),2)) +
- *($(IMDrivers),*($($),2)) Bindable
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set RegistryErrorIndex = $($ShellCode)
- goto fatalRegistry
- endif
- Ifstr $($R0) != STATUS_SUCCESS
- set RegistryErrorIndex = $($R0)
- goto fatalRegistry
- endif
- EndForListDo
-
- ;
- ; Modify Transport NetRules
- ;
- Shell "" NdisWanSupport
- ifint $($R0) != 1
- Shell "" GetNtVersion
- ifstr $($R0) != "3.51"
- ForListDo $(NetRuleTransportKeys)
- Shell "" ChangeNetRules *($($),1) +
- *($(SupportedTransports),*($($),2)) +
- *($(IMTransports),*($($),2)) Bindable
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set RegistryErrorIndex = $($ShellCode)
- goto fatalRegistry
- endif
- Ifstr $($R0) != STATUS_SUCCESS
- Ifstr $($R0) != CANNOT_FIND_COMPONENT_SERVICE
- set RegistryErrorIndex = $($R0)
- goto fatalRegistry
- endif
- endif
- endForListDo
- endif
- endif
-
- ;
- ; Modify NetBT (WINS) class
- ;
- Shell "" ChangeNetRules $(MicroSW)"NetBT"$(CVNetRules) +
- *($(SupportedTransports),4) *($(IMTransports),1) Class
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set RegistryErrorIndex = $($ShellCode)
- goto fatalRegistry
- endif
- Ifstr $($R0) != STATUS_SUCCESS
- Ifstr $($R0) != CANNOT_FIND_COMPONENT_SERVICE
- set RegistryErrorIndex = $($R0)
- goto fatalRegistry
- endif
- endif
-
- ;
- ; Add Protocol parameters and NetworkCard settings
- ;
- Shell "", SetAdapterParameter $(Option) FORCE
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set RegistryErrorIndex = $($ShellCode)
- goto fatal
- endif
- Ifstr $($R0) != STATUS_SUCCESSFUL
- Ifstr $($R0) != STATUS_REBIND
- set RegistryErrorIndex = $($R0)
- goto fatal
- endif
- endif
-
- ;
- ; Add install file to ReviewPrograms
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(NetRules) $(MAXIMUM_ALLOWED) KeyProduct
- Ifstr $(KeyProduct) != $(KeyNull)
- GetRegValue $(KeyProduct),"InfName", infName
- ifint $(RegLastError) == 0
- Shell "" AddToList *($(infName),4) OEMNSVRA.INF +
- $(ReviewProgram) ReviewPrograms
- ifint $($ShellCode) == $(!SHELL_CODE_OK)
- ifstr $($R0) != STATUS_SUCCESSFUL
- Shell "" AddToList *($(infName),4) NBINFO.INF +
- $(ReviewProgram) ReviewPrograms BEFORE
- endif
- endif
- endif
- CloseRegKey $(KeyProduct)
- endif
-
- ;
- ; Add our Group to the service group list
- ;
- Shell "" AddToList $(ProductSoftwareGroup) NDIS $(ServiceOrder) List
-
- goto writeparameters
- writeparameters = +
- CloseRegKey $(KeyParameters)
- EndWait
- goto successful
- bindingadapter =+
- ;
- ; Delete IM DependOnGroup and DependOnService
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(IMServiceKeyName) $(MAXIMUM_ALLOWED) +
- KeyProduct
- Ifstr $(KeyProduct) == $(KeyNull)
- set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", +
- $(IMServiceKeyName)" empty!"
- goto fatal
- Endif
- DeleteRegValue $(KeyProduct) DependOnGroup
- DeleteRegValue $(KeyProduct) DependOnService
- CloseRegKey $(KeyProduct)
-
- ;
- ; Modify Transport NetRules
- ;
- set bindType = 1
- Shell "" NdisWanSupport
- ifint $($R0) != 1
- ForListDo $(NetRuleTransportKeys)
- Shell "" ChangeNetRules *($($),1) +
- *($(SupportedTransports),*($($),2)) +
- *($(IMTransports),*($($),2)) Bindable
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set RegistryErrorIndex = $($ShellCode)
- goto fatal
- endif
- Ifstr $($R0) != STATUS_SUCCESS
- Ifstr $($R0) != CANNOT_FIND_COMPONENT_SERVICE
- set RegistryErrorIndex = $($R0)
- goto fatal
- endif
- endif
- Ifstr $($R1) == 0 ;IM is installed before RAS
- set bindType = 2
- endif
- endForListDo
- endif
-
- ;
- ; Modify NetBT (WINS) class
- ;
- Shell "" ChangeNetRules $(MicroSW)"NetBT"$(CVNetRules) +
- *($(SupportedTransports),4) *($(IMTransports),1) Class
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set RegistryErrorIndex = $($ShellCode)
- goto fatal
- endif
- Ifstr $($R0) != STATUS_SUCCESS
- Ifstr $($R0) != CANNOT_FIND_COMPONENT_SERVICE
- set RegistryErrorIndex = $($R0)
- goto fatal
- endif
- endif
-
- ;
- ; Remove IM from Transport's DependOnService
- ;
- Shell "" FixupTransportDependOnService
-
- set rebind = FALSE
-
- ;
- ; Add Protocol parameters and NetworkCard settings
- ;
- Shell "" SetAdapterParameter $(Option)
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set RegistryErrorIndex = $($ShellCode)
- goto fatal
- endif
- Ifstr $($R0) == STATUS_REBIND
- set rebind = TRUE
- else-ifstr $($R0) != STATUS_SUCCESSFUL
- set RegistryErrorIndex = $($R0)
- goto fatal
- endif
-
- ;
- ; Remove no longer used IM cards
- ;
- Shell "" RemoveIMCards UNWANTED
- Ifstr $($R0) == STATUS_REBIND
- set rebind = TRUE
- endif
-
- ;
- ; Fixup binding now that we might have added/removed some adapters
- ;
- Shell "" NdisWanSupport
- ifint $($R0) != 1
- Shell "" FixupBindings
- else
- Shell "" GetNtVersion
- ifstr $($R0) == "3.51"
- Shell "" FixupBindings
- endif
- endif
-
- ifstr $(rebind) == TRUE
- OpenRegKey $(!REG_H_LOCAL) "" $(IMServiceKeyName) $(MAXIMUM_ALLOWED) +
- KeyProduct
- Ifstr $(KeyProduct) == $(KeyNull)
- set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", +
- $(IMServiceKeyName)" empty!"
- goto fatal
- endif
-
- SetRegValue $(KeyProduct) +
- {Rebind,$(NoTitle),$(!REG_VT_DWORD),$(bindType)}
- ifint $(RegLastError) != 0
- set RegistryErrorIndex = $(RegLastError)
- goto fatal
- endif
-
- CloseRegKey $(KeyProduct)
- endif
-
- ;
- ; Reconfig protocol since some adapter information may have changed
- ;
- ;shell "oemnxptc.inf",InstallOption,$($0),TC,$($2),$($3),+
- ;$($4),$($5),$($6),$($7),$($8)
-
- ;
- ; add our installation file to ReviewPrograms
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(NetRules) $(MAXIMUM_ALLOWED) KeyProduct
- Ifstr $(KeyProduct) != $(KeyNull)
- GetRegValue $(KeyProduct),"InfName", infName
- ifint $(RegLastError) == 0
- Shell "" AddToList *($(infName),4) OEMNSVRA.INF +
- $(ReviewProgram) ReviewPrograms
- ifint $($ShellCode) == $(!SHELL_CODE_OK)
- ifstr $($R0) != STATUS_SUCCESSFUL
- Shell "" AddToList *($(infName),4) NBINFO.INF +
- $(ReviewProgram) ReviewPrograms BEFORE
- endif
- endif
- endif
- CloseRegKey $(KeyProduct)
- endif
-
- ;
- ; Add our Group to the service group list
- ;
- Shell "" AddToList $(ProductSoftwareGroup) NDIS $(ServiceOrder) List
-
- goto successful
-
- removeadapter = +
- Shell "" RemoveIM
-
- Shell "" GetNtVersion
- ifstr $($R0) == "3.51"
- Shell "" FixupBindingsAfterRemove $(!NTN_ServiceBase)"\Tcpip\Linkage"
- Shell "" FixupBindingsAfterRemove $(!NTN_ServiceBase)"\NetBT\Linkage"
- Shell "" FixupAdaptersAfterRemove
- endif
- goto end
-
- UpgradeSoftware = +
- ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
- 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 "ShellCode error"
- CloseRegKey $(KeyProduct)
- goto ShellCodeError
- endif
- set !UG_Filename = $($R0)
- ifstr(i) $(!UG_Filename) != ""
- install "Install-Update"
- ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
- CloseRegKey $(KeyProduct)
- goto fatal
- endif
- endif
- SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductMajorVersion)}
- SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductMinorVersion)}
- ifint $(Version) != $(ProductVersion)
- endif
- CloseRegKey $(KeyProduct)
- else
- goto fatalregistry
- endif
- endif
- goto end
- cleanupSoftware = +
- Shell "" RemoveBobcatINFs
- goto end
- successful = +
- goto end
- warning = +
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- goto ShellCodeError
- endif
- ifstr(i) $($R1) == "OK"
- goto $(to)
- else-ifstr(i) $($R1) == "CANCEL"
- goto $(from)
- else
- goto "end"
- endif
- nonfatalinfo = +
- Set CommonStatus = STATUS_USERCANCEL
- Set Severity = STATUS
- goto nonfatalmsg
- nonfatal = +
- Set Severity = NONFATAL
- goto nonfatalmsg
- nonfatalmsg = +
- ifstr(i) $(Error) == ""
- Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- goto ShellCodeError
- endif
- set Error = $($R0)
- endif
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- goto ShellCodeError
- endif
- ifstr(i) $($R1) == "OK"
- goto $(from)
- else
- goto "end"
- endif
- fatalregistry = +
- Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- goto ShellCodeError
- endif
- set Error = $($R0)
- goto fatal
- fatal = +
- Shell "" RemoveIM
- ifstr(i) $(Error) == ""
- Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- goto ShellCodeError
- endif
- set Error = $($R0)
- endif
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- goto ShellCodeError
- endif
- goto setfailed
- ShellCodeError = +
- set DlgType = "MessageBox"
- set STF_MB_TITLE = $(ShellCodeErrorTitle)
- set STF_MB_TEXT = $(ShellCodeErrorText)
- set STF_MB_TYPE = 1
- set STF_MB_ICON = 3
- set STF_MB_DEF = 1
- ui start "Error Message"
- goto setfailed
- setfailed = +
- set CommonStatus = STATUS_FAILED
- ifstr(i) $(OEM_ABANDON_ON) == TRUE
- set OEM_ABANDON_ON = FALSE
- goto removeadapter
- endif
- goto end
- end = +
- goto term
- term = +
- Return $(CommonStatus)
- [BindingsReview]
- set Option = $($1)
- set SrcDir = $($2)
- set AddCopy = $($3)
- set DoCopy = $($4)
- set DoConfig = $($5)
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- OpenRegKey $(!REG_H_LOCAL) "" $(IMServiceKeyName) $(MAXIMUM_ALLOWED) +
- KeyProduct
- Ifstr $(KeyProduct) == $(KeyNull)
- Return STATUS_USERCANCEL
- endif
-
- GetRegValue $(KeyProduct) Rebind rebind
- ifint $(RegLastError) != 0
- goto bindingsReview_cont
- endif
-
- DeleteRegValue $(KeyProduct) Rebind
-
- CloseRegKey $(KeyProduct)
-
- ifint *($(rebind),4) == 1
- Shell "" GetNtVersion
- ifstr $($R0) == "4.0"
- Shell "" GetImSampPath
- ifstr $($R0) == STATUS_SUCCESSFUL
- set cmd = $($R1)"\wgagent.dll,ReviewBindings"
-
- Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
- "OPFFLTNT has discovered newly added or removed "+
- "adapter(s). It is necessary to redo the network "+
- "bindings. The current series of dialog windows will "+
- "again be displayed. Don't reboot the system until "+
- "the binding process is completed."
-
- StartDetachedProcess ExitCode "x" "" +
- $(!STF_WINDOWSSYSPATH)"\rundll32.exe" $(cmd)
- ifstr $(ExitCode) != "ERROR"
- Return STATUS_SUCCESSFUL
- else
- Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "FATAL" +
- "Unable to start detached process"
- Return STATUS_USERCANCEL
- endif
- endif
- endif
- else-ifint *($(rebind),4) == 2
- Shell "" GetNtVersion
- ifstr $($R0) == "4.0"
- Shell "" GetImSampPath
- ifstr $($R0) == STATUS_SUCCESSFUL
- set cmd = $($R1)"\wgagent.dll,ReviewBindings"
-
- Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "NONFATAL" +
- "OPFFLTNT has discovered newly added RAS "+
- "adapter(s). It is necessary to remove and reinstall "+
- "IM. The current series of dialog windows "+
- "will again be displayed to remove IM. Don't reboot "+
- "the system until the binding process is completed. "+
- "After the reboot, IM will be installed automatically."
-
- Shell "" RemoveIM
-
- StartDetachedProcess ExitCode "x" "" +
- $(!STF_WINDOWSSYSPATH)"\rundll32.exe" $(cmd)
- ifstr $(ExitCode) == "ERROR"
- Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "FATAL" +
- "Unable to start detached process"
- Return STATUS_USERCANCEL
- endif
-
- ;
- ; Install new IM after next reboot
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(RunOnce) +
- $(MAXIMUM_ALLOWED) runHandle
- ifstr $(runHandle) == $(KeyNull)
- CreateRegKey $(!REG_H_LOCAL) {$(RunOnce),0,GenericClass} +
- "" $(MAXIMUM_ALLOWED) "" runHandle
- endif
-
- ifstr $(runHandle) == $(KeyNull)
- Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "FATAL" +
- "Unable to add IM auto-install"
- Return STATUS_USERCANCEL
- endif
-
- SetRegValue $(runHandle) {InstallIM,0,+
- $(!REG_VT_SZ),"rundll32 wgagent.dll,DllRegisterServer"}
- ifint $(RegLastError) != 0
- CloseRegKey $(runHandle)
- Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "FATAL" +
- "Unable to install IM auto-install"
- Return STATUS_USERCANCEL
- endif
-
- CloseRegKey $(runHandle)
- Return STATUS_SUCCESSFUL
- endif
- endif
- endif
-
- bindingsReview_cont = +
- ;
- ; NDISWAN
- ;
- Shell "" NdisWanSupport
- ifint $($R0) != 1
- ifstr(i) $(!LIBHANDLE) == ""
- LoadLibrary "x" setupdll.dll !LIBHANDLE
- ifstr(i) $(!LIBHANDLE) == ""
- Shell subroutn.inf, SetupMessage $(!STF_LANGUAGE) "FATAL" +
- "IM Dial-Up Networking setup was unable "+
- "to load setupdll.dll in the system32 "+
- "directory. Please make sure this file is "+
- "present on your computer. Setup will now exit."
- Return STATUS_USERCANCEL
- endif
- endif
-
- Shell "" GetNtVersion
- ifstr $($R0) == "4.0"
- Shell "" SetRasArpBindValueFromTcpIP
- endif
- Shell "" UpdateLLInterface
- endif
-
- ;Shell "" GetImSampPath
- ;ifstr $($R0) == STATUS_SUCCESSFUL
- ;
- ; Install Newt into 'Run' key in registry
- ;
- ;RunProgram ExitCode NEWT32 "" $($R1)\newt32.exe -i
- ;endif
-
- ;clean up the IM bindings
- Debug-Output "OEMSETNT.INF: Loading BINDPRUNE.DLL"
-
- LoadLibrary "x" BindPrune.dll !PRUNEHANDLE
- Debug-Output "OEMSETNT.INF: Calling ImPruneBindings"
-
- LibraryProcedure Result $(!PRUNEHANDLE) ImPruneBindings
- Debug-Output "OEMSETNT.INF: Binding pruning complete"
-
-
-
- Return STATUS_SUCCESSFUL
- [Install-Option]
- set STF_VITAL = ""
- ifstr(i) $(AddCopy) == "YES"
- AddSectionFilesToCopyList Files-$(Option) $(SrcDir) +
- $(!STF_WINDOWSSYSPATH)\drivers
- endif
- ifstr(i) $(DoCopy) == "YES"
- set !STF_NCPA_FLUSH_COPYLIST = TRUE
- CopyFilesInCopyList
- endif
- ifstr(i) $(DoConfig) == "YES"
- endif
- Exit
- [Install-Update]
- set STF_VITAL = ""
- set STF_OVERWRITE = "VERIFYSOURCEOLDER"
- AddSectionFilesToCopyList Files-$(Option) $(SrcDir) +
- $(!STF_WINDOWSSYSPATH)\drivers
- AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
- set !STF_NCPA_FLUSH_COPYLIST = TRUE
- CopyFilesInCopyList
- exit
- [Source Media Descriptions]
- 1 = "OPFFLTNT Installation Disk" , TAGFILE = disk1
- [ProductType]
- STF_PRODUCT = Winnt
- STF_PLATFORM = I386 ;should be able to detect automatically?
-
- [Files-Inf]
- 1,BINDPRUNE.DLL,SIZE=2000
- 2,oemsetnt.inf,SIZE=2000,RENAME=$(!UG_Filename)
-
- [Files-OPFFLTNT]
- 1,OPFFLTNT.SYS,SIZE=2000
- [Files-]
- 1,OPFFLTNT.SYS,SIZE=2000
-
- [LanguagesSupported]
- ENG
- [OptionsTextENG]
- NDISPERF = "OPFFLTNT"
- [FileConstantsENG]
- ProCaption = "Windows NT Setup"
- ProCancel = "Cancel"
- ProCancelMsg = "Windows NT Networking is not correctly installed. "+
- "Are you sure you want to cancel copying files?"
- ProCancelCap = "Network Setup Message"
- ProText1 = "Copying:"
- ProText2 = "To:"
- FunctionTitle = "OPFFLTNT"
- ProductSoftwareDescription = "OPFFLTNT"
- ProductSoftwareDisplayName = "OPFFLTNT"
- ProductSoftwareTitle = "OPFFLTNT"
- ProductSoftwareGroup = "NDISWAN"
- ShellCodeErrorTitle = "Error: "$(FunctionTitle)
- ShellCodeErrorText = "Shell Code Error."
- [DialogConstantsENG]
- Help = "&Help"
- Exit = "Cancel"
- OK = "OK"
- HelpContext = ""
- Continue = "Continue"
- Cancel = "Cancel"
- [FileDependentDlgENG]
- GroupLabel = "Optimization:"
- Radio1 = "&Minimize Memory Used"
- Radio2 = "&Balance"
- Radio3 = "M&aximize Throughput && Connections"
- DlgType = "Radio"
- DlgTemplate = "NBF"
- Caption = $(FunctionTitle)
- OptionsGreyed = {}
- HelpContext = $(!IDH_DB_OEMSETNT_INS)
-
- ;*************************************************************************
- ;
- ; SECTION: FixupBindings
- ;
- ; PURPOSE: <fixup the bindings after added/deleted some adapters>
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS: $R0 - 0 if success
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [FixupBindings]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- set status = STATUS_SUCCESSFUL
- set temp = "temp"
-
- set tcpDisableLinkages = {}
- OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Tcpip\Linkage\Disabled" +
- $(MAXIMUM_ALLOWED) KeyProduct
- Ifstr $(KeyProduct) != $(KeyNull)
- GetRegValue $(KeyProduct) Bind tcpDisableLinkage
- ifint $(RegLastError) == 0
- set tcpDisableLinkages = *($(tcpDisableLinkage),4)
- endif
- CloseRegKey $(KeyProduct)
- endif
-
- OpenRegKey $(!REG_H_LOCAL) "" $(IMLinkageKeyName)"\Disabled" +
- $(MAXIMUM_ALLOWED) KeyProduct
- Ifstr $(KeyProduct) == $(KeyNull)
- Return CANNOT_FIND_COMPONENT_SERVICE
- endif
-
- GetRegValue $(KeyProduct) Bind disableLinkage
- ifint $(RegLastError) != 0
- set disableLinkages = {}
- else
- set disableLinkages = *($(disableLinkage),4)
- endif
- CloseRegKey $(KeyProduct)
-
- OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKeyName) $(MAXIMUM_ALLOWED) +
- CardsHandle
- ifint $(RegLastError) != 0
- return STATUS_FAILED
- endif
-
- EnumRegKey $(CardsHandle) CardList
- ifint $(RegLastError) != 0
- CloseRegKey $(CardsHandle)
- return STATUS_FAILED
- endif
-
- CloseRegKey $(CardsHandle)
-
- set ImBind = {}
- set ImExport = {}
- set ImRoute = {}
- set TcpBind = {}
- set TcpExport = {}
- set TcpRoute = {}
- set NetBTExport = {}
- set RefCnt = 0
- set q = \042\042\042\042\042\042\042\042
-
- ifstr(i) $(!LIBHANDLE) == ""
- LoadLibrary "x" setupdll.dll !LIBHANDLE
- endif
- set compareSize = 0
- set compareString = $(ProductSoftwareName)"_NdisWan"
- Split-String $(compareString) $(compareString) charList
- ForListDo $(charList)
- set-add compareSize = $(compareSize),1
- EndForListDo
-
- set adapterList = {}
- set ndiswanList = {}
- set tcpipDisableList = {}
- ForListDo $(CardList)
- OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKeyName)"\"*($($),1) +
- $(MAXIMUM_ALLOWED) CardHandle
- ifint $(RegLastError) != 0
- return STATUS_FAILED
- endif
-
- GetRegValue $(CardHandle) ProductName value
- ifint $(RegLastError) != 0
- CloseRegKey $(CardHandle)
- return STATUS_FAILED
- endif
-
- ifstr *($(value),4) == $(ProductSoftwareName)
- GetRegValue $(CardHandle) ServiceName value
- ifint $(RegLastError) != 0
- CloseRegKey $(CardHandle)
- return STATUS_FAILED
- endif
-
- set disable = 0
- set currentCard = "\Device\"*($(value),4)
-
- ForListDo $(disableLinkages)
- ifstr(i) $($) == $(currentCard)
- set disable = 1
- endif
- EndForListDo
-
- ifint $(disable) == 0
- LibraryProcedure Result $(!LIBHANDLE) SetupStrncmp +
- *($(value),4) $(compareString) $(compareSize)
- ifint $(Result) == 0
- set ndiswanList = >($(ndiswanList),*($(value),4))
- else
- set adapterList = >($(adapterList),*($(value),4))
- endif
- else
- ForListDo $(tcpDisableLinkages)
- ifstr(i) $($) == $(currentCard)
- set disable = 2
- endif
- EndForListDo
- ifint $(disable) == 1
- set tcpipDisableList = >($(tcpipDisableList),*($(value),4))
- endif
- endif
-
- set-add RefCnt = $(RefCnt),1
- endif
-
- CloseRegKey $(CardHandle)
- EndForListDo
-
- ifstr $(!IM_NDISWAN) == ""
- set !IM_NDISWAN = {}
- endif
-
- Shell "" GetNtVersion
- ifstr $($R0) == "3.51"
- set disableLinkages = {}
- OpenRegKey $(!REG_H_LOCAL) "" +
- $(!NTN_ServiceBase)"\Tcpip\Linkage\Disabled" +
- $(MAXIMUM_ALLOWED) KeyProduct
- Ifstr $(KeyProduct) != $(KeyNull)
- GetRegValue $(KeyProduct) Bind disableLinkage
- ifint $(RegLastError) == 0
- set disableLinkages = *($(disableLinkage),4)
- endif
- CloseRegKey $(KeyProduct)
- endif
-
- ForListDo $(!IM_NDISWAN)
- set disable = 0
- set currentCard = "\Device\"$($)
- ForListDo $(disableLinkages)
- ifstr(i) $($) == $(currentCard)
- set disable = 1
- endif
- EndForListDo
- ifint $(disable) == 0
- set TcpBind = >($(TcpBind), $(currentCard))
- set TcpExport = >($(TcpExport),"\Device\Tcpip\"$($))
- set NetBTExport = >($(NetBTExport),"\Device\NetBT_"$($))
- set tmp = $(q)NdisWan$(q)" "$(q)$($)$(q)
- set TcpRoute = >($(TcpRoute), $(tmp))
- endif
- EndForListDo
- goto fixupBindings_cont
- endif
-
- ForListDo $(!IM_NDISWAN)
- set currentCard = $(ProductSoftwareName)"_"$($)
- ForListDo $(ndiswanList)
- ifstr $(currentCard) == $($)
- set ImBind = >($(ImBind), "\Device\"$($))
- set ImExport = >($(ImExport), "\Device\"$($))
- set ImRoute = >($(ImRoute), $(q)$($)$(q))
- set TcpBind = >($(TcpBind), "\Device\"$($))
- set TcpExport = >($(TcpExport), "\Device\Tcpip\"$($))
- set NetBTExport = >($(NetBTExport),"\Device\NetBT_"$($))
- set tmp = $(q)$(ProductSoftwareName)$(q)" "$(q)$($)$(q)
- set TcpRoute = >($(TcpRoute), $(tmp))
- endif
- EndForListDo
- EndForListDo
-
- fixupBindings_cont = +
-
- ForListDo $(adapterList)
- set ImBind = >($(ImBind), "\Device\"$($))
- set ImExport = >($(ImExport), "\Device\"$($))
- set ImRoute = >($(ImRoute), $(q)$($)$(q))
- set TcpBind = >($(TcpBind), "\Device\"$($))
- set TcpExport = >($(TcpExport), "\Device\Tcpip\"$($))
- set NetBTExport = >($(NetBTExport),"\Device\NetBT_"$($))
- set tmp = $(q)$(ProductSoftwareName)$(q)" "$(q)$($)$(q)
- set TcpRoute = >($(TcpRoute), $(tmp))
- EndForListDo
-
- ForListDo $(tcpipDisableList)
- set TcpBind = >($(TcpBind), "\Device\"$($))
- set TcpExport = >($(TcpExport), "\Device\Tcpip\"$($))
- set NetBTExport = >($(NetBTExport),"\Device\NetBT_"$($))
- set tmp = $(q)$(ProductSoftwareName)$(q)" "$(q)$($)$(q)
- set TcpRoute = >($(TcpRoute), $(tmp))
- EndForListDo
-
- OpenRegKey $(!REG_H_LOCAL) "" $(IMServiceKeyName) $(MAXIMUM_ALLOWED) +
- IMHandle
- ifint $(RegLastError) != 0
- return STATUS_FAILED
- endif
-
- fixupBindings_CreateTempKey = +
-
- CreateRegKey $(IMHandle) {$(temp),$(NoTitle),GenericClass} "" +
- $(MAXIMUM_ALLOWED) "" TempHandle
- ifint $(RegLastError) == 1011 ; key already exist
- DeleteRegTree $(IMHandle) $(temp)
- goto fixupBindings_CreateTempKey
- else-ifint $(RegLastError) != 0
- CloseRegKey $(IMHandle)
- return STATUS_FAILED
- endif
-
- set-subst NewValueList = {+
- {Bind,$(NoTitle),$(!REG_VT_MULTI_SZ),$(ImBind)},+
- {Export,$(NoTitle),$(!REG_VT_MULTI_SZ),$(ImExport)},+
- {Route,$(NoTitle),$(!REG_VT_MULTI_SZ),$(ImRoute)}}
-
- Shell $(UtilityInf) AddValueList $(TempHandle) $(NewValueList)
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set status = STATUS_FAILED
- goto fixupBindings_exit
- Endif
- Ifstr(i) $($R0) != NO_ERROR
- set status = STATUS_FAILED
- goto fixupBindings_exit
- Endif
-
- Shell "",CopyRegTree,$(IMServiceKeyName)"\"$(temp),$(IMServiceKeyName),+
- Linkage,$(NoTitle),GenericClass,FORCE
-
- set-subst NewValueList = {+
- {Bind,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TcpBind)},+
- {Export,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TcpExport)},+
- {Route,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TcpRoute)}}
-
- Shell $(UtilityInf) AddValueList $(TempHandle) $(NewValueList)
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set status = STATUS_FAILED
- goto fixupBindings_exit
- Endif
- Ifstr(i) $($R0) != NO_ERROR
- set status = STATUS_FAILED
- goto fixupBindings_exit
- Endif
-
- Shell "",CopyRegTree,$(IMServiceKeyName)"\"$(temp),+
- $(!NTN_ServiceBase)"\Tcpip",Linkage,$(NoTitle),+
- GenericClass,FORCE
-
- set-subst NewValueList = {+
- {Bind,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TcpBind)},+
- {Export,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetBTExport)},+
- {Route,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TcpRoute)}}
-
- Shell $(UtilityInf) AddValueList $(TempHandle) $(NewValueList)
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set status = STATUS_FAILED
- goto fixupBindings_exit
- Endif
- Ifstr(i) $($R0) != NO_ERROR
- set status = STATUS_FAILED
- goto fixupBindings_exit
- Endif
-
- Shell "",CopyRegTree,$(IMServiceKeyName)"\"$(temp),+
- $(!NTN_ServiceBase)"\NetBT",Linkage,$(NoTitle),+
- GenericClass,FORCE
-
- OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) SoftKey
- Ifstr $(SoftKey) != $(KeyNull)
- SetRegValue $(SoftKey) {RefCount,$(NoTitle),$(!REG_VT_DWORD),$(RefCnt)}
- CloseRegKey $(SoftKey)
- endif
-
- fixupBindings_exit = +
-
- DeleteRegTree $(IMHandle) $(temp)
- CloseRegKey $(IMHandle)
- CloseRegKey $(TempHandle)
- return $(status)
-
- ;*************************************************************************
- ;
- ; SECTION: GetImSampPath
- ;
- ; PURPOSE: <Get the ImSamp path>
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS: $R0 - STATUS_SUCCESSFUL/STATUS_FAILED
- ; $R1 - ImSamp path
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [GetImSampPath]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- OpenRegKey $(!REG_H_LOCAL) "" $(IMSoftwareKey)"TCPIP" +
- $(MAXIMUM_ALLOWED) KeySoftware
- Ifstr $(KeySoftware) != $(KeyNull)
- GetRegValue $(KeySoftware) Path value
- ifint $(RegLastError) == 0
- CloseRegKey $(KeySoftware)
- return STATUS_SUCCESSFUL, *($(value),4)
- endif
- CloseRegKey $(KeySoftware)
- endif
-
- return STATUS_FAILED
-
- ;*************************************************************************
- ;
- ; SECTION: ReplaceText
- ;
- ; PURPOSE: <Replace string1 with string2 in text>
- ;
- ; ARGUMENTS: $0 - text
- ; $1 - string1
- ; $2 - string2
- ;
- ; RETURNS: $R0 - STATUS_SUCCESSFUL/STATUS_FAILED
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [ReplaceText]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- Shell "" GetImSampPath
- ifstr $($R0) != STATUS_SUCCESSFUL
- return $($R0)
- endif
-
- ifstr(i) $(!myLIBHANDLE) == ""
- LoadLibrary "x" $($R1)"\wgagent.dll" !myLIBHANDLE
- endif
- LibraryProcedure Result $(!myLIBHANDLE),ReplaceTxt,$($0),$($1),$($2)
- ;FreeLibrary $(myLIBHANDLE)
-
- ifint *($(Result),1) == 0
- return STATUS_SUCCESSFUL, *($(Result),2)
- else
- return STATUS_FAILED
- endif
-
- ;*************************************************************************
- ;
- ; SECTION: FindNetworkCardProductName
- ;
- ; PURPOSE: <Find network card's product name from the service name
- ;
- ; ARGUMENTS: $0 - service name
- ;
- ; RETURNS: $R0 - STATUS_SUCCESSFUL/STATUS_FAILED
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [FindNetworkCardProductName]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKeyName) $(MAXIMUM_ALLOWED) +
- KeyHandle
- Ifstr $(KeyHandle) != $(KeyNull)
- EnumRegKey $(KeyHandle) KeyList
- ifint $(RegLastError) == 0
- ForListDo $(KeyList)
- OpenRegKey $(!REG_H_LOCAL) "" +
- $(NetworkCardsKeyName)"\"*($($),1) +
- $(MAXIMUM_ALLOWED) kHandle
- Ifstr $(kHandle) != $(KeyNull)
- GetRegValue $(kHandle) ServiceName value
- ifint $(RegLastError) == 0
- ifstr *($(value),4) == $($0)
- GetRegValue $(kHandle) ProductName value
- ifint $(RegLastError) == 0
- CloseRegKey $(kHandle)
- CloseRegKey $(KeyHandle)
- return STATUS_SUCCESSFUL, *($(value),4)
- endif
- endif
- endif
- CloseRegKey $(kHandle)
- endif
- EndForListDo
- endif
- CloseRegKey $(KeyHandle)
- endif
-
- return STATUS_FAILED
-
- ;*************************************************************************
- ;
- ; SECTION: FixupBindingsAfterRemove
- ;
- ; PURPOSE: <fixup the bindings after IM is removed
- ;
- ; ARGUMENTS: $0 - service bindings to fixup
- ;
- ; RETURNS: $R0 - 0 if success
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [FixupBindingsAfterRemove]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- set status = STATUS_SUCCESSFUL
-
- OpenRegKey $(!REG_H_LOCAL) "" $($0) $(MAXIMUM_ALLOWED) TcpHandle
- Ifstr $(TcpHandle) == $(KeyNull)
- return STATUS_FAILED
- endif
-
- set routeList = {}
-
- GetRegValue $(TcpHandle) Bind value
- ifint $(RegLastError) == 0
- set list = {}
- ForListDo *($(value),4)
- Shell "" ReplaceText $($) $(ProductSoftwareName)"_" ""
- ifstr $($R0) == STATUS_SUCCESSFUL
- set list = >($(list),$($R1))
- Split-String $($R1) "\" temp
- set routeList = >($(routeList),*($(temp),4))
- endif
- EndForListDo
- ifstr $(list) != {}
- set NewValue = {Bind,$(NoTitle),$(!REG_VT_MULTI_SZ),$(list)}
- SetRegValue $(TcpHandle) $(NewValue)
- endif
- endif
-
- GetRegValue $(TcpHandle) Export value
- ifint $(RegLastError) == 0
- set list = {}
- ForListDo *($(value),4)
- Shell "" ReplaceText $($) $(ProductSoftwareName)"_" ""
- ifstr $($R0) == STATUS_SUCCESSFUL
- set list = >($(list),$($R1))
- endif
- EndForListDo
- ifstr $(list) != {}
- set NewValue = {Export,$(NoTitle),$(!REG_VT_MULTI_SZ),$(list)}
- SetRegValue $(TcpHandle) $(NewValue)
- endif
- endif
-
- set route = {}
- set q = \042\042\042\042\042\042\042\042
- ForListDo $(routeList)
- Shell "" FindNetworkCardProductName $($)
- ifstr $($R0) == STATUS_SUCCESSFUL
- set temp = $(q)$($R1)$(q)" "$(q)$($)$(q)
- set route = >($(route), $(temp))
- endif
- EndForListDo
-
- ifstr $(route) != {}
- set-subst NewValue = {{Route,$(NoTitle),$(!REG_VT_MULTI_SZ),$(route)}}
- Shell $(UtilityInf) AddValueList $(TcpHandle) $(NewValue)
- endif
-
- CloseRegKey $(TcpHandle)
- return STATUS_SUCCESSFUL
-
- ;*************************************************************************
- ;
- ; SECTION: FixupAdaptersAfterRemove
- ;
- ; PURPOSE: <fixup the adapters after IM is removed
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS: $R0 - 0 if success
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [FixupAdaptersAfterRemove]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKeyName) $(MAXIMUM_ALLOWED) +
- KeyHandle
- Ifstr $(KeyHandle) != $(KeyNull)
-
- EnumRegKey $(KeyHandle) KeyList
- ifint $(RegLastError) == 0
-
- ForListDo $(KeyList)
- set deleteSrcKey = NO
- set oldInstance = *($($),1)
- set srcKey = $(NetworkCardsKeyName)"\"$(oldInstance)
- OpenRegKey $(!REG_H_LOCAL) "" $(srcKey) +
- $(MAXIMUM_ALLOWED) kHandle
- Ifstr $(kHandle) != $(KeyNull)
-
- GetRegValue $(kHandle) ProductName product
- ifint $(RegLastError) == 0
-
- GetRegValue $(kHandle) ServiceName service
- ifint $(RegLastError) == 0
-
- set productStr = *($(product),4)
- set serviceStr = *($(service),4)
- Split-String $(productStr) $(productStr) product
- Split-String $(serviceStr) $(serviceStr) service
- QueryListSize productSize $(product)
- QueryListSize serviceSize $(service)
-
- ifint $(serviceSize) > $(productSize)
- set count = 0
- set instance = 0
- ForListDo $(service)
- set-add count = $(count),1
- ifint $(count) > $(productSize)
- set-mul instance = $(instance),10
- set-add instance = $(instance),$($)
- endif
- EndForListDo
-
- ifint $(oldInstance) != $(instance)
- Shell "",CopyRegTree,$(srcKey),+
- $(NetworkCardsKeyName),$(instance),+
- $(NoTitle),GenericClass,FORCE
- Ifint $($ShellCode) == $(!SHELL_CODE_OK)
- Ifstr $($R0) == STATUS_SUCCESSFUL
- set deleteSrcKey = YES
- endif
- endif
- endif
- endif
- endif
- endif
-
- CloseRegKey $(kHandle)
-
- ifstr $(deleteSrcKey) == YES
- OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKeyName) +
- $(MAXIMUM_ALLOWED) kHandle
- Ifstr $(kHandle) != $(KeyNull)
- DeleteRegTree $(kHandle) $(oldInstance)
- CloseRegKey $(kHandle)
- endif
- endif
-
- endif
- EndForListDo
- endif
- Endif
-
- return STATUS_SUCCESSFUL
-
- ;*************************************************************************
- ;
- ; SECTION: FixupTransportsAfterRemove
- ;
- ; PURPOSE: <fixup the transports after IM is removed
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS: $R0 - 0 if success
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [FixupTransportsAfterRemove]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- OpenRegKey $(!REG_H_LOCAL) "" $(NetBTServiceKey) +
- $(MAXIMUM_ALLOWED) Transport
- Ifstr $(Transport) == $(KeyNull)
- return STATUS_FAILED
- endif
-
- EnumRegKey $(Transport) CardList
- ifint $(RegLastError) != 0
- CloseRegKey $(Transport)
- return STATUS_FAILED
- endif
-
- ForListDo $(CardList)
- set source = *($($),1)
- Split-String $(source) "_" name
- ifstr *($(name),1) == $(ProductSoftwareName)
- Debug-Output $(name)
- ifstr *($(name),2) == "_"
- set card = ""
- ForListDo $(name)
- ifint $(#) > 2
- set card = $(card)$($)
- endif
- EndForListDo
-
- Shell "",CopyRegTree,$(NetBTServiceKey)"\"$(source),+
- $(NetBTServiceKey),$(card),+
- $(NoTitle),GenericClass,FORCE
-
- DeleteRegTree $(Transport) $(source)
- endif
- endif
- EndForListDo
-
- CloseRegKey $(Transport)
-
- return STATUS_SUCCESSFUL
-
- ;*************************************************************************
- ;
- ; SECTION: FixupServicesAfterRemove
- ;
- ; PURPOSE: <fixup the services after IM is removed
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS: $R0 - 0 if success
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
-
- [FixupServicesAfterRemove]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- ForListDo $(FixupServices)
-
- OpenRegKey $(!REG_H_LOCAL) "" $($) $(MAXIMUM_ALLOWED) Service
- Ifstr $(Service) != $(KeyNull)
-
- GetRegValue $(Service) Bind value
- ifint $(RegLastError) == 0
- set outValue = {}
- ForListDo *($(value),4)
- Split-String $($) "\_" name
- ifstr *($(name),6) != $(ProductSoftwareName)
- set outValue = >($(outValue), $($))
- else
- set out = ""
- ForListDo $(name)
- ifint $(#) != 6
- ifint $(#) != 7
- set out = $(out)$($)
- endif
- endif
- EndForListDo
- set outValue = >($(outValue), $(out))
- endif
- EndForListDo
- set value = {{Bind,$(NoTitle),$(!REG_VT_MULTI_SZ),$(outValue)}}
- Shell $(UtilityInf), AddValueList, $(Service), $(value)
- endif
-
- GetRegValue $(Service) Export value
- ifint $(RegLastError) == 0
- set outValue = {}
- ForListDo *($(value),4)
- Split-String $($) "\_" name
- ifstr *($(name),8) != $(ProductSoftwareName)
- set outValue = >($(outValue), $($))
- else
- set out = ""
- ForListDo $(name)
- ifint $(#) != 8
- ifint $(#) != 9
- set out = $(out)$($)
- endif
- endif
- EndForListDo
- set outValue = >($(outValue), $(out))
- endif
- EndForListDo
- set value = {{Export,$(NoTitle),+
- $(!REG_VT_MULTI_SZ),$(outValue)}}
- Shell $(UtilityInf), AddValueList, $(Service), $(value)
- endif
-
- GetRegValue $(Service) Route value
- ifint $(RegLastError) == 0
- set outValue = {}
- set q = \042\042\042\042\042\042\042\042
- set-subst quote = "\042"
-
- ForListDo *($(value),4)
- Shell "" ReplaceText $($), $(quote), ""
- ifstr $($R0) == STATUS_SUCCESSFUL
- Split-String $($R1) " " name
- Split-String *($(name),3) "_" product
-
- ifstr *($(product),1) != $(ProductSoftwareName)
- set out = ""
- ForListDo $(name)
- ifstr $($) == " "
- set out = $(out)$($)
- else
- set out = $(out)$(q)$($)$(q)
- endif
- EndForListDo
- Shell "" ReplaceText $(out), $(quote), ""
- set outValue = >($(outValue), $($R1))
- else
- set serviceName = ""
- ForListDo $(product)
- ifint $(#) > 2
- set serviceName = $(serviceName)$($)
- endif
- EndForListDo
-
- LibraryProcedure Result $(!LIBHANDLE) SetupStrncmp +
- $(serviceName) "NdisWan" 7
- ifint $(Result) == 0
- set out = $(q)*($(name),1)$(q)" "+
- $(q)$(serviceName)$(q)
- set outValue = >($(outValue), $(out))
- else
- Shell "" FindNetworkCardProductName +
- $(serviceName)
- ifstr $($R0) == STATUS_SUCCESSFUL
- set out = $(q)*($(name),1)$(q)" "+
- $(q)$($R1)$(q)" "+
- $(q)$(serviceName)$(q)
- set outValue = >($(outValue), $(out))
- endif
- endif
- endif
- endif
- EndForListDo
- set-subst value = {{Route,$(NoTitle),+
- $(!REG_VT_MULTI_SZ),$(outValue)}}
- Shell $(UtilityInf), AddValueList, $(Service), $(value)
- endif
-
- endif
-
- EndForListDo
-
- return STATUS_SUCCESSFUL
-
-
- ;*************************************************************************
- ;
- ; SECTION: NdisWanSupport
- ;
- ; PURPOSE: Support NdisWan adapters
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS: $R0 - 0 for yes, 1 for no
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [NdisWanSupport]
-
- Shell "" GetNtVersion
- ifstr $($R0) == "3.51"
- return 0
- endif
-
- read-syms FileConstants
-
- return $(NoNdisWanSupport)
-
- ;*************************************************************************
- ;
- ; SECTION: GetNtVersion
- ;
- ; PURPOSE: Get Windows NT Version
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS: $R0 - NT version or return code
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [GetNtVersion]
-
- ifstr $(!IM_NT_VERSION) != ""
- return $(!IM_NT_VERSION)
- endif
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- OpenRegKey $(!REG_H_LOCAL) "" $(NtCurrentVersion) $(MAXIMUM_ALLOWED) Handle
- ifint $(RegLastError) != 0
- return STATUS_FAILED
- endif
-
- GetRegValue $(Handle) CurrentVersion value
- ifint $(RegLastError) != 0
- CloseRegKey $(Handle)
- return STATUS_FAILED
- endif
-
- CloseRegKey $(Handle)
- set !IM_NT_VERSION = *($(value),4)
- return $(!IM_NT_VERSION)
-
- ;*************************************************************************
- ;
- ; SECTION: CopyRegTree
- ;
- ; PURPOSE: <duplicate registry tree>
- ;
- ; ARGUMENTS: $0 - Source Tree
- ; $1 - Destination Base
- ; $2 - Destination Key Name
- ; $3 - Destination Key Index
- ; $4 - Destination Key Class
- ; $5 - FORCE overwrite or not
- ;
- ; RETURNS: $R0 - 0 if success
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [CopyRegTree]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- Shell "" GetImSampPath
- ifstr $($R0) != STATUS_SUCCESSFUL
- goto previous_CopyRegTree
- endif
-
- ifstr(i) $(!myLIBHANDLE) == ""
- LoadLibrary "x" $($R1)"\wgagent.dll" !myLIBHANDLE
- endif
- LibraryProcedure Result $(!myLIBHANDLE),CopyRegTree,$($0),$($1),$($2),+
- $($3),$($4),$($5)
- ;FreeLibrary $(myLIBHANDLE)
-
- ifint *($(Result),1) == 0
- return STATUS_SUCCESSFUL
- else
- return STATUS_FAILED
- endif
-
- previous_CopyRegTree = +
-
- Shell "" GetNtVersion
- ifstr $($R0) == "3.51"
- goto old_CopyRegTree
- endif
-
- new_CopyRegTree = +
-
- OpenRegKey $(!REG_H_LOCAL) "" $($0) $(MAXIMUM_ALLOWED) srcHandle
- ifint $(RegLastError) != 0
- return STATUS_FAILED
- endif
-
- OpenRegKey $(!REG_H_LOCAL) "" $($1) $(MAXIMUM_ALLOWED) dstHandle
- ifint $(RegLastError) != 0
- CloseRegKey $(srcHandle)
- return STATUS_FAILED
- endif
-
- CreateRegKey $(dstHandle) {$($2),$($3),$($4)} "" $(MAXIMUM_ALLOWED) "" dst
-
- ifint $(RegLastError) == 0
- CloseRegKey $(dstHandle)
- else-ifint $(RegLastError) == 1011 ; key already exist
- CloseRegKey $(dstHandle)
- OpenRegKey $(!REG_H_LOCAL) "" $($1)"\"$($2) $(MAXIMUM_ALLOWED) dst
- ifint $(RegLastError) != 0
- CloseRegKey $(srcHandle)
- return STATUS_FAILED
- endif
- else
- CloseRegKey $(dstHandle)
- CloseRegKey $(srcHandle)
- return STATUS_FAILED
- endif
-
- LibraryProcedure CopyResult $(!NCPA_HANDLE),RegCopyTree,$(srcHandle),$(dst)
- Set CopyError = *($(CopyResult),1)
- CloseRegKey $(srcHandle)
- CloseRegKey $(dst)
- Ifint $(CopyError) != 0
- return STATUS_FAILED
- endif
-
- return STATUS_SUCCESSFUL
-
- ;
- ; Old CopyRegTree routine. There is limitation/bug in EnumRegValue in that
- ; it can't always read all the registry values. The library procedure in
- ; NCPA don't seem to have this problem!
- ;
-
- old_CopyRegTree = +
- ; Shell $(subroutineinf) SetupMessage,$(!STF_LANGUAGE), "NONFATAL", +
- ; $($0)" "$($1)" "$($2)" "$($3)" "$($4)
-
- OpenRegKey $(!REG_H_LOCAL) "" $($0) $(MAXIMUM_ALLOWED) KeyHandle
- ifint $(RegLastError) != 0
- goto error_copyTree
- endif
-
- EnumRegValue $(KeyHandle) ValueList
- ; ifint $(RegLastError) != 0
- ; CloseRegKey $(KeyHandle)
- ; goto error_copyTree
- ; endif
-
- EnumRegKey $(KeyHandle) KeyList
- ifint $(RegLastError) != 0
- CloseRegKey $(KeyHandle)
- goto error_copyTree
- endif
-
- CloseRegKey $(KeyHandle)
-
- OpenRegKey $(!REG_H_LOCAL) "" $($1) $(MAXIMUM_ALLOWED) KeyHandle
- ifint $(RegLastError) != 0
- goto error_copyTree
- endif
-
- set NewKey = {$($2),$($3),$($4)}
- ; Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", $(NewKey)
- CreateRegKey $(KeyHandle) $(NewKey) "" $(MAXIMUM_ALLOWED) "" +
- NewKeyHandle
-
- ifint $(RegLastError) == 0
- CloseRegKey $(KeyHandle)
- goto addValueList_copyTree
- else-ifint $(RegLastError) == 1011 ; key already exist
- CloseRegKey $(KeyHandle)
- goto openRegKey_copyTree
- else
- CloseRegKey $(KeyHandle)
- goto error_copyTree
- endif
-
- openRegKey_copyTree = +
-
- OpenRegKey $(!REG_H_LOCAL) "" $($1)"\"$($2) $(MAXIMUM_ALLOWED) +
- NewKeyHandle
- ifint $(RegLastError) != 0
- goto error_copyTree
- endif
-
- addValueList_copyTree = +
-
- ifstr $(ValueList) != ""
- ForListDo $(ValueList)
- ifstr $($5) == FORCE
- SetRegValue $(NewKeyHandle) $($)
- else
- GetRegValue $(NewKeyHandle) *($($),1) value
- ifint $(RegLastError) != 0
- SetRegValue $(NewKeyHandle) $($)
- endif
- endif
- EndForListDo
- endif
-
- CloseRegKey $(NewKeyHandle)
-
- ForListDo $(KeyList)
- set NewKey = *($($),1)
- Shell "",CopyRegTree,$($0)"\"$(NewKey),$($1)"\"$($2),$(NewKey),+
- *($($),2),*($($),3),$($5)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- goto error_copyTree
- endif
- ifstr $($R0) != STATUS_SUCCESSFUL
- goto error_copyTree
- endif
- EndForListDo
- return STATUS_SUCCESSFUL
-
- error_copyTree = +
- ; Shell $(subroutineinf) SetupMessage,$(!STF_LANGUAGE),"NONFATAL",errCopyTree
- OpenRegKey $(!REG_H_LOCAL) "" $($1) $(MAXIMUM_ALLOWED) KeyHandle
- ifint $(RegLastError) == 0
- DeleteRegTree $(KeyHandle) $($2)
- endif
- CloseRegKey $(KeyHandle)
- return STATUS_FAILED
-
- ;*************************************************************************
- ;
- ; SECTION: RemoveIMServices
- ;
- ; PURPOSE: <remove IM services>
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS:
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [RemoveIMServices]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) +
- KeyHandle
- Ifstr $(KeyHandle) != $(KeyNull)
- EnumRegKey $(KeyHandle) KeyList
- Ifint $(RegLastError) == 0
- ForListDo $(KeyList)
- Split-String *($($),1) "_" KeyCheck
- ifstr *($(KeyCheck),1) == $(ProductSoftwareName)
- Debug-Output $(KeyCheck)
- ifstr *($(KeyCheck),2) == "_"
- Debug-Output *($($),1)
- DeleteRegTree $(KeyHandle) *($($),1)
- endif
- endif
- EndForListDo
- Endif
- CloseRegKey $(KeyHandle)
- endif
- return
-
- ;*************************************************************************
- ;
- ; SECTION: RemoveIMCards
- ;
- ; PURPOSE: <remove IM cards>
- ;
- ; ARGUMENTS: $0 - if "UNWANTED" then only remove unused IM cards
- ;
- ; RETURNS: $R0 - STATUS_SUCCESSFUL or STATUS_REBIND
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [RemoveIMCards]
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- set status = STATUS_SUCCESSFUL
-
- OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKeyName) $(MAXIMUM_ALLOWED) +
- KeyHandle
- Ifstr $(KeyHandle) != $(KeyNull)
- EnumRegKey $(KeyHandle) KeyList
- ifint $(RegLastError) == 0
- ForListDo $(KeyList)
- OpenRegKey $(!REG_H_LOCAL) "" +
- $(NetworkCardsKeyName)"\"*($($),1) +
- $(MAXIMUM_ALLOWED) kHandle
- Ifstr $(kHandle) != $(KeyNull)
- GetRegValue $(kHandle) ProductName value
- ifint $(RegLastError) == 0
- ifstr *($(value),4) == $(ProductSoftwareName)
- set skipDelete = NO
-
- GetRegValue $(kHandle) ServiceName value
- ifint $(RegLastError) == 0
- ifstr $($0) == UNWANTED
- Split-String *($(value),4) "_" name
- ifstr *($(name),1) == $(ProductSoftwareName)
- ForListDo $(KeyList)
- OpenRegKey $(!REG_H_LOCAL) "" +
- $(NetworkCardsKeyName)"\"*($($),1) +
- $(MAXIMUM_ALLOWED) rHandle
- ifstr $(rHandle) != $(KeyNull)
- GetRegValue $(rHandle) ServiceName service
- ifint $(RegLastError) == 0
- set svc = ""
- ForListDo $(name)
- ifint $(#) > 2
- set svc = $(svc)$($)
- endif
- EndForListDo
- ifstr *($(service),4) == $(svc)
- set skipDelete = YES
- endif
- endif
- CloseRegKey $(rHandle)
- endif
- EndForListDo
- endif
- endif
- endif
-
- ifstr $(skipDelete) == NO
- ;
- ; delete the corresponding service too
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) +
- $(MAXIMUM_ALLOWED) rHandle
- ifstr $(rHandle) != $(KeyNull)
- DeleteRegTree $(rHandle) *($(value),4)
- CloseRegKey $(rHandle)
- endif
-
- Debug-Output $($)
- DeleteRegTree $(KeyHandle) *($($),1)
-
- set status = STATUS_REBIND
- endif
- endif
- endif
- CloseRegKey $(kHandle)
- endif
- EndForListDo
- endif
- CloseRegKey $(KeyHandle)
- endif
- return $(status)
-
- ;*************************************************************************
- ;
- ; SECTION: AddIMCard
- ;
- ; PURPOSE: <add IM card>
- ;
- ; ARGUMENTS: $0 - card to add
- ; $1 - parent key name
- ; $2 - InfOption
- ; $3 - card instance
- ; $4 - NDISWAN?
- ;
- ; RETURNS: $R0: STATUS_FAILED, STATUS_SUCCESSFUL, STATUS_REBIND
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [AddIMCard]
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- OpenRegKey $(!REG_H_LOCAL) "" $($1) $(MAXIMUM_ALLOWED) KeyCard
- Ifstr $(KeyCard) == $(KeyNull)
- return STATUS_FAILED
- Endif
-
- EnumRegKey $(KeyCard) cardList
- Ifint $(RegLastError) != 0
- CloseRegKey $(KeyCard)
- return STATUS_FAILED
- Endif
-
- ForListDo $(cardList)
- set Card = $($1)"\"*($($),1)
- OpenRegKey $(!REG_H_LOCAL) "" $(Card) $(MAXIMUM_ALLOWED) kHandle
- Ifstr $(kHandle) != $(KeyNull)
- GetRegValue $(kHandle) ServiceName serviceName
- Ifint $(RegLastError) == 0
- Ifstr *($(serviceName),4) == $(ProductSoftwareName)"_"$($0)
- CloseRegKey $(KeyCard)
- CloseRegKey $(kHandle)
- return STATUS_SUCCESS ;Card already exist
- Endif
- Endif
- CloseRegKey $(kHandle)
- Endif
- EndForListDo
-
- ForListDo $(cardList)
- set Card = $($1)"\"*($($),1)
- OpenRegKey $(!REG_H_LOCAL) "" $(Card) $(MAXIMUM_ALLOWED) kHandle
- Ifstr $(kHandle) != $(KeyNull)
- GetRegValue $(kHandle) ServiceName serviceName
- Ifint $(RegLastError) == 0
- Ifstr *($(serviceName),4) == $($0)
- ;
- ; get a new instance value
- ;
- Shell $(UtilityInf),AssignAdapterNumber,"",1
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- set NewCardInstance = 9*($($),1)
- Else-Ifstr(i) $($R0) != NO_ERROR
- set NewCardInstance = 8*($($),1)
- Else
- set NewCardInstance = $($R1)
- Endif
-
- CreateRegKey $(KeyCard) +
- {$(NewCardInstance),$(NoTitle),GenericClass} "" +
- $(MAXIMUM_ALLOWED) "" newHandle
- Ifstr $(newHandle) != $(KeyNull)
- GetRegValue $(kHandle) Title title
- GetRegValue $(kHandle) Description desc
- set serviceName = $(ProductSoftwareName)"_"$($0)
-
- detect date
-
- Shell "" GetNtVersion
- ifstr $($R0) == "3.51"
-
- set NewValueList = {+
- {Title,$(NoTitle),$(!REG_VT_SZ),+
- +; "["$(NewCardInstance)"] "+
- $(ProductSoftwareTitle)" "+
- *($(title),4)},+
- {Description,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareTitle)" -> "*($(desc),4)},+
- {Manufacturer,$(NoTitle),$(!REG_VT_SZ),+
- $(Manufacturer)},+
- {ProductName,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareName)},+
- {ServiceName,$(NoTitle),$(!REG_VT_SZ),+
- $(serviceName)},+
- {InstallDate,$(NoTitle),$(!REG_VT_DWORD),+
- *($(Now),1)}}
- else
- Ifint $($4) == 0
- set NewValueList = {+
- {Title,$(NoTitle),$(!REG_VT_SZ),+
- +; "["$(NewCardInstance)"] "+
- +; $(ProductSoftwareTitle)" -> "+
- *($(title),4)},+
- {Description,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareTitle)" -> "*($(desc),4)},+
- {Manufacturer,$(NoTitle),$(!REG_VT_SZ),+
- $(Manufacturer)},+
- {ProductName,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareName)},+
- {ServiceName,$(NoTitle),$(!REG_VT_SZ),+
- $(serviceName)},+
- {OperationsSupport,$(NoTitle),+
- $(!REG_VT_DWORD),$(ProductHardwareSupport)},+
- {InstallDate,$(NoTitle),$(!REG_VT_DWORD),+
- *($(Now),1)}}
- else
- set NewValueList = {+
- {Title,$(NoTitle),$(!REG_VT_SZ),+
- +; "["$(NewCardInstance)"] "+
- +; $(ProductSoftwareTitle)" -> "+
- *($(title),4)},+
- {Description,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareTitle)" -> "*($(desc),4)},+
- {Manufacturer,$(NoTitle),$(!REG_VT_SZ),+
- $(Manufacturer)},+
- {ProductName,$(NoTitle),$(!REG_VT_SZ),+
- $(ProductSoftwareName)},+
- {ServiceName,$(NoTitle),$(!REG_VT_SZ),+
- $(serviceName)},+
- {Hidden,$(NoTitle),$(!REG_VT_DWORD),1},+
- {InstallDate,$(NoTitle),$(!REG_VT_DWORD),+
- *($(Now),1)}}
- endif
- endif
-
- Shell $(UtilityInf), AddValueList, $(newHandle),+
- $(NewValueList)
-
- CreateRegKey $(newHandle) +
- {NetRules,$(NoTitle),GenericClass} "" +
- $(MAXIMUM_ALLOWED) "" netHandle
- Ifstr $(netHandle) != $(KeyNull)
- set-subst bindform = "\042"$(serviceName)"\042"+
- $(NetRuleHardwareBindForm)
- Shell $(UtilityInf),ReduceInfPath,+
- $(STF_CONTEXTINFNAME)
- set NewValueList = {+
- {bindform,$(NoTitle),$(!REG_VT_SZ),+
- $(bindform)},+
- {class,$(NoTitle),$(!REG_VT_MULTI_SZ),+
- $(NetRuleHardwareClass)},+
- {type,$(NoTitle),$(!REG_VT_SZ),+
- $(serviceName)" "*($(IMAdapters),1)},+
- {InfOption,$(NoTitle),$(!REG_VT_SZ),+
- $($2)},+
- {InfName,$(NoTitle),$(!REG_VT_SZ),+
- $($R0)}}
- Shell $(UtilityInf), AddValueList, +
- $(netHandle), $(NewValueList)
- CloseRegKey $(netHandle)
- Endif
-
- CloseRegKey $(newHandle)
- Endif
- Endif
- Endif
- CloseRegKey $(kHandle)
- Endif
- EndForListDo
-
- Shell "" GetNtVersion
- ifstr $($R0) == "3.51"
- ;
- ; swap card keys
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $($1) $(MAXIMUM_ALLOWED) rHandle
- ifstr $(rHandle) != $(KeyNull)
- set temp = temp
-
- Shell "",CopyRegTree,$($1)"\"$($3),$($1),$(temp),+
- $(NoTitle),GenericClass,FORCE
-
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- CloseRegKey $(rHandle)
- Return $($ShellCode)
- endif
- Ifstr $($R0) != STATUS_SUCCESSFUL
- CloseRegKey $(rHandle)
- Return $($R0)
- endif
-
- Shell "",CopyRegTree,$($1)"\"$(NewCardInstance),$($1),$($3),+
- $(NoTitle),GenericClass,FORCE
-
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- CloseRegKey $(rHandle)
- Return $($ShellCode)
- endif
- Ifstr $($R0) != STATUS_SUCCESSFUL
- CloseRegKey $(rHandle)
- Return $($R0)
- endif
-
- Shell "",CopyRegTree,$($1)"\"$(temp),$($1),$(NewCardInstance),+
- $(NoTitle),GenericClass,FORCE
-
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- CloseRegKey $(rHandle)
- Return $($ShellCode)
- endif
- Ifstr $($R0) != STATUS_SUCCESSFUL
- CloseRegKey $(rHandle)
- Return $($R0)
- endif
-
- DeleteRegTree $(rHandle) $(temp)
-
- CloseRegKey $(rHandle)
- endif
- endif
-
- CloseRegKey $(KeyCard)
- return STATUS_REBIND
-
- ;*************************************************************************
- ;
- ; SECTION: ChangeListText
- ;
- ; PURPOSE: <change text in list string>
- ;
- ; ARGUMENTS: $0 - input string
- ; $1 - string to be substitued
- ; $2 - string to substitue with
- ;
- ; RETURNS: $R0 - output string
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [ChangeListText]
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- ;Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", $($0)" "$($1)" "$($2)
- set returnList = {}
- set noChange = 1
- ForListDo $($0)
- set newList = ""
- Split-String $($) " " stringList
- ForListDo $(stringList)
- Ifstr $($) == $($1)
- set newList = $(newList)$($2)
- set noChange = 0
- Else
- set newList = $(newList)$($)
- Endif
- EndForListDo
- set returnList = >($(returnList),$(newList))
- ;Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", $(returnList)
- EndForListDo
- return $(returnList) $(noChange)
-
- ;*************************************************************************
- ;
- ; SECTION: ChangeNetRules
- ;
- ; PURPOSE: <change netRules>
- ;
- ; ARGUMENTS: $0 - netRules key
- ; $1 - string to be substitued
- ; $2 - string to substitue with
- ; $3 - registry text
- ;
- ; RETURNS: $R0 - return status
- ; $R1 - no change status
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [ChangeNetRules]
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- OpenRegKey $(!REG_H_LOCAL) "" $($0) $(MAXIMUM_ALLOWED) KeyProduct
- Ifstr $(KeyProduct) == $(KeyNull)
- return CANNOT_FIND_COMPONENT_SERVICE
- Endif
-
- GetRegValue $(KeyProduct) $($3) bindText
- Ifint $(RegLastError) != 0
- CloseRegKey $(KeyProduct)
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", +
- $($0)"\Bindable not found!"
- return CANNOT_FIND_COMPONENT_SERVICE
- Endif
-
- shell "" ChangeListText *($(bindText),4) $($1) $($2)
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- CloseRegKey $(KeyProduct)
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", +
- $($ShellCode)": ChangeListText shell error!"
- return $($ShellCode)
- endif
- set noChange = $($R1)
-
- set NewValueList = {{*($(bindText),1),*($(bindText),2),*($(bindText),3),+
- $($R0)}}
- Shell $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
- CloseRegKey $(KeyProduct)
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", +
- $($ShellCode)": AddValueList shell error!"
- return $($ShellCode)
- Endif
- Ifstr(i) $($R0) != NO_ERROR
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", +
- $($R0)": AddValueList returns error!"
- return $($R0)
- Endif
-
- return STATUS_SUCCESS $(noChange)
-
- ;*************************************************************************
- ;
- ; SECTION: FixupTransportDependOnService
- ;
- ; PURPOSE: Remove IM from DependOnService
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS:
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [FixupTransportDependOnService]
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- ForListDo $(TransportServiceKeys)
- OpenRegKey $(!REG_H_LOCAL) "" $($) $(MAXIMUM_ALLOWED) KeyProduct
- Ifstr $(KeyProduct) != $(KeyNull)
- GetRegValue $(KeyProduct) DependOnService dependOnList
- Ifint $(RegLastError) == 0
- set TransportBindList = {}
- ForListDo *($(dependOnList),4)
- Ifstr $($) != $(ProductSoftwareName)
- set TransportBindList = >($(TransportBindList),$($))
- endif
- EndForListDo
- set NewValueList = {DependOnService,$(NoTitle),+
- $(!REG_VT_MULTI_SZ),+
- $(TransportBindList)}
- SetRegValue $(KeyProduct) $(NewValueList)
- Ifint $(RegLastError) != 0
- set RegistryErrorIndex = $(RegLastError)
- CloseRegKey $(KeyProduct)
- goto fatal
- endif
- endif
- CloseRegKey $(KeyProduct)
- Endif
- EndForListDo
-
- return
-
- ;*************************************************************************
- ;
- ; SECTION: AddToList
- ;
- ; PURPOSE: Add new value to list. If new value is already in the
- ; order list, it is taken out first.
- ;
- ; ARGUMENTS: $0 - value to add
- ; $1 - reference value
- ; $2 - key where list resides
- ; $3 - name of list
- ; $4 - add BEFORE or AFTER reference value
- ;
- ; RETURNS: $R0 - return status
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [AddToList]
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- set Status = STATUS_FAILURE
-
- OpenRegKey $(!REG_H_LOCAL) "" $($2) $(MAXIMUM_ALLOWED) KeyGroup
- set OldList = {}
- Ifstr(i) $(KeyGroup) != $(KeyNull)
- GetRegValue $(KeyGroup) $($3) TmpList
- ifint $(RegLastError) == 0
- ForListDo *($(TmpList), 4)
- set OldList = >($(OldList), $($))
- EndForListDo
- endif
- Debug-Output "AddToList current list "$(OldList)
- set NewGroupList = {}
- ForListDo $(OldList)
- ifstr(i) $($) != $($0)
- ifstr(i) $($4) == BEFORE
- ifstr(i) $($) == $($1)
- set NewGroupList = >($(NewGroupList), $($0) )
- set Status = STATUS_SUCCESSFUL
- endif
- set NewGroupList = >($(NewGroupList), $($))
- else
- set NewGroupList = >($(NewGroupList), $($))
- ifstr(i) $($) == $($1)
- set NewGroupList = >($(NewGroupList), $($0) )
- set Status = STATUS_SUCCESSFUL
- endif
- endif
- endif
- EndForListDo
- Debug-Output "AddToList new list "$(NewGroupList)
- SetRegValue $(KeyGroup) {$($3),$(NoTitle),$(!REG_VT_MULTI_SZ),+
- $(NewGroupList)}
- CloseRegKey $(KeyGroup)
- else
- Debug-Output "AddToList error open ServiceGroupOrder key"
- endif
-
- return $(Status)
-
- ;*************************************************************************
- ;
- ; SECTION: SetAdapterParameter
- ;
- ; PURPOSE: Copy Transport Parameters from real adapters to
- ; IM adapters.
- ;
- ; ARGUMENTS: $0 - InfOption
- ; $1 - FORCE CopyRegTree or not
- ;
- ; RETURNS: $R0 - return status
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [SetAdapterParameter]
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- ;
- ; Copy Transport parameters using IM's bind list
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKeyName) $(MAXIMUM_ALLOWED) +
- KeyProduct
- Ifstr $(KeyProduct) == $(KeyNull)
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", +
- $(NetworkCardsKeyName)" empty!"
- Return CANNOT_FIND_COMPONENT_SERVICE
- Endif
-
- EnumRegKey $(KeyProduct) KeyList
- Ifint $(RegLastError) != 0
- CloseRegKey $(KeyProduct)
- Return $(RegLastError)
- Endif
-
- CloseRegKey $(KeyProduct)
-
- set status = STATUS_SUCCESSFUL
- set dialOutIp = {}
- set dialInIp = {}
- set !IM_NDISWAN = {}
-
- ForListDo $(KeyList)
- OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKeyName)"\"*($($),1) +
- $(MAXIMUM_ALLOWED) kHandle
- Ifstr $(kHandle) != $(KeyNull)
- GetRegValue $(kHandle) ProductName productName
- ifint $(RegLastError) == 0
- ifstr *($(productName),4) != $(ProductSoftwareName)
- GetRegValue $(kHandle) ServiceName value
- ifint $(RegLastError) == 0
-
- set ndiswan = 0;
-
- ;
- ; Check for NdisWan adapters
- ;
- ifstr(i) $(!LIBHANDLE) == ""
- LoadLibrary "x" setupdll.dll !LIBHANDLE
- endif
- LibraryProcedure Result $(!LIBHANDLE) SetupStrncmp +
- *($(value),4) "NdisWan" 7
- ifint $(Result) == 0
- Shell "" NdisWanSupport
- ifint $($R0) == 1
- goto next_adapter
- endif
- ;
- ; NdisWan DialOut IP adapters
- ;
- ifstr(i) *($(productName),4) == NdisWanDialOutIp
-
- ifstr $(dialOutIp) == ""
- set dialOutIp = {}
- endif
- set dialOutIp = >($(dialOutIp),*($(value),4))
-
- Shell "" GetNtVersion
- ifstr $($R0) != "3.51"
- set ndiswan = 1;
- goto continue_add_adapter
- endif
- ;
- ; NdisWan DialIn IP adapters
- ;
- else-ifstr(i) *($(productName),4) == NdisWanDialInIp
-
- ifstr $(dialInIp) == ""
- set dialInIp = {}
- endif
- set dialInIp = >($(dialInIp),*($(value),4))
-
- Shell "" GetNtVersion
- ifstr $($R0) != "3.51"
- set ndiswan = 1;
- goto continue_add_adapter
- endif
- endif
- goto next_adapter
- endif
-
- check_hidden_adapter = +
- ;
- ; don't attach to hidden adapters
- ;
- GetRegValue $(kHandle) Hidden hidden
- ifint $(RegLastError) == 0
- ifint *($(hidden),4) == 1
- goto next_adapter
- endif
- endif
-
- ;
- ; make sure adapter is a supported type
- ;
- GetRegValue $(kHandle) Manufacturer manu
- ifint $(RegLastError) != 0
- goto next_adapter
- endif
- OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\"+
- *($(manu),4)"\"*($(productName),4)+
- "\CurrentVersion\NetRules" +
- $(MAXIMUM_ALLOWED) nHandle
- Ifstr $(nHandle) == $(KeyNull)
- goto next_adapter
- endif
- GetRegValue $(nHandle) type type
- ifint $(RegLastError) != 0
- goto next_adapter
- endif
- Split-String *($(type),4) " " driver
- set addAdapter = 0
- ForListDo $(SupportedDrivers)
- ifstr(i) *($(driver),3) == $($)
- set addAdapter = 1
- endif
- EndForListDo
- ifint $(addAdapter) != 1
- goto next_adapter
- endif
-
- continue_add_adapter = +
- ;
- ; add software component of IM adapter from
- ; real adapter
- ;
- set srcDev = *($(value),4)
- set dstDev = $(ProductSoftwareName)"_"$(srcDev)
-
- Shell "",CopyRegTree,$(!NTN_ServiceBase)"\"$(srcDev),+
- $(!NTN_ServiceBase),$(dstDev),+
- $(NoTitle),GenericClass,$($1)
- Ifint $($ShellCode) != $(!SHELL_CODE_OK)
- CloseRegKey $(kHandle)
- Return $($ShellCode)
- endif
- Ifstr $($R0) != STATUS_SUCCESSFUL
- CloseRegKey $(kHandle)
- Return $($R0)
- endif
-
- ifint $(ndiswan) == 0
- ;
- ; remove hardware parameters
- ;
- set parms = $(!NTN_ServiceBase)"\"+
- $(dstDev)"\Parameters"
- OpenRegKey $(!REG_H_LOCAL) "" $(parms) +
- $(MAXIMUM_ALLOWED) KeyProduct
- Ifstr $(KeyProduct) == $(KeyNull)
- CloseRegKey $(kHandle)
- Shell $(subroutineinf) SetupMessage, +
- $(!STF_LANGUAGE), "FATAL", +
- $(parms)" empty!"
- Return CANNOT_FIND_COMPONENT_SERVICE
- Endif
-
- EnumRegValue $(KeyProduct) ValueList
- ForListDo $(ValueList)
- DeleteRegValue $(KeyProduct) *($($),1)
- EndForListDo
- CloseRegKey $(KeyProduct)
- Endif
-
- ;
- ; add hardware component of IM adapter from
- ; real adapter
- ;
- Shell "" AddIMCard $(srcDev) $(NetworkCardsKeyName) +
- $($0) *($($),1) $(ndiswan)
- ifstr $($R0) == STATUS_REBIND
- set status = $($R0)
- endif
-
- ;
- ; add WINS parameters
- ;
- set srcWINS = $(NetBTServiceKey)"\"$(srcDev)
- OpenRegKey $(!REG_H_LOCAL) "" $(srcWINS) +
- $(MAXIMUM_ALLOWED) winsHandle
- Ifstr $(winsHandle) != $(KeyNull)
- Shell "",CopyRegTree,$(srcWINS),$(NetBTServiceKey),+
- $(dstDev),$(NoTitle),GenericClass,FORCE
- CloseRegKey $(winsHandle)
- endif
- next_adapter = +
- endif
- endif
- endif
- CloseRegKey $(kHandle)
- endif
- EndForListDo
-
- ForListDo $(dialOutIp)
- set !IM_NDISWAN = >($(!IM_NDISWAN),$($))
- EndForListDo
- ForListDo $(dialInIp)
- set !IM_NDISWAN = >($(!IM_NDISWAN),$($))
- EndForListDo
-
- Return $(status)
-
- ;*************************************************************************
- ;
- ; SECTION: ResetAdapterParameter
- ;
- ; PURPOSE: Copy Transport Parameters from IM adapters to
- ; real adapters.
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS: $R0 - return status
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [ResetAdapterParameter]
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- ;
- ; Copy Transport parameters using IM's bind list
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(IMLinkageKeyName) $(MAXIMUM_ALLOWED) +
- KeyProduct
- Ifstr $(KeyProduct) == $(KeyNull)
- ; Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", +
- ; $(IMLinkageKeyName)" empty!"
- Return CANNOT_FIND_COMPONENT_SERVICE
- Endif
-
- GetRegValue $(KeyProduct) Bind bindList
- Ifint $(RegLastError) != 0
- CloseRegKey $(KeyProduct)
- Return $(RegLastError)
- endif
- set devices = *($(bindList),4)
-
- ForListDo $(devices)
- Split-String *($($),1) "\" device
- set srcDev = *($(device),4)
-
- Split-String $(srcDev) "_" device
- set dstDev = ""
- ForListDo $(device)
- ifint $(#) > 2
- set dstDev = $(dstDev)$($)
- endif
- EndForListDo
-
- set srcTree = $(!NTN_ServiceBase)"\"$(srcDev)
- Shell "",CopyRegTree,$(srcTree),$(!NTN_ServiceBase),+
- $(dstDev),$(NoTitle),GenericClass,FORCE
- EndForListDo
-
- CloseRegKey $(KeyProduct)
- Return STATUS_SUCCESSFUL
-
- ;*************************************************************************
- ;
- ; SECTION: RemoveIM
- ;
- ; PURPOSE: Remove IM is called during remove adapter phase or
- ; when any fatal error is detected.
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS:
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [RemoveIM]
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) SoftKey
- Ifstr $(SoftKey) != $(KeyNull)
- SetRegValue $(SoftKey) {RefCount,$(NoTitle),$(!REG_VT_DWORD),0}
- CloseRegKey $(SoftKey)
- endif
-
- ;
- ; Remove install file from ReviewPrograms and delete install file
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(NetRules) $(MAXIMUM_ALLOWED) KeyProduct
- Ifstr $(KeyProduct) == $(KeyNull)
- goto removeadapter_removeSoftwareComponent
- endif
-
- GetRegValue $(KeyProduct),"InfName", infName
- ifint $(RegLastError) != 0
- CloseRegKey $(KeyProduct)
- goto removeadapter_removeSoftwareComponent
- endif
-
- CloseRegKey $(KeyProduct)
- Shell "" AddToList *($(infName),4),,$(ReviewProgram),ReviewPrograms
- Split-String *($(infName),4) "0123456789" checkList
- Ifstr *($(checkList),1) != *($(infName),4)
- AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\"*($(infName),4)
- endif
-
- ;Shell "" GetImSampPath
- ;ifstr $($R0) == STATUS_SUCCESSFUL
- ;ifstr(i) $(!LIBHANDLE) == ""
- ;LoadLibrary "x" setupdll.dll !LIBHANDLE
- ;endif
- ;set NEWT = $($R1)\newt32.exe
- ;LibraryProcedure stat,$(!LIBHANDLE),CheckFileExistance $(NEWT)
- ;ifstr(i) $(stat) != NO
- ;
- ; Remove Newt from 'Run' key in registry (CT 7/20/97)
- ;
- ;RunProgram ExitCode NEWT32 "" $(NEWT) -u
-
- ;
- ; Remove NEWT32 on the next bootup sequence
- ;
- ;AddFileToDeleteList $(NEWT)
- ;endif
- ;endif
-
- removeadapter_removeSoftwareComponent = +
- ;
- ; Copy back current adapter settings
- ;
- Shell "" ResetAdapterParameter
-
- ;
- ; Remove software component
- ;
- Shell "" MyRemoveSoftwareComponent,$(Manufacturer),$(ProductSoftwareName),""
-
- ;
- ; Change NetRules back
- ;
- ForListDo $(NetRuleDriverKeys)
- Shell "" ChangeNetRules *($($),1) *($(IMDrivers),*($($),2)) +
- *($(SupportedDrivers),*($($),2)) Bindable
- EndForListDo
- Shell "" GetNtVersion
- ifstr $($R0) != "3.51"
- ForListDo $(NetRuleTransportKeys)
- Shell "" ChangeNetRules *($($),1) +
- *($(IMTransports),*($($),2)) +
- *($(SupportedTransports),*($($),2)) Bindable
- EndForListDo
- endif
- Shell "" ChangeNetRules $(MicroSW)"NetBT"$(CVNetRules) +
- *($(IMTransports),1) *($(SupportedTransports),4) Class
-
- ;
- ; Remove IM services and cards
- ;
- ;Shell "" RemoveIMServices
- Shell "" RemoveIMCards ALL
-
- Shell "" FixupTransportsAfterRemove
- Shell "" FixupServicesAfterRemove
-
- return
-
- ;*************************************************************************
- ;
- ; SECTION: MyRemoveSoftwareComponent
- ;
- ; PURPOSE: Remove software component.
- ;
- ; ARGUMENTS: $0 - Manufacturer
- ; $1 - Product software name
- ; $2 - Product software name to upgrade to
- ; $3 - Inf name if this is a upgrade
- ;
- ; RETURNS:
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [MyRemoveSoftwareComponent]
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- Shell "" GetNtVersion
- ifstr $($R0) == "3.51"
-
- OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\"$($0) +
- $(MAXIMUM_ALLOWED) keyHandle
- ifstr $(keyHandle) != $(KeyNull)
- ifstr $($2) != ""
- ;
- ; try to set ServiceName Key first before CopyRegTree
- ;
- CreateRegKey $(keyHandle) {$($2),0,GenericClass} "" +
- $(MAXIMUM_ALLOWED) "" driverHandle
- ifstr $(driverHandle) != $(KeyNull)
- CreateRegKey $(driverHandle) +
- {CurrentVersion,0,GenericClass} "" +
- $(MAXIMUM_ALLOWED) "" cvHandle
- ifstr $(cvHandle) != $(KeyNull)
- SetRegValue $(cvHandle) {ServiceName, 0, +
- $(!REG_VT_SZ), $(ProductSoftwareName)}
- SetRegValue $(cvHandle) {MajorVersion, 0, +
- $(!REG_VT_DWORD), $(ProductMajorVersion)}
- SetRegValue $(cvHandle) {MinorVersion, 0, +
- $(!REG_VT_DWORD), $(ProductMinorVersion)}
- CreateRegKey $(cvHandle) +
- {NetRules,0,GenericClass} "" +
- $(MAXIMUM_ALLOWED) "" nrHandle
- ifstr $(nrHandle) != $(KeyNull)
- Shell $(UtilityInf),ReduceInfPath,$($3)
- SetRegValue $(nrHandle) {InfName, 0, +
- $(!REG_VT_SZ), $($R0)}
- CloseRegKey $(nrHandle)
- endif
- CloseRegKey $(cvHandle)
- endif
- CloseRegKey $(driverHandle)
- endif
-
- Shell "",CopyRegTree,$(!NTN_SoftwareBase)"\"$($0)"\"$($1),+
- $(!NTN_SoftwareBase)"\"$($0),$($2),+
- $(NoTitle),GenericClass
-
- set removeBobcatINFs = TRUE
- endif
- DeleteRegTree $(keyHandle) $($1)
- CloseRegKey $(keyHandle)
- endif
-
- OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) +
- $(MAXIMUM_ALLOWED) keyHandle
- ifstr $(keyHandle) != $(KeyNull)
- ifstr $($2) != ""
- Shell "",CopyRegTree,$(!NTN_ServiceBase)"\"$($1),+
- $(!NTN_ServiceBase),$($2),+
- $(NoTitle),GenericClass
- set removeBobcatINFs = TRUE
- endif
- DeleteRegTree $(keyHandle) $($1)
- CloseRegKey $(keyHandle)
- endif
-
- set status = STATUS_SUCCESSFUL
-
- else
-
- ifstr $($2) == ""
-
- Shell $(UtilityInf),RemoveSoftwareComponent,$($0),$($1)
- set status = STATUS_SUCCESSFUL
-
- else
-
- set status = STATUS_SUCCESSFUL
-
- OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\"$($0)"\"$($1) +
- $(MAXIMUM_ALLOWED) keyHandle
- ifstr $(keyHandle) != $(KeyNull)
- set removeBobcatINFs = TRUE
- CloseRegKey $(keyHandle)
- set status = STATUS_REBOOT
- endif
-
- OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$($1) +
- $(MAXIMUM_ALLOWED) keyHandle
- ifstr $(keyHandle) != $(KeyNull)
- set removeBobcatINFs = TRUE
- CloseRegKey $(keyHandle)
- set status = STATUS_REBOOT
- endif
-
- ifstr $(status) == STATUS_REBOOT
- Shell $(UtilityInf),RemoveSoftwareComponent,$($0),$($1)
- ;
- ; remove 4.0 rule
- ;
- ForListDo $(NetRuleDriverKeys)
- Shell "" ChangeNetRules *($($),1) NMFTRTransport +
- *($(SupportedDrivers),*($($),2)) Bindable
- EndForListDo
- Shell "" GetNtVersion
- ifstr $($R0) != "3.51"
- ForListDo $(NetRuleTransportKeys)
- Shell "" ChangeNetRules *($($),1) +
- *($(IMTransports),*($($),2)) +
- *($(SupportedTransports),*($($),2)) Bindable
- EndForListDo
- endif
- Shell "" ChangeNetRules $(MicroSW)"NetBT"$(CVNetRules) +
- *($(IMTransports),1) *($(SupportedTransports),4) Class
-
- ;
- ; Install new IM after next reboot
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(RunOnce) +
- $(MAXIMUM_ALLOWED) runHandle
- ifstr $(runHandle) == $(KeyNull)
- CreateRegKey $(!REG_H_LOCAL) {$(RunOnce),0,GenericClass} +
- "" $(MAXIMUM_ALLOWED) "" runHandle
- endif
-
- ifstr $(runHandle) != $(KeyNull)
- SetRegValue $(runHandle) {InstallIM,0,+
- $(!REG_VT_SZ),"rundll32 wgagent.dll,DllRegisterServer"}
- CloseRegKey $(runHandle)
-
- Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE),+
- "NONFATAL", +
- "Setup has removed a previous version of OPFFLTNT "+
- "IM. A reboot is require before the new OPFFLTNT "+
- "IM can be added. On the next reboot, the new "+
- "OPFFLTNT IM will be installed automatically."
- endif
- endif
- endif
- endif
-
- ifstr $(removeBobcatINFs) == TRUE
- shell "" RemoveBobcatINFs
- endif
-
- return $(status)
-
- ;*************************************************************************
- ;
- ; SECTION: RemoveBobcatINFs
- ;
- ; PURPOSE: Remove bobcat inf files.
- ;
- ; ARGUMENTS:
- ;
- ; RETURNS:
- ;
- ; REFERENCES: <list of global or parent variables referenced>
- ;
- ;*************************************************************************
- [RemoveBobcatINFs]
-
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- set list = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,+
- 10,11,12,13,14,15,16,17,18,19,+
- 20,21,22,23,24,25,26,27,28,29,+
- 30,31,32,33,34,35,36,37,38,39,+
- 40,41,42,43,44,45,46,47,48,49,+
- 50,51,52,53,54,55,56,57,58,59,+
- 60,61,62,63,64,65,66,67,68,69,+
- 70,71,72,73,74,75,76,77,78,79,+
- 80,81,82,83,84,85,86,87,88,89,+
- 90,91,92,93,94,95,96,97,98,99}
- ;
- ; Delete bobcat INF instances
- ;
- ForListDo $(list)
- set infName = OEMNSV$($).INF
- Shell $(infName),ReturnOptions ENG
- ifint $($ShellCode) == $(!SHELL_CODE_OK)
- ifstr $($R0) == STATUS_SUCCESSFUL
- ifstr *($($R2),1) == $(ProductSoftwareTitle)
- AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\"$(infName)
- endif
- endif
- endif
- EndForListDo
-
- return
-
- ;*************************************************************************
- ; taken from oemnsvra.inf for NDISWAN
- ;*************************************************************************
-
- [UpdateLLInterface]
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- Debug-Output "UpdateLLInterface: entry"
- set Status = STATUS_FAILED
- set KeyNull = ""
- set LLInterface = "\Device\RASARP"
- set IPLinkageKeyName = $(!NTN_ServiceBase)"\TCPIP\Linkage"
- OpenRegKey $(!REG_H_LOCAL) "" $(IPLinkageKeyName) $(MAXIMUM_ALLOWED) +
- KeyIpLinkage
- ifstr $(KeyIpLinkage) == $(KeyNull)
- Debug-Output "IM: UpdateLLInterface: couldn't open IP Linkage key"
- goto UpdateLLInterfaceEnd
- endif
-
- set compareSize = 0
- set compareString = $(ProductSoftwareName)"_NdisWan"
- Split-String $(compareString) $(compareString) charList
- ForListDo $(charList)
- set-add compareSize = $(compareSize),1
- EndForListDo
-
- set NdisWanList = {}
- GetRegValue $(KeyIpLinkage) "Bind" TmpList
- ForListDo *($(TmpList),4)
- Split-String $($), "\", BindList
- QueryListSize ListSize $(BindList)
- set ServiceName = *($(BindList), $(ListSize))
- LibraryProcedure Result $(!LIBHANDLE) SetupStrncmp $(ServiceName) +
- $(compareString) $(compareSize)
- ifint $(Result) == 0
- set NdisWanList = >($(NdisWanList), $(ServiceName))
- endif
- EndForListDo
- CloseRegKey $(KeyIpLinkage)
- 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, $(NoTitle),+
- $(!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 "IM: 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]
- read-syms GeneralConstants
- read-syms FileConstants
- read-syms FileConstantsENG
-
- Debug-Output "SetRasArpBindValueFromTcpIP: entry"
- set Status = STATUS_FAILED
- set KeyNull = ""
- set IPLinkageKeyName = $(!NTN_ServiceBase)"\TCPIP\Linkage"
- OpenRegKey $(!REG_H_LOCAL) "" $(IPLinkageKeyName) $(MAXIMUM_ALLOWED) +
- KeyIpLinkage
- ifstr $(KeyIpLinkage) == $(KeyNull)
- Debug-Output "IM: SetRasArpBindValueFromTcpIP: can't open IP Linkage"
- goto SetRasArpBindValueFromTcpIPEnd
- endif
-
- set compareSize = 0
- set compareString = $(ProductSoftwareName)"_NdisWan"
- Split-String $(compareString) $(compareString) charList
- ForListDo $(charList)
- set-add compareSize = $(compareSize),1
- EndForListDo
-
- set NdisWanList = {}
- GetRegValue $(KeyIpLinkage) "Bind" TmpList
- ForListDo *($(TmpList),4)
- Split-String $($), "\", BindList
- QueryListSize ListSize $(BindList)
- set ServiceName = *($(BindList), $(ListSize))
- LibraryProcedure Result $(!LIBHANDLE) SetupStrncmp $(ServiceName) +
- $(compareString) $(compareSize)
- 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)
-
- ;*************************************************************************
- ; end code taken from oemnsvra.inf for NDISWAN
- ;*************************************************************************
-