;***********************************************************************
;
; OEMNSVCM.INF
;
; Novell IPX Compatibility Mode INF file.
;
;***********************************************************************
;
; The following is the version info for Novell
;
;VeRsIoN=v4.71 Novell Client Install for Windows NT (980316)
;CoPyRiGhT=copyright 1992-2000, by Novell, INC. All rights reserved.
[Identification]
OptionType = NetService
[Options]
NWCMD
[FileConstants]
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
NwSubsInf = "NWSUBS.INF"
SoftwareType = "driver"
Exit_Code = 0
DriverToLoad = ""
;
; EventLog Message File
;
NetEventDLL = "%SystemRoot%\System32\nls\"$(NLSDirName)"\nwevents.dll"
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
;
; Software
;
ProductSoftwareName = "NWCMD"
ProductSoftwareTitle = "Novell IPX Compatibility Mode"
ProductSoftwareImagePath = "\SystemRoot\system32\drivers\nwcmd.sys"
NetRuleSoftwareType = "NWCMDSys NWCMDDriver"
NetRuleSoftwareUse = $(SoftwareType)
NetRuleSoftwareBindForm = """NWCMDSys"" yes no container"
NetRuleSoftwareClass = {"NWCMDDriver basic"}
NetRuleSoftwareBindable = {"NWCMDDriver NWCMDAdapter non exclusive 100"}
;
; NWCMDH
;
ProductNWCMDHControl = service
ProductNWCMDHHidden = 0
ProductNWCMDHInstrumentation = FALSE
ProductNWCMDHName = "NWCMDH"
ProductNWCMDHImagePath = "\SystemRoot\system32\drivers\nwcmd2.sys"
ProductNWCMDHSvcType = "kernelautostart"
ProductNWCMDHGroup = ""
ProductNWCMDHDependList = {}
ProductNWCMDHEventFile = ""
;
; Hardware
;
ProductHardwareName = "NWCMD"
ProductHardwareTitle = "Novell IPX Compatibility Adapter"
NetRuleHardwareType = "NWCMD NWCMDAdapter"
NetRuleHardwareBindForm = " yes yes container"
NetRuleHardwareClass = {"NWCMDAdapter basic"}
;
; Registry Key
;
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
[GeneralConstants]
;
; Program Flow control variables
;
from = ""
to = ""
;
; Return Codes; Exit_Code is set to one of these
;
ExitCodeOk = 0
ExitCodeCancel = 1
ExitCodeFatal = 2
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
RegistryErrorIndex = NO_ERROR
KeyProduct = ""
KeyParameters = ""
TRUE = 1
FALSE = 0
NoTitle = 0
ExitState = "Active"
DriverPath = $(!STF_NTPATH)\drivers
;
; Product Info
;
Manufacturer = "Novell"
ProductMajorVersion = 4
ProductMinorVersion = 71
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
;------------------------------------------------------------------------------
; 1. Identify To verify that this INF deals with the same type of options
; as we are choosing currently.
;
; Input: none
;
; Output: $($R0): STATUS: STATUS_SUCCESSFUL
; $($R1): Option Type (COMPUTER ...)
; $($R2): Diskette Description
;------------------------------------------------------------------------------
[Identify]
read-syms Identification
set Status = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)
;------------------------------------------------------------------------------
; 2. ReturnOptions To return the option list supported by this INF and
; the localized text list representing the options.
; Input: $($0): Lang. used (ENG | FRN | ....)
;
; Output: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE |
; STATUS_FAILED |
; STATUS_NOTSUPPORTED
; $($R1): Option List
; $($R2): Option Text List
;
;------------------------------------------------------------------------------
[ReturnOptions]
set Status = STATUS_FAILED
set OptionList = {}
set OptionTextList = {}
;
; Check if the language requested is supported
;
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
goto returnoptions
else
set Status = STATUS_NOLANGUAGE
goto finish_ReturnOptions
endif
;
; form a list of all the options and another of the text representing
;
returnoptions = +
set OptionList = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = +
Return $(Status) $(OptionList) $(OptionTextList)
;------------------------------------------------------------------------------
; 2. InstallOption This section is shelled to by main installation processing
;
; Function: To copy files representing Options
; To configure the installed option
; To update the Registry for the installed option
;
; Input: $($0): Lang. to use
; $($1): OptionID to install
; $($2): SourceDirectory
; $($3): AddCopy ( YES | NO )
; $($4): DoCopy ( YES | NO )
; $($5): DoConfig ( YES | NO )
;
; Output: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE |
; STATUS_USERCANCEL |
; STATUS_FAILED |
; STATUS_NOTSUPPORTED
;
;------------------------------------------------------------------------------
[InstallOption]
;
; Set default values for
;
set Status = STATUS_FAILED
;
; extract parameters
;
set Option = $($1)
set !SrcDir = $($2)
set !AddCopy = $($3)
set !DoCopy = $($4)
set !DoConfig = $($5)
;
; Check if the language requested is supported
;
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
goto installoption
else
set Status = STATUS_NOLANGUAGE
goto finish_InstallOption
endif
installoption = +
Shell "" UnattendedInstallOption
;
; Get the data from the Unattended file.
;
ifstr(i) $(!NWUnattendedFile) != ""
ifstr(i) $(!NWUnattendedSection) != ""
Shell $(!NWUnattendedFile) ReadDefaultData, "IPXCompatibilityModeParameters"
ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
Debug-Output "Shell to read the NW Parameter values from an Unattend.txt file Failed."
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "Warning", $(UnattendFileReadFailed)
ifstr(i) $($R1) == "CANCEL"
set CommonStatus = STATUS_USERCANCEL
goto end
endif
endif
endif
endif
ifstr(i) $(!NWUnattendedFile) != ""
ifstr(i) $(!NWWizard) != YES
Debug-OutPut "OEMNSVCM.INF: !DoRemove = "$(!DoRemove)
ifstr(i) $(!DoRemove) == YES
set !NTN_InstallMode = deinstall
else-Ifstr(i) $(!DoInstall) == NO
Debug-OutPut "OEMNSVCM.INF: !DoInstall = "$(!DoInstall)
set CommonStatus = STATUS_SUCCESSFUL
goto end
endif
endif
endif
;
; Call the CommonSection
;
shell "" CommonSection $(Option)
set Status = $($R0)
ifstr(i) $($R1) != ""
set DriverToLoad = { $($R1) }
else
set DriverToLoad = ""
endif
Return $(Status) $(DriverToLoad)
[CommonSection]
StartWait
set Option = $($0)
read-syms GeneralConstants
;
; Find what NLS directory is being used
;
set NovellParameters = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\Parameters"
Debug-OutPut "NovellParameters is "$(NovellParameters)
OpenRegKey $(!REG_H_LOCAL) "" $(NovellParameters) $(MAXIMUM_ALLOWED) KeyNovellParameters
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
GetRegValue $(KeyNovellParameters) "NWLanguage" LanguageList
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
set NLSDirName = *($(LanguageList), 4)
else
goto fatalregistry
endif
CloseRegKey $(KeyNovellParameters)
else
goto fatalregistry
Endif
;
; Get NT version
;
set CurrentVersion = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion"
OpenRegKey $(!REG_H_LOCAL) "" $(CurrentVersion) $(MAXIMUM_ALLOWED) CurrentVersionKey
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
GetRegValue $(CurrentVersionKey) "CurrentVersion" VersionList
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
set VersionListData = *($(VersionList), 4)
Split-string $(VersionListData) "." SplitVersionList
Set NTMajorVersion = *($(SplitVersionList), 1)
Set NTMinorVersion = *($(SplitVersionList), 3)
Debug-OutPut "OEMNSVCM.INF: Windows NT current version is "$(VersionListData)
Debug-OutPut "OEMNSVCM.INF: Windows NT Major version is "$(NTMajorVersion)
Debug-OutPut "OEMNSVCM.INF: Windows NT Minor version is "$(NTMinorVersion)
else
Debug-Output "OEMNSVCM.INF: Error getting NT version"
endif
CloseRegKey $(CurrentVersionKey)
else
Debug-Output "OEMNSVCM.INF: Error opening "$(CurrentVersion)
endif
set-subst LF = "\n"
read-syms FileConstants
read-syms FileConstants$(!STF_LANGUAGE)
read-syms InstallOption$(!STF_LANGUAGE)
detect date
set-title $(FunctionTitle)
set to = Begin
set from = Begin
set CommonStatus = STATUS_SUCCESSFUL
EndWait
set CurrentVersion = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion"
OpenRegKey $(!REG_H_LOCAL) "" $(CurrentVersion) $(MAXIMUM_ALLOWED) CurrentVersionKey
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
GetRegValue $(CurrentVersionKey) "CurrentVersion" VersionList
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
set VersionListData = *($(VersionList), 4)
Split-string $(VersionListData) "." SplitVersionList
Set NTMajorVersion = *($(SplitVersionList), 1)
Set NTMinorVersion = *($(SplitVersionList), 3)
Debug-OutPut "Windows NT current version is "$(VersionListData)
Debug-OutPut "Windows NT Major version is "$(NTMajorVersion)
Debug-OutPut "Windows NT Minor version is "$(NTMinorVersion)
else
Debug-Output "OEMNSVCM.INF: Error getting NT version"
endif
CloseRegKey $(CurrentVersionKey)
else
Debug-Output "OEMNSVCM.INF: Error opening "$(CurrentVersion)
endif
Begin = +
Set !G:DebugOutputControl = 0
Debug-Output "OEMNSVCM.INF: Begin Install Mode = "$(!NTN_InstallMode)
Ifstr(i) $(!NTN_InstallMode) == deinstall
set StartLabel = removeadapter
else-Ifstr(i) $(!NTN_InstallMode) == Update
set StartLabel = updateadapter
else-Ifstr(i) $(!NTN_InstallMode) == bind
set StartLabel = bindadapter
else-Ifstr(i) $(!NTN_InstallMode) == configure
set StartLabel = configureadapter
Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Debug-Output "OEMNSVCM.INF: Can't configure the Novell CM software."
Shell $(UtilityInf), RegistryErrorString, CANNOT_CONFIGURE_SOFTWARE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: ShellCode error: can't get an error string."
goto ShellCodeError
endif
set Error = $($R0)
set from = end
set to = end
goto Warning
endif
else
set StartLabel = installadapter
set OEM_ABANDON_OPTIONS = {}
set OEM_ABANDON_SOFTWARE = FALSE
set OEM_ABANDON_ON = TRUE
endif
set from = $(fatal)
set to = $(fatal)
goto $(StartLabel)
installadapter = +
Debug-Output "OEMNSVCM.INF: Installing IPX Compatibility Mode adapter"
;
; Start the adapter install stuff
;
;
; Check whether NWIP is installed
;
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NetWareIP" $(MAXIMUM_ALLOWED) KeyProduct
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set DeleteFlagVal = 0
GetRegValue $(KeyProduct) "DeleteFlag" ValueData
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set DeleteFlagVal = *($(ValueData), 4)
endif
CloseRegKey $(KeyProduct)
Ifint $(DeleteFlagVal) != 1
;
; Cannot install NWCMD while NWIP is installed.
;
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(NWIPInstalledMessage)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set CommonStatus = STATUS_USERCANCEL
goto end
endif
endif
;
; Is this an Advanced Server
;
Debug-Output "OEMNSVCM.INF: Checking to see if advanced server"
set AdvancedServer = "NO"
Set TempKeyName = "SYSTEM\CurrentControlSet\Control\ProductOptions"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set ValueName = "ProductType"
GetRegValue $(TempKey) $(ValueName) ValueList
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
set ValueListData = *($(ValueList), 4)
set AdvancedServer = "YES"
ifstr(i) $(ValueListData) == "WinNT"
set AdvancedServer = "NO"
Debug-Output "OEMNSVCM.INF: AdvancedServer is "$(AdvancedServer)
endif
else
Debug-Output "OEMNSVCM.INF: Failed to get ProductType"
endif
CloseRegKey $(TempKey)
else
Debug-Output "OEMNSVCM.INF: Failed to open ProductOptions key"
endif
set RasProtocolsKeyName = $(!NTN_SoftwareBase)"\Microsoft\RAS\PROTOCOLS"
OpenRegKey $(!REG_H_LOCAL) "" $(RasProtocolsKeyName) $(MAXIMUM_ALLOWED) KeyRasProtocols
ifstr $(KeyRasProtocols) != ""
GetRegValue $(KeyRasProtocols) "fIpxSelected" IpxSelectedValue
ifint $(RegLastError) == 0
set IpxSelectedVal = *($(IpxSelectedValue), 4)
Debug-Output "OEMNSVCM.INF: IpxSelectedVal is "$(IpxSelectedVal)
ifint $(IpxSelectedVal) == 1
;
; RAS and NWCMD are not compatible.
;
CloseRegKey $(KeyRasProtocols)
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(IPOnlyMessageText)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set CommonStatus = STATUS_USERCANCEL
goto end
Endif
Endif
GetRegValue $(KeyRasProtocols) "fIpxAllowed" IpxAllowedValue
ifint $(RegLastError) == 0
set IpxAllowedVal = *($(IpxAllowedValue), 4)
ifint $(IpxAllowedVal) == 1
;
; RAS and NWCMD are not compatible.
;
CloseRegKey $(KeyRasProtocols)
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(IPOnlyMessageText)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set CommonStatus = STATUS_USERCANCEL
goto end
Endif
Endif
CloseRegKey $(KeyRasProtocols)
Endif
Shell "" Install-NWLINK
;
; Add the software component
;
ifint $(NTMajorVersion) == "4"
set GroupToJoin = "NDIS"
else
set GroupToJoin = ""
endif
Debug-Output "OEMNSVCM.INF: AddSoftwareComponent"
Shell $(UtilityInf), AddSoftwareComponent +
$(Manufacturer), +
$(ProductSoftwareName), +
$(ProductSoftwareName), +
$(ProductSoftwareTitle), +
$(STF_CONTEXTINFNAME), +
$(ProductSoftwareImagePath), +
"kernelautostart", +
$(GroupToJoin), +
"", +
"", +
$(NetEventDLL)
Set OEM_ABANDON_SOFTWARE = TRUE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: AddSoftwareComponent ShellCode error "$($ShellCode)
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 "OEMNSVCM.INF: AddSoftwareComponent Registry error "$(RegistryErrorIndex)
CloseRegKey $(KeyProduct)
CloseRegKey $(SoftNetRulesKey)
goto fatalregistry
endif
set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
{Hidden,$(NoTitle),$(!REG_VT_DWORD),1},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
{Review,$(NoTitle),$(!REG_VT_DWORD),1},+
{PathName,$(NoTitle),$(!REG_VT_SZ),$(!STF_CWDDIR)},+
{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 "OEMNSVCM.INF: AddValueList ShellCode error "$($ShellCode)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "OEMNSVCM.INF: AddValueList Registry error "$(RegistryErrorIndex)
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),$(NetRuleSoftwareBindable)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}, +
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(STF_CONTEXTINFNAME)} }
Shell $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: AddValueList ShellCode error "$($ShellCode)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(KeyProduct)
CloseRegKey $(SoftNetRulesKey)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "OEMNSVCM.INF: AddValueList Registry error "$(RegistryErrorIndex)
goto fatalregistry
endif
Debug-Output "OEMNSVCM.INF: install service: NWCMDH."
Shell $(UtilityInf), CreateService, +
$(ProductNWCMDHName), +
$(ProductNWCMDHDisplayName), +
$(ProductNWCMDHImagePath), +
$(ProductNWCMDHSvcType), +
$(ProductNWCMDHGroup), +
$(ProductNWCMDHDependList), "", +
$(ProductNWCMDHEventFile), +
$(ProductNWCMDHTypeSupported), +
$(ProductNWCMDHEventLogLocation), 1
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: ShellCode error installing NWCMDH."
goto ShellCodeError
Endif
Set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
Debug-Output "OEMNSVCM.INF: Registry error installing NWCMDH."
goto fatalregistry
Endif
Set SvcSvcKey = $($R1)
Set SvcParamKey = $($R2)
Set SvcLinkKey = $($R3)
CloseRegKey $(SvcSvcKey)
CloseRegKey $(SvcParamKey)
CloseRegKey $(SvcLinkKey)
;
; Add the hardware component at board two or later
;
;
; If on NT 4.00 machine and not an advanced server, add the board five times
; Otherwise, add it once
;
set Count = 0
set endCount = 1
ifint $(NTMajorVersion) == "4"
ifstr(i) $(AdvancedServer) != "YES"
set endCount = 5
endif
endif
StartHardwareInstallation = +
ifint $(Count) < $(endCount)
ifint $(Count) > 0
set HideIt = 1
else
set HideIt = 0
endif
Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName),"","","2"
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 "OEMNSVCM.INF: AddHardwareComponent Shell error "$($ShellCode)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "OEMNSVCM.INF: AddHardwareComponent Registry error "$(RegistryErrorIndex)
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)"] "$(ProductHardwareTitle)},+
{Hidden,$(NoTitle),$(!REG_VT_DWORD),$(HideIt)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: AddValueList ShellCode error "$($ShellCode)
goto ShellCodeError
endif
CloseRegKey $($R1)
set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}, +
{Infname ,$(NoTitle),$(!REG_VT_SZ),$(STF_CONTEXTINFNAME)}}
Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: AddValueList ShellCode error "$($ShellCode)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "OEMNSVCM.INF: AddValueList Registry error "$(RegistryErrorIndex)
CloseRegKey $(KeyParameters)
CloseRegKey $(KeyAdapterRules)
goto fatalregistry
endif
CloseRegKey $(KeyAdapterRules)
set-add Count = $(Count), 1
goto StartHardwareInstallation
endif
Ifstr(i) $(CalledFromUpdate) == "YES"
goto ReturnToUpdate
endif
;
; By default depend on TCPIP
;
set DependOnList = {"Tcpip"}
set TempKeyName = $(!NTN_ServiceBase)"\NWCMD\Linkage"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(TempKey) {"OtherDependencies", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DependOnList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Can't set Compatibility Mode linkage key"
goto fatalregistry
endif
FlushRegKey $(TempKey)
CloseRegKey $(TempKey)
else
Debug-Output "OEMNSVCM.INF: Can't open Compatibility Mode linkage key"
goto fatalregistry
endif
;
; Add NwlnkIpx binding for Compatibility Mode Driver.
; Remove binding for ndisDriver
;
Shell "" Install-Bindings
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: Install-Bindings ShellCode error "$($ShellCode)
goto ShellCodeError
else
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVCM.INF: Install-Bindings returned error"
goto fatalregistry
endif
endif
;
; Install various registry parameters
;
Debug-Output "OEMNSVCM.INF: Install-Parameters"
Install Install-Parameters
;
; Write out the unattended variables to registry
;
shell "" Write-Unattended-Variables
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVCM: User Canceled due to a error processing the Unattended Variables."
set CommonStatus = STATUS_USERCANCEL
goto setfailed
endif
goto end
configureadapter = +
Debug-Output "OEMNSVCM.INF: Configuring Compatibility Mode adapter"
StartWait
LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\nwsetup.dll" NwLibHandle
SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.hlp" $(!MinimumID) $(!MaximumID)
ifint $(NTMajorVersion) < "4"
SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.hlp" $(!MinimumID) $(!MaximumID)
endif
set HelpContext = $(IDH_NETWAREWRKSTATIONPARMS)
LibraryProcedure LibResult $(NwLibHandle) NWConfigure $(Option)
Debug-Output "OEMNSVCM.INF: dialog returned "$(LibResult)
ifstr(i) $(LibResult) != "CONTINUE"
set CommonStatus = STATUS_USERCANCEL
endif
FreeLibrary $(NwLibHandle)
;
; Write out the unattended variables to registry
;
shell "" Write-Unattended-Variables
goto end
bindadapter =+
Debug-Output "OEMNSVCM.INF: Binding Compatibility Mode adapter"
;
; First make sure tcpip was not removed out from under us.
; If it was, pop message warning user.
;
set NoTCPIP = 0
set TempKeyName = $(!NTN_ServiceBase)"\tcpip"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
GetRegValue $(TempKey) "DeleteFlag" ValueData
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
set NoTCPIP = 1
endif
else
set NoTCPIP = 1
Debug-Output "OEMNSVCM.INF: Failed to open key "$(TempKeyName)
endif
ifint $(NoTCPIP) == 1
;
; Pop up message warning user that TCPIP is not installed and
; that Compatibility Mode will not function correctly.
;
set DlgType = "MessageBox"
set STF_MB_TITLE = $(ErrorMessageTitle)
set STF_MB_TEXT = $(NoTcpipMessageText)
set STF_MB_TYPE = 1
set STF_MB_ICON = 3
set STF_MB_DEF = 1
ui start "NoTcpipError"
endif
;
; By default depend on TCPIP
;
set DependOnList = {"Tcpip"}
set TempKeyName = $(!NTN_ServiceBase)"\NWCMD"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(TempKey) {"DependOnService", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DependOnList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Can't set Compatibility Mode linkage key"
goto fatalregistry
endif
FlushRegKey $(TempKey)
CloseRegKey $(TempKey)
else
Debug-Output "OEMNSVCM.INF: Can't open Compatibility Mode linkage key"
goto fatalregistry
endif
set TempKeyName = $(!NTN_ServiceBase)"\NWCMD\Linkage"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(TempKey) {"OtherDependencies", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DependOnList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Can't set Compatibility Mode linkage key"
goto fatalregistry
endif
FlushRegKey $(TempKey)
CloseRegKey $(TempKey)
else
Debug-Output "OEMNSVCM.INF: Can't open Compatibility Mode linkage key"
goto fatalregistry
endif
;
; Check to see if Microsoft Client is installed. If so, remove its bindings to NWLink.
;
Debug-Output "OEMNSVCM.INF: Check to see if Microsoft Client (Workstation) is installed"
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\LanmanWorkstation\Linkage" $(MAXIMUM_ALLOWED) KeyLanman
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\LanmanWorkstation\Linkage\Disabled" $(MAXIMUM_ALLOWED) KeyLanmanDisabled
GetRegValue $(KeyLanman) "Bind" ValueData
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set ValueList = *($(ValueData), 4)
Set NewList1 = {}
Set DisabledList = {}
Set FindValue = "\Device\NwlnkIpx"
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Set NewList1 = >($(NewList1), $($))
Debug-Output "OEMNSVCM.INF: Bind (WS): NewList1 set"
else
Debug-Output "OEMNSVCM.INF: Bind (WS): Setting DisabledList to "$($)
Set DisabledList = >($(DisabledList), $($))
Endif
EndForListDo
Endif
Debug-Output "OEMNSVCM.INF: Bind (WS): NewList1 is "$(NewList1)
Ifstr(i) $(NewList1) != {}
Set ValueList = $(NewList1)
Endif
Set NewList2 = {}
Set FindValue = "\Device\NwlnkNb"
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Set NewList2 = >($(NewList2), $($))
Debug-Output "OEMNSVCM.INF: Bind (WS): NewList2 set"
else
Set DisabledList = >($(DisabledList), $($))
Debug-Output "OEMNSVCM.INF: Bind (WS): Setting DisabledList to "$($)
Endif
EndForListDo
Endif
Debug-Output "OEMNSVCM.INF: Bind (WS): NewList2 is "$(NewList2)
Ifstr(i) $(NewList2) != {}
Debug-Output "OEMNSVCM.INF: Bind (WS): Setting Reg value to Newlist2: "$(NewList2)
SetRegValue $(KeyLanman) {"Bind", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList2)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Bind value for LanmanWS"
Endif
else-Ifstr(i) $(NewList1) != {}
Debug-Output "OEMNSVCM.INF: Bind (WS): Setting Reg value to Newlist1: "$(NewList1)
SetRegValue $(KeyLanman) {"Bind", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList1)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Bind value for LanmanWS"
Endif
Endif
Debug-Output "OEMNSVCM.INF: DisabledList (Bind) equals: "$(DisabledList)
Ifstr(i) $(DisabledList) != {}
SetRegValue $(KeyLanmanDisabled) {"Bind", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DisabledList)}
Endif
Endif
GetRegValue $(KeyLanman) "Export" ValueData
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set ValueList = *($(ValueData), 4)
Set NewList1 = {}
Set DisabledList = {}
Set FindValue = "\Device\LanmanWorkstation\NwlnkIpx"
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Debug-Output "OEMNSVCM.INF: Export (WS): NewList1 set"
Set NewList1 = >($(NewList1), $($))
else
Debug-Output "OEMNSVCM.INF: Export (WS): Setting Disabled to "$($)
Set DisabledList = >($(DisabledList), $($))
Endif
EndForListDo
Endif
Debug-Output "OEMNSVCM.INF: Export (WS): NewList1 is "$(NewList1)
Ifstr(i) $(NewList1) != {}
Set ValueList = $(NewList1)
Endif
Set NewList2 = {}
Set FindValue = "\Device\LanmanWorkstation\NwlnkNb"
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Debug-Output "OEMNSVCM.INF: Export (WS): NewList2 set"
Set NewList2 = >($(NewList2), $($))
else
Debug-Output "OEMNSVCM.INF: Export (WS): Setting Disabled to "$($)
Set DisabledList = >($(DisabledList), $($))
Endif
EndForListDo
Endif
Debug-Output "OEMNSVCM.INF: Export (WS): NewList2 is "$(NewList2)
Ifstr(i) $(NewList2) != {}
SetRegValue $(KeyLanman) {"Export", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList2)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Export value for LanmanWS"
Endif
else-Ifstr(i) $(NewList1) != {}
SetRegValue $(KeyLanman) {"Export", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList1)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Export value for LanmanWS"
Endif
Endif
Ifstr(i) $(DisabledList) != {}
SetRegValue $(KeyLanmanDisabled) {"Export", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DisabledList)}
Endif
Endif
GetRegValue $(KeyLanman) "Route" ValueData
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set ValueList = *($(ValueData), 4)
Set NewList = {}
Set DisabledList = {}
Set FindValue = """NwlnkNb"" ""NwlnkIpx"""
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Set NewList = >($(NewList), $($))
Debug-Output "OEMNSVCM.INF: Route (WS): NewList set"
else
Debug-Output "OEMNSVCM.INF: Route (WS): Setting Disabled to "$($)
Set DisabledList = >($(DisabledList), $($))
Endif
EndForListDo
Debug-Output "OEMNSVCM.INF: Route (WS): NewList is "$(NewList)
SetRegValue $(KeyLanman) {"Route", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Route value for LanmanWS"
Endif
Ifstr(i) $(DisabledList) != {}
SetRegValue $(KeyLanmanDisabled) {"Route", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DisabledList)}
Endif
Endif
Endif
CloseRegKey $(KeyLanman)
CloseRegKey $(KeyLanmanDisabled)
Endif
Debug-Output "OEMNSVCM.INF: Check to see if Microsoft Client (Server) is installed"
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\LanmanServer\Linkage" $(MAXIMUM_ALLOWED) KeyLanman
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\LanmanServer\Linkage\Disabled" $(MAXIMUM_ALLOWED) KeyLanmanDisabled
GetRegValue $(KeyLanman) "Bind" ValueData
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set ValueList = *($(ValueData), 4)
Set NewList1 = {}
Set DisabledList = {}
Set FindValue = "\Device\NwlnkIpx"
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Debug-Output "OEMNSVCM.INF: Bind (SV): NewList1 set"
Set NewList1 = >($(NewList1), $($))
else
Debug-Output "OEMNSVCM.INF: Bind (SV): Setting Disabled to "$($)
Set DisabledList = >($(DisabledList), $($))
Endif
EndForListDo
Endif
Debug-Output "OEMNSVCM.INF: Bind (SV): NewList1 is "$(NewList1)
Ifstr(i) $(NewList1) != {}
Set ValueList = $(NewList1)
Endif
Set NewList2 = {}
Set FindValue = "\Device\NwlnkNb"
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Debug-Output "OEMNSVCM.INF: Bind (SV): NewList2 set"
Set NewList2 = >($(NewList2), $($))
else
Debug-Output "OEMNSVCM.INF: Bind (SV): Setting Disabled to "$($)
Set DisabledList = >($(DisabledList), $($))
Endif
EndForListDo
Endif
Debug-Output "OEMNSVCM.INF: Bind (SV): NewList2 is "$(NewList2)
Ifstr(i) $(NewList2) != {}
SetRegValue $(KeyLanman) {"Bind", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList2)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Bind value for LanmanSV"
Endif
else-Ifstr(i) $(NewList1) != {}
SetRegValue $(KeyLanman) {"Bind", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList1)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Bind value for LanmanSV"
Endif
Endif
Ifstr(i) $(DisabledList) != {}
SetRegValue $(KeyLanmanDisabled) {"Bind", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DisabledList)}
Endif
Endif
GetRegValue $(KeyLanman) "Export" ValueData
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set ValueList = *($(ValueData), 4)
Set NewList1 = {}
Set DisabledList = {}
Set FindValue = "\Device\LanmanServer\NwlnkIpx"
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Set NewList1 = >($(NewList1), $($))
Debug-Output "OEMNSVCM.INF: Export (SV): NewList1 set"
else
Set DisabledList = >($(DisabledList), $($))
Debug-Output "OEMNSVCM.INF: Export (SV): Setting Disabled to "$($)
Endif
EndForListDo
Endif
Debug-Output "OEMNSVCM.INF: Export (SV): NewList1 is "$(NewList1)
Ifstr(i) $(NewList1) != {}
Set ValueList = $(NewList1)
Endif
Set NewList2 = {}
Set FindValue = "\Device\LanmanServer\NwlnkNb"
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Set NewList2 = >($(NewList2), $($))
Debug-Output "OEMNSVCM.INF: Export (SV): NewList2 set"
else
Debug-Output "OEMNSVCM.INF: Export (SV): Setting Disabled to "$($)
Set DisabledList = >($(DisabledList), $($))
Endif
EndForListDo
Endif
Debug-Output "OEMNSVCM.INF: Export (SV): NewList2 is "$(NewList2)
Ifstr(i) $(NewList2) != {}
SetRegValue $(KeyLanman) {"Export", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList2)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Export value for LanmanSV"
Endif
else-Ifstr(i) $(NewList1) != {}
SetRegValue $(KeyLanman) {"Export", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList1)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Export value for LanmanSV"
Endif
Endif
Ifstr(i) $(DisabledList) != {}
SetRegValue $(KeyLanmanDisabled) {"Export", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DisabledList)}
Endif
Endif
GetRegValue $(KeyLanman) "Route" ValueData
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set ValueList = *($(ValueData), 4)
Set NewList = {}
Set DisabledList = {}
Set FindValue = """NwlnkNb"" ""NwlnkIpx"""
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Set NewList = >($(NewList), $($))
Debug-Output "OEMNSVCM.INF: Route (SV): NewList set"
else
Debug-Output "OEMNSVCM.INF: Route (SV): Setting Disabled to "$($)
Set DisabledList = >($(DisabledList), $($))
Endif
EndForListDo
Debug-Output "OEMNSVCM.INF: Route (SV): NewList is "$(NewList)
SetRegValue $(KeyLanman) {"Route", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Route value for LanmanSV"
Endif
Ifstr(i) $(DisabledList) != {}
SetRegValue $(KeyLanmanDisabled) {"Route", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DisabledList)}
Endif
Endif
Endif
CloseRegKey $(KeyLanman)
CloseRegKey $(KeyLanmanDisabled)
Endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NwlnkIpx\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) KeyNwlnkIpx
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
GetRegValue $(KeyNwlnkIpx) "Bindable" ValueData
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set ValueList = *($(ValueData), 4)
Set NewList = {}
Set FindValue = "lanmanServer ipxTransport non non 100"
Ifcontains(i) $(FindValue) in $(ValueList)
ForListDo $(ValueList)
Ifstr(i) $($) != $(FindValue)
Set NewList = >($(NewList), $($))
Endif
EndForListDo
SetRegValue $(KeyNwlnkIpx) {"Bindable", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Bindable value for NwlnkIpx"
Endif
Endif
Endif
CloseRegKey $(KeyNwlnkIpx)
Endif
goto end
removeadapter = +
Debug-Output "OEMNSVCM.INF: Removing Compatibility Mode adapter"
;
; Remove adapter
;
;
; Find the Compatibility Mode adapters
;
Shell $(NwSubsInf) GetTotalAdapterList
Set OdiProductNameList = $($R0)
Set OdiTitleList = $($R1)
Set OdiCardList = $($R2)
Set NumberOdiAdapters = $($R3)
Set NdisProductNameList = $($R4)
Set NdisTitleList = $($R5)
Set NdisCardList = $($R6)
Set NumberNdisAdapters = $($R7)
Set ODINSUPCardNumber = $($R8)
Set NWCMDCardNumList = $($R11)
Set NumberNWCMDAdapters = $($R12)
Debug-Output "OEMNSVCM.INF: NWCMDCardNumList is "$(NWCMDCardNumList)
ForListDo $(NWCMDCardNumList)
set !NTN_RegBase = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($)
Debug-Output "OEMNSVCM.INF: !NTN_RegBase is "$(!NTN_RegBase)
Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Debug-Output "OEMNSVCM.INF: RemoveSoftwareComponent"
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), $(ProductSoftwareName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: RemoveSoftwareComponent ShellCode error "$($ShellCode)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
else
Debug-Output "OEMNSVCM.INF: RemoveHardwareComponent"
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), $(ProductSoftwareName), $(!NTN_RegBase)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: RemoveHardwareComponent ShellCode error "$($ShellCode)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
EndForListDo
Debug-Output "OEMNSVCM.INF: remove service: NWCMDH."
Shell $(UtilityInf), RemoveService, $(ProductNWCMDHName), NO
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: ShellCode error removing NWCMDH."
goto ShellCodeError
Endif
;
; Remove NwlnkIpx binding to NWCMDDriver.
; Add back binding to ndisDriver
;
Shell "" Remove-Bindings
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: Remove-Bindings ShellCode error "$($ShellCode)
goto ShellCodeError
else
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVCM.INF: Remove-Bindings returned error"
goto fatalregistry
endif
endif
;
; Remove the class factory GUID
;
Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\CLSID"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
DeleteRegTree $(TempKey) "{9A19E5B5-3B30-11d1-84D3-00A0C9249033}"
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Failed to delete NWCMD CLSID registry key"
endif
CloseRegKey $(TempKey)
else
Debug-Output "OEMNSVCM.INF: Failed to open CLSID key to delete NWCMD"
endif
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards" $(MAXIMUM_ALLOWED) KeyNetcards
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
EnumRegKey $(KeyNetcards) NetcardsList
ForListDo $(NetcardsList)
set KeyName = *($($),1)
OpenRegKey $(KeyNetcards) "" $(KeyName) $(MAXIMUM_ALLOWED) Card
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
GetRegValue $(Card), "ServiceName" ServiceNameInfo
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
set CardServiceName = *($(ServiceNameInfo), 4)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) ServiceKey
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
DeleteRegTree $(ServiceKey) $(CardServiceName)"\Parameters\Nwcmd"
CloseRegKey $(ServiceKey)
endif
endif
CloseRegKey $(Card)
else
Debug-Output "OEMNSVIP.INF: Error opening Netcard: "$(KeyName)
endif
EndForListDo
CloseRegKey $(KeyNetcards)
Endif
goto end
updateadapter = +
Debug-Output "OEMNSVCM.INF: Updating Compatibility Mode adapter"
set TempKeyName = $(!NTN_ServiceBase)"\NWCMDH"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: install service: NWCMDH."
Shell $(UtilityInf), CreateService, +
$(ProductNWCMDHName), +
$(ProductNWCMDHDisplayName), +
$(ProductNWCMDHImagePath), +
$(ProductNWCMDHSvcType), +
$(ProductNWCMDHGroup), +
$(ProductNWCMDHDependList), "", +
$(ProductNWCMDHEventFile), +
$(ProductNWCMDHTypeSupported), +
$(ProductNWCMDHEventLogLocation), 1
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: ShellCode error installing NWCMDH."
goto ShellCodeError
Endif
Set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
Debug-Output "OEMNSVCM.INF: Registry error installing NWCMDH."
goto fatalregistry
Endif
Set SvcSvcKey = $($R1)
Set SvcParamKey = $($R2)
Set SvcLinkKey = $($R3)
CloseRegKey $(SvcSvcKey)
CloseRegKey $(SvcParamKey)
CloseRegKey $(SvcLinkKey)
else
CloseRegKey $(TempKey)
endif
;
; Write out the unattended variables to registry
;
shell "" Write-Unattended-Variables
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVCM: User Canceled due to a error processing the Unattended Variables."
set CommonStatus = STATUS_USERCANCEL
goto setfailed
endif
goto end
;
; this is the old update code
;
Shell "" Install-NWLINK
;
; Remove the old NWCMD way of preventing NwlnkIpx from binding
; to anything but NWCMD. Go straight to the disabled key and
; remove the stuff that the old NWCMD install put there.
;
Shell "" Remove-Oldstyle-Bindings
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: Remove-Oldstyle-Bindings ShellCode error "$($ShellCode)
goto ShellCodeError
else
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVCM.INF: Remove-Oldstyle-Bindings returned error"
goto fatalregistry
endif
endif
;
; Install the new bindings method by changing one of NwlnkIpx's bindable
; rules so that NwlnkIpx will only bind to NWCMD
;
Shell "" Install-Bindings
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: Install-Bindings ShellCode error "$($ShellCode)
goto ShellCodeError
else
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVCM.INF: Install-Bindings returned error"
goto fatalregistry
endif
endif
;
; Hide the software driver for Novell Compatibility Mode
;
Set TempKeyName = $(!NTN_SoftwareBase)"\Novell\NWCMD\CurrentVersion"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Hiding the Compatibility Mode software driver"
SetRegValue $(TempKey) {"Hidden", $(NoTitle), $(!REG_VT_DWORD), 1}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Cant update Winsock Transports value"
Endif
CloseRegKey $(TempKey)
else
Debug-Output "OEMNSVCM.INF: Failed to update the Hidden value for "$(TempKeyName)
endif
;
; Get a count of NWCMD adapters. Add up to 5 adapters for NT 4.00
;
Shell $(NwSubsInf) GetTotalAdapterList
Set OdiProductNameList = $($R0)
Set OdiTitleList = $($R1)
Set OdiCardList = $($R2)
Set NumberOdiAdapters = $($R3)
Set NdisProductNameList = $($R4)
Set NdisTitleList = $($R5)
Set NdisCardList = $($R6)
Set NumberNdisAdapters = $($R7)
Set ODINSUPCardNumber = $($R8)
Set NWCMDCardNumList = $($R9)
Set NumberNWCMDAdapters = $($R10)
ifint $(NTMajorVersion) == "4"
set Count = $(NumberNWCMDAdapters)
set endCount = 5
else
set Count = 1
set endCount = 1
endif
set CalledFromUpdate = "YES"
goto StartHardwareInstallation
ReturnToUpdate = +
;
; Install various registry parameters
;
Debug-Output "OEMNSVCM.INF: Install-Parameters"
Install Install-Parameters
;
; Write out the unattended variables to registry
;
shell "" Write-Unattended-Variables
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "OEMNSVCM: User Canceled due to a error processing the Unattended Variables."
set CommonStatus = STATUS_USERCANCEL
goto setfailed
endif
goto end
abandon = +
Debug-Output "OEMNSVCM.INF: abandon"
ForListDo $(OEM_ABANDON_OPTIONS)
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), $(ProductSoftwareName), $($)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVCM.INF: RemoveHardwareComponent ShellCode error "$($ShellCode)
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 "OEMNSVCM.INF: RemoveSoftwareComponent ShellCode error "$($ShellCode)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
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
nonfatal = +
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(from)
else
goto "end"
endif
fatalregistry = +
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
fatal = +
ifstr(i) $(Error) == ""
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto setfailed
ShellCodeError = +
set DlgType = "MessageBox"
set STF_MB_TITLE = $(ShellCodeErrorTitle)
set STF_MB_TEXT = $(ShellCodeErrorText)
set STF_MB_TYPE = 1
set STF_MB_ICON = 3
set STF_MB_DEF = 1
ui start "Error Message"
goto setfailed
setfailed = +
set CommonStatus = STATUS_FAILED
ifstr(i) $(OEM_ABANDON_ON) == TRUE
set OEM_ABANDON_ON = FALSE
goto abandon
endif
goto end
end = +
goto term
term = +
Return $(CommonStatus) $(DriverToLoad)
[Install-Option]
set STF_VITAL = ""
ifstr(i) $(!AddCopy) == "YES"
AddSectionFilesToCopyList Files-$(Option) $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-EXE $(!STF_SRCDIR)redir $(!STF_WINDOWSSYSPATH)
endif
ifstr(i) $(!DoCopy) == "YES"
CopyFilesInCopyList
endif
ifstr(i) $(!DoConfig) == "YES"
endif
Exit
[Install-Update]
Debug-Output "OEMNSVCM.INF: Install-Update"
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-$(Option) $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)\drivers
AddSectionFilesToCopyList Files-EXE $(!STF_SRCDIR)redir $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Inf $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)
CopyFilesInCopyList
exit
;*************************************************************************
;
; SECTION: Install-Bindings
;
; PURPOSE: Called at install time and update time to install the
; NwlnkIpx bindings.
;
; ARGUMENTS: None
;
; RETURNS: None
;
; REFERENCES: None
;
; MODIFIES: None
;
;*************************************************************************
[Install-Bindings]
StartWait
Read-syms GeneralConstants
Set status = STATUS_SUCCESSFUL
;
; Open NwlnkIpx keys
;
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NwlnkIpx\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) RulesKey
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Can't open NwlnkIpx NetRules key"
set status = STATUS_FAILED
Goto IB_Return
Endif
;
; Set up bindings for NwlnkIpx
;
Set ValueName = "Bindable"
GetRegValue $(RulesKey) $(ValueName) ValueList
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CloseRegKey $(RulesKey)
Debug-Output "OEMNSVCM.INF: Can't get bindable value for NwlnkIpx"
set status = STATUS_FAILED
Goto IB_Return
endif
Set OldList = *($(ValueList), 4)
Set NewList = {}
Debug-Output "OEMNSVCM.INF: OldList for NwlnkIpx bind is "$(OldList)
ForListDo $(OldList)
Set Item = $($)
Ifstr(i) $(Item) != "ipxTransport ndisDriver non non 100"
Set NewList = >($(NewList), $(Item))
else
Set NewList = >($(NewList), "ipxTransport NWCMDDriver non non 100")
endif
EndForListDo
Debug-Output "OEMNSVCM.INF: NewList for NwlnkIpx bind is "$(NewList)
SetRegValue $(RulesKey) {$(ValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Ouput "OEMNSVCM.INF: Can't update Bindable value for NwlnkIpx"
set status = STATUS_FAILED
goto IB_Return
Endif
;
; Close keys
;
CloseRegKey $(RulesKey)
IB_Return = +
Return $(status)
;*************************************************************************
;
; SECTION: Remove-Bindings
;
; PURPOSE: Called at remove time to remove the NwlnkIpx bindings.
;
; ARGUMENTS: None
;
; RETURNS: None
;
; REFERENCES: None
;
; MODIFIES: None
;
;*************************************************************************
[Remove-bindings]
StartWait
Read-syms GeneralConstants
Set status = STATUS_SUCCESSFUL
;
; Open NwlnkIpx keys
;
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NwlnkIpx\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) RulesKey
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Can't open NwlnkIpx NetRules key"
set status = STATUS_FAILED
Goto RB_Return
Endif
;
; Restore bindings for NwlnkIpx
;
Set ValueName = "Bindable"
GetRegValue $(RulesKey) $(ValueName) ValueList
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CloseRegKey $(RulesKey)
Debug-Output "OEMNSVCM.INF: Can't get bindable value for NwlnkIpx"
set status = STATUS_FAILED
Goto RB_Return
endif
Set OldList = *($(ValueList), 4)
Set NewList = {}
Debug-Output "OEMNSVCM.INF: OldList for NwlnkIpx bind is "$(OldList)
ForListDo $(OldList)
Set Item = $($)
Ifstr(i) $(Item) != "ipxTransport NWCMDDriver non non 100"
Set NewList = >($(NewList), $(Item))
else
Set NewList = >($(NewList), "ipxTransport ndisDriver non non 100")
endif
EndForListDo
Debug-Output "OEMNSVCM.INF: NewList for NwlnkIpx bind is "$(NewList)
SetRegValue $(RulesKey) {$(ValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Ouput "OEMNSVCM.INF: Can't update Bindable value for NwlnkIpx"
set status = STATUS_FAILED
goto RB_Return
Endif
;
; Close keys
;
CloseRegKey $(RulesKey)
RB_Return = +
Return $(status)
[Remove-Oldstyle-bindings]
StartWait
Read-syms GeneralConstants
Set Status = STATUS_SUCCESSFUL
;
; Open NwlnkIpx key and remove disabled bindings
;
set TempKeyName = $(!NTN_ServiceBase)"\NwlnkIpx\Linkage\Disabled"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) DisabledKey
Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(DisabledKey) {"Bind", $(NoTitle), $(!REG_VT_MULTI_SZ), {}}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Can't update bind value for NwlnkIpx Disabled key"
CloseRegKey $(DisabledKey)
set Status = STATUS_FAILED
Goto ROB_Return
endif
SetRegValue $(DisabledKey) {"Export", $(NoTitle), $(!REG_VT_MULTI_SZ), {}}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Can't update export value for NwlnkIpx Disabled key"
CloseRegKey $(DisabledKey)
set Status = STATUS_FAILED
Goto ROB_Return
endif
SetRegValue $(DisabledKey) {"Route", $(NoTitle), $(!REG_VT_MULTI_SZ), {}}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Can't update route value for NwlnkIpx Disabled key"
CloseRegKey $(DisabledKey)
set Status = STATUS_FAILED
Goto ROB_Return
endif
CloseRegKey $(DisabledKey)
else
Debug-Output "OEMNSVCM.INF: Can't open NwlnkIpx Disabled key"
set Status = STATUS_FAILED
Goto ROB_Return
endif
;
; Open NWCMD keys to remove one of the bindable rules that was set
; by previous installs of NWCMD. The bindable rule was set under
; NWCMD and now I want it to replace a rule under NwlnkIpx
;
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Novell\NWCMD\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) RulesKey
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Can't open Compatibility Mode NetRules key"
set status = STATUS_FAILED
Goto ROB_Return
Endif
;
; Set up bindings for Compatibility Mode
;
Set ValueName = "Bindable"
GetRegValue $(RulesKey) $(ValueName) ValueList
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CloseRegKey $(RulesKey)
Debug-Output "OEMNSVCM.INF: Can't get bindable value for Compatibility Mode"
set status = STATUS_FAILED
Goto ROB_Return
endif
Set OldList = *($(ValueList), 4)
Set NewList = {}
Debug-Output "OEMNSVCM.INF: OldList for Compatibility Mode bind is "$(OldList)
ForListDo $(OldList)
Set Item = $($)
Ifstr(i) $(Item) != "ipxTransport NWCMDDriver non non 100"
Set NewList = >($(NewList), $(Item))
endif
EndForListDo
Debug-Output "OEMNSVCM.INF: NewList for Compatibility Mode bind is "$(NewList)
SetRegValue $(RulesKey) {$(ValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Ouput "OEMNSVCM.INF: Can't update Bindable value for Compatibility Mode"
set status = STATUS_FAILED
goto ROB_Return
Endif
;
; Close keys
;
CloseRegKey $(RulesKey)
ROB_Return = +
Return $(Status)
;*************************************************************************
;
; SECTION: Install-NWLINK
;
; PURPOSE: Called at install time and update time to install the
; NWLINKIPX compatible transport.
;
; ARGUMENTS: None
;
; RETURNS: None
;
; REFERENCES: None
;
; MODIFIES: None
;
;*************************************************************************
[Install-NWLINK]
read-syms GeneralConstants
read-syms FileConstants
read-syms InstallOption$(!STF_LANGUAGE)
;
; Assume all is well until we find out otherwise
;
set CommonStatus = STATUS_SUCCESSFUL
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NwLnkIpx" $(MAXIMUM_ALLOWED) KeyNWLINK
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Installing NWLINK"
Set OldInstallMode = $(!NTN_InstallMode)
Set !NTN_InstallMode = install
Set OldSTF_SRCDIR_OVERRIDE = $(!STF_SRCDIR_OVERRIDE)
set !STF_SRCDIR_OVERRIDE = ""
Shell "oemnxpip.inf" InstallOption $(!STF_LANGUAGE) "NWLNKIPX" "" YES YES YES
Set !STF_SRCDIR_OVERRIDE = $(OldSTF_SRCDIR_OVERRIDE)
Set !NTN_InstallMode = $(OldInstallMode)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set CommonStatus = STATUS_FAILED
goto terminate
Endif
set CommonStatus = $($R0)
Ifstr(i) $(CommonStatus) != STATUS_SUCCESSFUL
Debug-Output "OEMNPRNW.INF: Install of NWLINK returned "$(CommonStatus)
goto terminate
Endif
Else
CloseRegKey $(KeyNWLINK)
Endif
terminate = +
Return $(CommonStatus)
;*************************************************************************
;
; SECTION: Install-Parameters
;
; PURPOSE: Called at install or update to add
; various parameters to the registry
;
; ARGUMENTS: None
;
; RETURNS: None
;
; REFERENCES: None
;
; MODIFIES: None
;
;*************************************************************************
[Install-Parameters]
;
; Add the class factory GUID
;
set SoftwareNovell = $(!NTN_SoftwareBase)"\"$(Manufacturer)
OpenRegKey $(!REG_H_LOCAL) "" $(SoftwareNovell) $(MAXIMUM_ALLOWED) KeySoftwareNovell
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Error opening "$(SoftwareNovell)
Else
set NovellCLSID = "CLSID"
OpenRegKey $(KeySoftwareNovell) "" $(NovellCLSID) $(MAXIMUM_ALLOWED) KeyNovellCLSID
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeySoftwareNovell) {$(NovellCLSID), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyNovellCLSID
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Error creating Software\Novell\CLSID"
Endif
Endif
Endif
Ifstr(i) $(KeyNovellCLSID) != ""
CreateRegKey $(KeyNovellCLSID) {"{9A19E5B5-3B30-11d1-84D3-00A0C9249033}", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyNewCLSID
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyNewCLSID) {"",$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)}
CreateRegKey $(KeyNewCLSID) {"LocalServer32", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyNewSubCLSID
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyNewSubCLSID) {"",$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)}
Endif
Endif
CloseRegKey $(KeyNovellCLSID)
Endif
Ifstr(i) $(KeySoftwareNovell) != ""
CloseRegKey $(KeySoftwareNovell)
Endif
set SoftwareNovell = $(!NTN_SoftwareBase)"\"$(Manufacturer)
OpenRegKey $(!REG_H_LOCAL) "" $(SoftwareNovell) $(MAXIMUM_ALLOWED) KeySoftwareNovell
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Error opening "$(SoftwareNovell)
Else
set NovellNWCMD = "NWCMD"
OpenRegKey $(KeySoftwareNovell) "" $(NovellNWCMD) $(MAXIMUM_ALLOWED) KeyNovellNWCMD
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Error opening "$(NovellNWCMD)
CreateRegKey $(KeySoftwareNovell) {$(NovellNWCMD), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyNovellNWCMD
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Error creating Software\Novell\NWCMD"
Endif
Else
Debug-Output "OEMNSVCM.INF: OPENED "$(NovellNWCMD)
Endif
Endif
Ifstr(i) $(KeyNovellNWCMD) != ""
CreateRegKey $(KeyNovellNWCMD) {"Address Resolution", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyAddrRes
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyAddrRes) {"Configured", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyAddrResConfig
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyAddrResConfig) {"11",$(NoTitle),$(!REG_VT_SZ),"{AD518629-02B4-11d1-8FF9-00A0C925D248}"}
SetRegValue $(KeyAddrResConfig) {"12",$(NoTitle),$(!REG_VT_SZ),"{CCBB7F70-2087-11d1-9004-00A0C925D248}"}
Else
Debug-Output "OEMNSVCM.INF: FAILED TO CREATE Configured")
Endif
Else
Debug-Output "OEMNSVCM.INF: FAILED TO CREATE ADDR-RES"
Endif
Endif
Ifstr(i) $(KeySoftwareNovell) != ""
CloseRegKey $(KeySoftwareNovell)
Endif
Ifstr(i) $(KeyNovellNWCMD) != ""
CloseRegKey $(KeyNovellNWCMD)
Endif
Ifstr(i) $(KeyAddrRes) != ""
CloseRegKey $(KeyAddrRes)
Endif
Ifstr(i) $(KeyAddrResConfig) != ""
CloseRegKey $(KeyAddrResConfig)
Endif
;
; HKEY_LOCAL_MACHINE\Software\Novell\NWCMD\CurrentVersion
;
set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWCMD\CurrentVersion"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
;
; Set internal versions
;
set HaveInternalVersion = YES
ifint $(!MajorInternalVersion) == 0
ifint $(!MinorInternalVersion) == 0
set HaveInternalVersion = NO
endif
endif
ifstr(i) $(HaveInternalVersion) == NO
DeleteRegValue $(TempKey) "MajorInternalVersion"
DeleteRegValue $(TempKey) "MinorInternalVersion"
else
SetRegValue $(TempKey) {"MajorInternalVersion", $(NoTitle), $(!REG_VT_DWORD), $(!MajorInternalVersion)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Unable to update MajorInternalVersion value in "$(TempKeyName)
endif
SetRegValue $(TempKey) {"MinorInternalVersion", $(NoTitle), $(!REG_VT_DWORD), $(!MinorInternalVersion)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Unable to update MinorInternalVersion value in "$(TempKeyName)
endif
endif
CloseRegKey $(TempKey)
endif
ifstr(i) $(!NWWizard) != YES
set ProtocolsListData = ""
set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\Parameters"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(TempKey) {"Protocols", $(NoTitle), $(!REG_VT_SZ), "IP"}
SetRegValue $(TempKey) {"Remove IPX", $(NoTitle), $(!REG_VT_DWORD), 0}
CloseRegKey $(TempKey)
endif
set DO_TCPIP = YES
set DO_NWLINK = YES
set InstallCompatMode = YES
;
; HKEY_LOCAL_MACHINE\Software\Novell\NetWareWorkstation\Policies\Network
;
set SoftwareNovell = $(!NTN_SoftwareBase)"\"$(Manufacturer)
OpenRegKey $(!REG_H_LOCAL) "" $(SoftwareNovell) $(MAXIMUM_ALLOWED) KeySoftwareNovell
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Error opening "$(SoftwareNovell)
Else
set SoftwareNovellNW = "NetWareWorkstation"
OpenRegKey $(KeySoftwareNovell) "" $(SoftwareNovellNW) $(MAXIMUM_ALLOWED) KeySoftwareNovellNW
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Error opening "$(SoftwareNovellNW)
Else
set NovellNWPolicies = "Policies"
OpenRegKey $(KeySoftwareNovellNW) "" $(NovellNWPolicies) $(MAXIMUM_ALLOWED) KeyNovellNWPolicies
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeySoftwareNovellNW) {$(NovellNWPolicies), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyNovellNWPolicies
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Error creating Software\Novell\NetWareWorkstation\Policies"
Endif
Endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
set NetworkPolicies = "Network"
OpenRegKey $(KeyNovellNWPolicies) "" $(NetworkPolicies) $(MAXIMUM_ALLOWED) KeyNetworkPolicies
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyNovellNWPolicies) {$(NetworkPolicies), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyNetworkPolicies
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Error creating Software\Novell\NetWareWorkstation\Policies\Network"
Endif
Endif
Endif
Endif
Endif
Ifstr(i) $(KeyNetworkPolicies) != ""
ifstr(i) $(DO_TCPIP) == "YES"
GetRegValue $(KeyNetworkPolicies) "Preferred" PreferredList
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyNetworkPolicies) {"Preferred",$(NoTitle),$(!REG_VT_DWORD),"2"}
endif
Endif
OpenRegKey $(KeyNetworkPolicies) "" "Available" $(MAXIMUM_ALLOWED) KeyAvailable
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyNetworkPolicies) {"Available", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyAvailable
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyAvailable) {"2",$(NoTitle),$(!REG_VT_SZ),"IP"}
SetRegValue $(KeyAvailable) {"6",$(NoTitle),$(!REG_VT_SZ),"IPX"}
CloseRegKey $(KeyAvailable)
Endif
OpenRegKey $(KeyNetworkPolicies) "" "Configured" $(MAXIMUM_ALLOWED) KeyConfigured
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyNetworkPolicies) {"Configured", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyConfigured
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Configured DO_TCPIP = "$(DO_TCPIP)
ifstr(i) $(DO_TCPIP) == "YES"
SetRegValue $(KeyConfigured) {"2",$(NoTitle),$(!REG_VT_SZ),"IP"}
else
DeleteRegValue $(KeyConfigured) "2"
Endif
Debug-Output "OEMNSVCM.INF: Configured DO_NWLINK = "$(DO_NWLINK)
ifstr(i) $(DO_NWLINK) == "YES"
SetRegValue $(KeyConfigured) {"6",$(NoTitle),$(!REG_VT_SZ),"IPX"}
else
DeleteRegValue $(KeyConfigured) "6"
Endif
CloseRegKey $(KeyConfigured)
Endif
OpenRegKey $(KeyNetworkPolicies) "" "IP" $(MAXIMUM_ALLOWED) KeyIP
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyNetworkPolicies) {"IP", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyIP
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
OpenRegKey $(KeyIP) "" "Address Resolution Providers" $(MAXIMUM_ALLOWED) KeyIPARP
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyIP) {"Address Resolution Providers", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyIPARP
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
OpenRegKey $(KeyIPARP) "" "Available" $(MAXIMUM_ALLOWED) KeyIPARPAvail
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyIPARP) {"Available", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyIPARPAvail
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyIPARPAvail) {"2",$(NoTitle),$(!REG_VT_SZ),"{CCBB7F6F-2087-11d1-9004-00A0C925D248}"}
SetRegValue $(KeyIPARPAvail) {"11",$(NoTitle),$(!REG_VT_SZ),"{AD518629-02B4-11d1-8FF9-00A0C925D248}"}
SetRegValue $(KeyIPARPAvail) {"5",$(NoTitle),$(!REG_VT_SZ),"{A18C57F8-17DA-11d1-8FFF-00A0C925D248}"}
SetRegValue $(KeyIPARPAvail) {"12",$(NoTitle),$(!REG_VT_SZ),"{CCBB7F70-2087-11d1-9004-00A0C925D248}"}
SetRegValue $(KeyIPARPAvail) {"6",$(NoTitle),$(!REG_VT_SZ),"{FA85E061-FFBB-11d1-85E0-00A0C9249033}"}
CloseRegKey $(KeyIPARPAvail)
Endif
OpenRegKey $(KeyIPARP) "" "Configured" $(MAXIMUM_ALLOWED) KeyIPARPConfig
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyIPARP) {"Configured", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyIPARPConfig
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: IP Configured DO_TCPIP = "$(DO_TCPIP)
ifstr(i) $(DO_TCPIP) == "YES"
SetRegValue $(KeyIPARPConfig) {"2",$(NoTitle),$(!REG_VT_SZ),"{CCBB7F6F-2087-11d1-9004-00A0C925D248}"}
SetRegValue $(KeyIPARPConfig) {"11",$(NoTitle),$(!REG_VT_SZ),"{AD518629-02B4-11d1-8FF9-00A0C925D248}"}
SetRegValue $(KeyIPARPConfig) {"5",$(NoTitle),$(!REG_VT_SZ),"{A18C57F8-17DA-11d1-8FFF-00A0C925D248}"}
SetRegValue $(KeyIPARPConfig) {"12",$(NoTitle),$(!REG_VT_SZ),"{CCBB7F70-2087-11d1-9004-00A0C925D248}"}
SetRegValue $(KeyIPARPConfig) {"6",$(NoTitle),$(!REG_VT_SZ),"{FA85E061-FFBB-11d1-85E0-00A0C9249033}"}
else
DeleteRegValue $(KeyIPARPConfig) "2"
DeleteRegValue $(KeyIPARPConfig) "11"
DeleteRegValue $(KeyIPARPConfig) "5"
DeleteRegValue $(KeyIPARPConfig) "12"
DeleteRegValue $(KeyIPARPConfig) "6"
Endif
CloseRegKey $(KeyIPARPConfig)
Endif
CloseRegKey $(KeyIPARP)
Endif
CloseRegKey $(KeyIP)
Endif
OpenRegKey $(KeyNetworkPolicies) "" "IPX" $(MAXIMUM_ALLOWED) KeyIPX
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyNetworkPolicies) {"IPX", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyIPX
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
OpenRegKey $(KeyIPX) "" "Address Resolution Providers" $(MAXIMUM_ALLOWED) KeyIPXARP
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyIPX) {"Address Resolution Providers", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyIPXARP
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
OpenRegKey $(KeyIPXARP) "" "Available" $(MAXIMUM_ALLOWED) KeyIPXARPAvail
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyIPXARP) {"Available", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyIPXARPAvail
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
SetRegValue $(KeyIPXARPAvail) {"2",$(NoTitle),$(!REG_VT_SZ),"{CCBB7F6F-2087-11d1-9004-00A0C925D248}"}
SetRegValue $(KeyIPXARPAvail) {"4",$(NoTitle),$(!REG_VT_SZ),"{A18C57F7-17DA-11d1-8FFF-00A0C925D248}"}
SetRegValue $(KeyIPXARPAvail) {"1",$(NoTitle),$(!REG_VT_SZ),"{2399601D-BCBA-11d0-8FD7-00A0C925D248}"}
CloseRegKey $(KeyIPXARPAvail)
Endif
OpenRegKey $(KeyIPXARP) "" "Configured" $(MAXIMUM_ALLOWED) KeyIPXARPConfig
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyIPXARP) {"Configured", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyIPXARPConfig
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: IPX Configured DO_NWLINK = "$(DO_NWLINK)
ifstr(i) $(DO_NWLINK) == "YES"
SetRegValue $(KeyIPXARPConfig) {"2",$(NoTitle),$(!REG_VT_SZ),"{CCBB7F6F-2087-11d1-9004-00A0C925D248}"}
SetRegValue $(KeyIPXARPConfig) {"4",$(NoTitle),$(!REG_VT_SZ),"{A18C57F7-17DA-11d1-8FFF-00A0C925D248}"}
SetRegValue $(KeyIPXARPConfig) {"1",$(NoTitle),$(!REG_VT_SZ),"{2399601D-BCBA-11d0-8FD7-00A0C925D248}"}
else
DeleteRegValue $(KeyIPXARPConfig) "2"
DeleteRegValue $(KeyIPXARPConfig) "4"
DeleteRegValue $(KeyIPXARPConfig) "1"
Endif
CloseRegKey $(KeyIPXARPConfig)
Endif
OpenRegKey $(KeyIPXARP) "" "LimitSAP" $(MAXIMUM_ALLOWED) KeyLimitSAP
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
CreateRegKey $(KeyIPXARP) {"LimitSAP", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyLimitSAP
endif
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
DeleteRegValue $(KeyLimitSAP) "Level"
ifstr(i) $(DO_NWLINK) == "YES"
ifstr(i) $(DO_TCPIP) == "YES"
ifstr(i) $(!InstallCompatMode) != "YES"
SetRegValue $(KeyLimitSAP) {"Level",$(NoTitle),$(!REG_VT_DWORD),0}
Endif
Endif
Endif
CloseRegKey $(KeyLimitSAP)
Endif
CloseRegKey $(KeyIPXARP)
Endif
CloseRegKey $(KeyIPX)
Endif
CloseRegKey $(KeyNetworkPolicies)
Endif
Ifstr(i) $(KeyNovellNWPolicies) != ""
CloseRegKey $(KeyNovellNWPolicies)
Endif
;
; Set bindings based on the protocols
;
set NetRuleNWFSSoftwareBindable = {}
ifstr(i) $(DO_NWLINK) != "NO" ; if doing IPX/SPX then bind to it
set NetRuleNWFSSoftwareBindable = >($(NetRuleNWFSSoftwareBindable),"nwFileSys ipxTransport non non 100")
endif
ifstr(i) $(DO_TCPIP) != "NO" ; if doing TCP/IP then bind to it
set NetRuleNWFSSoftwareBindable = >($(NetRuleNWFSSoftwareBindable),"nwFileSys tcpipTransport non non 100")
endif
Debug-Output "****OEMNSVCM.INF: NetRuleNWFSSoftwareBindable is: "$(NetRuleNWFSSoftwareBindable)
Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NetWareWorkstation\CurrentVersion\NetRules"
OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
;
; Fix up the bindable value so we will show up in the bindings
;
SetRegValue $(TempKey) {"Bindable", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NetRuleNWFSSoftwareBindable)}
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNSVCM.INF: Failed to update Bindable"
endif
CloseRegKey $(TempKey)
else
Debug-Output "OEMNSVCM.INF: Failed to open key "$(TempKeyName)
endif
endif
Exit
;-----------------------------------------------------------------------
;
;
; SECTION: UnattendedInstallOption:
;
; PURPOSE: This section is shelled to by the Install Option. It looks at the three MS Unattended variables and then
; sets the Novell specific variable for NWACU and the NWUnattended file.
; Our install for both setup.exe /ACU and Unattended install from MS then uses NWACU and the NWUnattended variables.
;
; ARGUMENTS: None
;
; RETURNS: None
;
; REFERENCES: None
;
; MODIFIES: None
;
;-----------------------------------------------------------------------
[UnattendedInstallOption]
read-syms GeneralConstants
read-syms FileConstants
ifstr(i) $(!STF_GUI_UNATTENDED) == "NO"
ifstr(i) $(!STF_UNATTENDED) == "YES"
set !NWACU = "YES"
endif
else-ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
ifstr(i) $(!NWUnattendedFile) == ""
set !NWACU = "YES"
set !NWUnattendedFile = $(!STF_UNATTENDED)
set !NWUnattendedSection = $(!STF_UNATTENDED_SECTION)
else-ifstr(i) $(!STF_UNATTENDED_SECTION) != ""
set !NWUnattendedSection = $(!STF_UNATTENDED_SECTION)
endif
endif
Return
;*************************************************************************
;----------Write-Unattended-Variables-----------------------------------
;
;
; SECTION: Write-Unattended-Variables:
;
; PURPOSE: This section writes the unattended variables to the
; registry.
;
; ARGUMENTS: None
;
; RETURNS: None
;
; REFERENCES: Called at end of install section and the update section
;
; MODIFIES: None
;
;*************************************************************************
[Write-Unattended-Variables]
read-syms GeneralConstants
read-syms FileConstants
read-syms InstallOption$(!STF_LANGUAGE)
; If the /U parameter is passed from Setupnw.exe then call this section to set the defaults.
; Add the values in the unattended file to the registry.
set UnattendReturnStatus = STATUS_SUCCESSFUL
ifstr(i) $(!NWUnattendedFile) != ""
LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\nwsetup.dll" NwLibHandle
; LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(!P:NLSDirName)"\setupnw.hlp" $(!MinimumID) $(!MaximumID)
LibraryProcedure LibResult $(NwLibHandle) NWUnattendedInstall $(!NWUnattendedFile) $(!P:Option)
FreeLibrary $(NwLibHandle)
endif
Return $(UnattendReturnStatus)
;-----------------------------------------------------------------------
; LANGUAGES SUPPORTED
; -------------------
;
; The languages supported by the OEM INF, For every language supported
; we need to have a separate text section for every displayable text
; section.
;
;-----------------------------------------------------------------------
[LanguagesSupported]
ENG, ENGLISH
[OptionsTextENG]
NWCMD = "Novell IPX Compatibility Mode"
[FileConstantsENG]
ProCaption = "Windows NT Setup"
ProCancel = "Cance&l"
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:"
;
; Producer Info
;
FunctionTitle = "Novell Compatibility Mode Setup"
;
; Software
;
ProductSoftwareDescription = "Novell Compatibility Mode Driver"
ProductNWCMDHDisplayName = "Novell IPX Compatibility Helper"
;
; Hardware
;
ProductHardwareDescription = "This virtual adapter allows IPX applications "+
"to communicate over an IP network."
[InstallOptionENG]
ErrorMessageTitle = "IPX Compatibility Mode Error"
NoTcpipMessageText = "TCPIP Protocol is NOT installed. IPX Compatibility Mode will "+
"not function correctly unless the TCPIP Protocol is reinstalled."
ShellCodeErrorTitle = "Error: Novell IPX Compatibility Mode Adapter"
ShellCodeErrorText = "Shell Code Error"
LoadDisk3Text = "Please load the Novell Client for Windows NT "+
"disk 3 into drive "
IPOnlyMessageText = "You currently have IPX Dial-Up Networking installed. It is "+
"not compatible with the IP-only version of the Novell Client. You must disable "+
"IPX Dial-Up Networking before installing the IP-only version of the Novell Client."
NWIPInstalledMessage = "Cannot install IPX Compatibility Mode while NetWare/IP is installed."
[Source Media Descriptions]
1 = "NetWare for Windows NT Setup Disk", TAGFILE = NWCMD.SYS
[Files-Inf]
1, oemnsvcm.inf, SIZE=50000, DECOMPRESS
[Files-NWCMD]
1, nwcmd.sys, SIZE=50000, DECOMPRESS
1, nwcmd2.sys, SIZE=50000, DECOMPRESS
[Files-EXE]
1, cmdinfo.exe, SIZE=50000, DECOMPRESS
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.