;*********************************************************************** ; ; OEMSETUP.INF ; ; Novell NetWare base installation INF ; ; ;*********************************************************************** ;----------------------------------------------------------------------- ; OPTION TYPE ; ----------- ; This identifies the Option type we are dealing with. The different ; possible types are: ; ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ... ; ; Types specific to networking: ; ; NetAdapter, a netcard / adapter combination or just a netcard ; NetDriver, just a netcard driver ; NetTransport, a complete NDIS-compliant TDI transport stack ; NetService, an NT networking service ; NetWork, a complete network ensemble. ; NetProvider a complete network which supports NT MPR protocol ;----------------------------------------------------------------------- [Identification] OptionType = NetProvider ;----------------------------------------------------------------------- ; OPTION LIST ; ----------- ; This section lists the OEM Option key names. These keys are locale ; independent and used to represent the option in a locale independent ; manner. ; ;----------------------------------------------------------------------- [Options] NWFS ;----------------------------------------------------------------------- ; 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 ;----------------------------------------------------------------------- ; OPTION TEXT SECTION ; ------------------- ; These are text strings used to identify the option to the user. There ; are separate sections for each language supported. The format of the ; section name is "OptionsText" concatenated with the Language represented ; by the section. ; ;----------------------------------------------------------------------- [OptionsTextENG] NETWARE = "Novell NetWare Client Services" ;*********************************************************************** ; Language-Dependent Dialog Constants ;*********************************************************************** [FileConstantsENG] ; ; Variables to support thermometer gauge and error dialogs ; ProCaption = "Novell NetWare Client Services Setup" ProCancel = "Cancel" ProCancelMsg = "The Novell NetWare Client Services is not correctly installed. "+ "Are you sure you want to cancel copying files?" ProCancelCap = "Network Setup Message" ProText1 = "Copying:" ProText2 = "To:" ; ; Product Info ; FunctionTitle = "NetWare Services Setup" ; ; Used by GetInfFileNameFromRegistry ; [InitBaseVars] KeyNull = "" MAXIMUM_ALLOWED = 33554432 KeyInfo = {} RegistryErrorIndex = NO_ERROR NoTitle = 0 CurrentControlSet = "SYSTEM\CurrentControlSet" ServicesBaseName = $(CurrentControlSet)"\Services" [OdiNSupVars] OdiNSupServiceName = "ODINSUP" OdiNSupParameters = $(!NTN_ServiceBase)"\"$(OdiNSupServiceName)"\Parameters" OdiNSupLinkage = $(!NTN_ServiceBase)"\"$(OdiNSupServiceName)"\Linkage" OdiNSupCardName = "Bind" OdiNSupCardInstance = "BoardInstance" [OdiVars] OdiLoadDriverName = "OdiLoad" OdiModules = "ODI_Modules" OdiLinkName = "OdiLoadName" OdiModuleName = $(!NTN_ServiceBase)"\"$(OdiLoadDriverName)"\"$(OdiModules) NetworkCardsKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards" ;----------------------------------------------- ; Input DIALOGS ;----------------------------------------------- [FileDependentDlgENG] ; ; No UI yet for NetWare Services ; ;*********************************************************************** ; CONSTANTS FOR USING DIALOGS ;*********************************************************************** [FileConstants] ; ; File names, etc. ; UtilityInf = "UTILITY.INF" subroutineinf = "SUBROUTN.INF" NwSubsInf = "NWSUBS.INF" NwSetupDll = "nwsetup.dll" SoftwareType = "service" Exit_Code = 0 ;ShellCode = 0 ; Product Info ; Manufacturer = "Novell" ProductMajorVersion = "1" ProductMinorVersion = "01" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) UserModeRoot = "%SystemRoot%" System32Root = $(UserModeRoot)"\System32\" SoftwareBinHome = $(System32Root)"NetWare\" DriverBinHome = $(System32Root)"Drivers\" NetWareEventFile= $(System32Root)"nwevents.dll" ; ; Services ; ; MUP: if not already installed ProductMUPControl = service ProductMUPHidden = 0 ProductMUPInstrumentation = FALSE ProductMUPName = "Mup" ProductMUPDisplayName = "Mup" ProductMUPTitle = "Mup" ProductMUPImagePath = "\SystemRoot\System32\drivers\mup.sys" ProductMUPSvcType = "transport" ProductMUPGroup = "Network" ProductMUPDependList = {} ProductMUPEventFile = "" ; TDI: if not already installed ProductTDIControl = service ProductTDIHidden = 0 ProductTDIInstrumentation = FALSE ProductTDIName = "Tdi" ProductTDIDisplayName = "Tdi" ProductTDITitle = "Tdi" ProductTDIImagePath = "\SystemRoot\System32\drivers\TDI.sys" ProductTDISvcType = "kernelauto" ProductTDIGroup = "Network" ProductTDIDependList = {} ProductTDIEventFile = "" ; NwtDrv: Driver for Ipx Api's. ProductNWTControl = service ProductNWTHidden = 0 ProductNWTInstrumentation = TRUE ProductNWTName = "NwtDrv" ProductNWTDisplayName = "NetWare Transport Interface" ProductNWTTitle = "NetWare Transport Interface" ProductNWTImagePath = $(SoftwareBinHome)nwtdrv.sys ProductNWTSvcType = "kernelautostart" ProductNWTGroup = "" ProductNWTDependList = {"+TDI"} ProductNWTEventFile = $(NetWareEventFile) ; SpxApi: Driver for Spx Api's. ProductSPXAPIControl = service ProductSPXAPIHidden = 0 ProductSPXAPIInstrumentation = TRUE ProductSPXAPIName = "SpxApi" ProductSPXAPIDisplayName = "NetWare SPX Transport Interface" ProductSPXAPITitle = "NetWare SPX Transport Interface" ProductSPXAPIImagePath = $(SoftwareBinHome)spxapi.sys ProductSPXAPISvcType = "systemauto" ProductSPXAPIGroup = "" ProductSPXAPIDependList = {"+TDI"} ProductSPXAPIEventFile = $(NetWareEventFile) ; IpxApi: Driver for Ipx Api's. ProductIPXAPIControl = service ProductIPXAPIHidden = 0 ProductIPXAPIInstrumentation = TRUE ProductIPXAPIName = "IpxApi" ProductIPXAPIDisplayName = "NetWare IPX Transport Interface" ProductIPXAPITitle = "NetWare IPX Transport Interface" ProductIPXAPIImagePath = $(SoftwareBinHome)ipxapi.sys ProductIPXAPISvcType = "systemauto" ProductIPXAPIGroup = "" ProductIPXAPIDependList = {"+TDI"} ProductIPXAPIEventFile = $(NetWareEventFile) ; Route: ODI Source Routing ProductROUTEControl = service ProductROUTEHidden = 0 ProductROUTEInstrumentation = FALSE ProductROUTEName = "OdiSourceRouting" ProductROUTEDisplayName = "NetWare ODI Source Routing Support" ProductROUTETitle = "NetWare ODI Source Routing Support" ProductROUTEImagePath = $(SoftwareBinHome)route.sys ProductROUTESvcType = "kerneldisable" ProductROUTEGroup = "" ProductROUTEDependList = {"+ODI Drivers"} ProductROUTEEventFile = $(NetWareEventFile) ; NwFs: NetWare Workstation ProductNWFSControl = component ProductNWFSHidden = 0 ProductNWFSReviewBindings = 1 ProductNWFSInstrumentation = TRUE ProductNWFSName = "NetWareWorkstation" ProductNWFSDisplayName = "Novell NetWare Client Services" ProductNWFSTitle = "Novell NetWare Client Services" ProductNWFSImagePath = $(SoftwareBinHome)nwfs.sys ProductNWFSDescription = "Novell NetWare Client Services for Windows NT" ProductNWFSSvcType = "systemauto" ProductNWFSSoftType = "service" ProductNWFSGroup = "" ProductNWFSDependList = {"+TDI","+NetWare Services","Mup","IpxSpx"} ProductNWFSEventFile = $(NetWareEventFile) ProductNWFSKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductNWFSName)"\CurrentVersion" NetRuleNWFSSoftwareType = "nwfs nwFileSys" NetRuleNWFSSoftwareUse = "service yes yes" NetRuleNWFSSoftwareBindForm = """Nwfs"" yes yes container" NetRuleNWFSSoftwareClass = {"nwFileSys basic"} NetRuleNWFSSoftwareBindable = {"nwFileSys nwTransport non non 100"} ; IpxSpx: Transport ProductIPXSPXControl = component ProductIPXSPXHidden = 0 ProductIPXSPXInstrumentation = TRUE ProductIPXSPXName = "IpxSpx" ProductIPXSPXDisplayName = "Novell NetWare IPX/SPX Transport" ProductIPXSPXTitle = "Novell NetWare IPX/SPX Transport" ProductIPXSPXDescription = "Novell NetWare IPX/SPX Network Transport" ProductIPXSPXImagePath = $(SoftwareBinHome)ipxspx.sys ProductIPXSPXSvcType = "kernelautostart" ProductIPXSPXSoftType = "transport" ProductIPXSPXGroup = "TDI" ProductIPXSPXDependList = {"+ODI Drivers"} ProductIPXSPXEventFile = $(NetWareEventFile) ProductIPXSPXKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductIPXSPXName)"\CurrentVersion" NetRuleIPXSPXSoftwareType = "ipxspx nwTransport" NetRuleIPXSPXSoftwareUse = "transport yes yes" NetRuleIPXSPXSoftwareBindForm = """IpxSpx"" yes yes simple" NetRuleIPXSPXSoftwareClass = {"nwTransport basic"} NetRuleIPXSPXSoftwareBindable = {"nwTransport nwOdiLoader non non 80", + "nwTransport nwNwIPDriver non non 90", + "nwTransport nwOdiVMIDDriver non non 70"} ; OdiLoad: ODI Adapter Driver Loader. ProductODILOADControl = component ProductODILOADHidden = 1 ProductODILOADInstrumentation = TRUE ProductODILOADName = "OdiLoad" ProductODILOADDisplayName = "NetWare ODI MAC Driver Loader" ProductODILOADTitle = "NetWare ODI MAC Driver Loader" ProductODILOADDescription = "NetWare ODI MAC Driver Controller" ProductODILOADImagePath = $(SoftwareBinHome)odiload.sys ProductODILOADSvcType = "kerneldisable" ProductODILOADSoftType = "driver" ProductODILOADGroup = "ODI Drivers" ProductODILOADDependList = {"+ODI"} ProductODILOADEventFile = $(NetWareEventFile) ProductODILOADKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductODILOADName)"\CurrentVersion" NetRuleODILOADSoftwareType = "odiLoad nwOdiLoader" NetRuleODILOADSoftwareUse = "driver yes yes" NetRuleODILOADSoftwareBindForm = """Odiload"" yes yes simple" NetRuleODILOADSoftwareClass = {"nwOdiLoader basic","nwAdapter basic yes"} NetRuleODILOADSoftwareBindable = {"nwOdiLoader nwAdapter non exclusive 100"} ; Lsl: Link Support Layer. ProductLSLControl = service ProductLSLHidden = 1 ProductLSLInstrumentation = TRUE ProductLSLName = "LSL" ProductLSLDisplayName = "NetWare LSL" ProductLSLTitle = "NetWare LSL" ProductLSLImagePath = $(SoftwareBinHome)lsl.sys ProductLSLSvcType = "kernelautostart" ProductLSLGroup = "ODI" ProductLSLDependList = {"+NetWare Services"} ProductLSLEventFile = $(NetWareEventFile) ; ResMgr: NetWare Resource Manager ProductRESMGRControl = component ProductRESMGRHidden = 1 ProductRESMGRInstrumentation = TRUE ProductRESMGRName = "ResMgr" ProductRESMGRDisplayName = "NetWare Resource Manager" ProductRESMGRTitle = "NetWare Resource Manager" ProductRESMGRDescription = "NetWare Resource Manager" ProductRESMGRImagePath = $(SoftwareBinHome)resmgr.sys ProductRESMGRSvcType = "kernelautostart" ProductRESMGRSoftType = "service" ProductRESMGRGroup = "NetWare Services" ProductRESMGRDependList = {} ProductRESMGREventFile = $(NetWareEventFile) ProductRESMGRKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductRESMGRName)"\CurrentVersion" ; RECONNECT: Auto Reconnect service ProductRECONNECTControl = service ProductRECONNECTHidden = 0 ProductRECONNECTInstrumentation = FALSE ProductRECONNECTName = "NetWareAutoReconnect" ProductRECONNECTDisplayName = "NetWare Auto Reconnect Service" ProductRECONNECTTitle = "NetWare Auto Reconnect Service" ProductRECONNECTImagePath = $(SoftwareBinHome)reconsvc.exe ProductRECONNECTSvcType = "serviceauto" ProductRECONNECTGroup = "" ProductRECONNECTDependList = {"NetWareWorkstation"} ProductRECONNECTEventFile = $(NetWareEventFile) ; VMLID: Auto VMLID service ProductVMLIDControl = component ProductVMLIDHidden = 1 ProductVMLIDInstrumentation = FALSE ProductVMLIDName = "OdiVMLID" ProductVMLIDDisplayName = "ODI Virtual MLID" ProductVMLIDTitle = "ODI Virtual MLID" ProductVMLIDImagePath = $(SoftwareBinHome)vmlid.sys ProductVMLIDDescription = "ODI Virtual MLID" ProductVMLIDSvcType = "kernelautostart" ProductVMLIDSoftType = "service" ProductVMLIDGroup = "ODI Drivers" ProductVMLIDDependList = {"+NDIS","+ODI"} ProductVMLIDEventFile = $(NetWareEventFile) ProductVMLIDKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductVMLIDName)"\CurrentVersion" NetRuleVMLIDSoftwareType = "odivmlid nwOdiVMLIDDriver" NetRuleVMLIDSoftwareUse = "service yes yes" NetRuleVMLIDSoftwareBindForm = """OdiVMLID"" yes yes container" NetRuleVMLIDSoftwareClass = {"nwOdiVMLIDDriver basic"} NetRuleVMLIDSoftwareBindable = {"nwOdiVMLIDDriver ndisDriver non non 100"} ; NWPOPUP: NWPOPUP message service ProductNWPOPUPControl = service ProductNWPOPUPHidden = 0 ProductNWPOPUPInstrumentation = FALSE ProductNWPOPUPName = "NWPopUp" ProductNWPOPUPDisplayName = "NetWare Message PopUp Service" ProductNWPOPUPTitle = "NetWare Message PopUp Service" ProductNWPOPUPImagePath = $(SoftwareBinHome)nwmsgsvc.exe ProductNWPOPUPSvcType = "serviceauto" ProductNWPOPUPGroup = "" ProductNWPOPUPDependList = {"NetWareWorkstation"} ProductNWPOPUPEventFile = $(NetWareEventFile) ; ODINSUP: ODI over NDIS shim ;ProductODINSUPControl = component ;ProductODINSUPHidden = 1 ;ProductODINSUPInstrumentation = TRUE ;ProductODINSUPName = "Odinsup" ;ProductODINSUPDisplayName = "ODI Support for NDIS Protocols Driver" ;ProductODINSUPTitle = "ODI Support for NDIS Protocols Driver" ;ProductODINSUPDescription = "ODI Support for NDIS Protocols Driver" ;ProductODINSUPImagePath = "SystemRoot\system32\drivers\odinsup.sys" ;ProductODINSUPSvcType = "Kerneldisable" ;ProductODINSUPSoftType = "driver" ;ProductODINSUPGroup = "NDIS" ;ProductODINSUPDependList = {"+ODI Drivers"} ;ProductODINSUPEventFile = $(NetWareEventFile) ;ProductODINSUPKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductODINSUPName)"\CurrentVersion" ; ; ;NetRuleODINSUPSoftwareType = "odinsupSys ndisDriver odinsupDriver" ;NetRuleODINSUPSoftwareUse = "driver" ;NetRuleODINSUPSoftwareBindForm = """OdinsupSys"" yes no container" ;NetRuleODINSUPSoftwareClass = {"odinsupDriver basic"} ;NetRuleODINSUPSoftwareBindable = {"odinsupDriver odinsupAdapter non exclusive 100"} ; Provider ProductProviderName = "NetWare Services" ProductProviderImagePath = "%SystemRoot%\System32\netware.dll" ProductProviderDevice = "\Device\NetWareWorkstation" ProductProviderClass = 3 ; Registry key names ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductNWFSName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductNWFSName)"\Parameters" ServiceNameList = ^(ServiceNames, 1) ExtendedFunctionList = ^(ExtendedFunctionNames,1) ; referenced by ServiceNameList [ServiceNames] SVC_1 = "NWFS" SVC_2 = "IPXSPX" SVC_3 = "LSL" SVC_4 = "RESMGR" SVC_5 = "ODILOAD" SVC_6 = "MUP" SVC_7 = "TDI" SVC_8 = "SPXAPI" SVC_9 = "IPXAPI" SVC_10 = "ROUTE" SVC_11 = "RECONNECT" SVC_12 = "VMLID" SVC_13 = "NWPOPUP" ;SVC_14 = "ODINSUP" ; referenced by ExtendedFunctionList [ExtendedFunctionNames] EXFN_1 = "AuthenticationPackage" EXFN_2 = "NetworkProvider" ;EXFN_3 = "ServiceGroupOrder" EXFN_4 = "NetWarePrintServices" [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" OldVersionExisted = $(FALSE) [ExtendedConstants] SvcList = {"NetWare Services","ODI","ODI Drivers"} PkgName = "nwv1_0" ProviderName = "NetWareWorkstation" NetWarePrintProviderName = "NetWare Print Services" PrintProvider = "System\CurrentControlSet\Control\Print\Providers" [IpxSpxConstants] FrameTypeName = "Frame Type" CardTypeName = "Card Name" CardName = "" CardInstance = "Card Instance" CardInstanceNum = "" BindValueName = "bindings" IpxNtCardInstance = "Nt Card Instance" [date] ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour, ; Minute, Second } Now = {} ? $(!LIBHANDLE) GetSystemDate [DetectSystemMemory] SystemMemory = "" ? $(!LIBHANDLE) GetMemorySize [ProcessorDetect] !STF_PROCESSOR = "" ? $(!LIBHANDLE) GetProcessor ;--------------------------------------------------------------------------- ; 1. Identify ; ; DESCRIPTION: To verify that this INF deals with the same type of options ; as we are choosing currently. ; ; INPUT: None ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL ; $($R1): Option Type (COMPUTER ...) ; $($R2): Diskette description ;--------------------------------------------------------------------------- [Identify] ; ; read-syms Identification set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) ;------------------------------------------------------------------------ ; 2. ReturnOptions: ; ; DESCRIPTION: To return the option list supported by this INF and the ; localised text list representing the options. ; ; ; INPUT: $($0): Language used. ( ENG | FRN | ... ) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE ; STATUS_FAILED ; ; $($R1): Option List ; $($R2): Option Text List ;------------------------------------------------------------------------ [ReturnOptions] ; ; set Status = STATUS_FAILED set OptionList = {} set OptionTextList = {} ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) goto returnoptions else set Status = STATUS_NOLANGUAGE goto finish_ReturnOptions endif ; ; form a list of all the options and another of the text representing ; returnoptions = + set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL finish_ReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) ;----------InstallOption------------------------------------------------- ; ; InstallOption: ; ; This section is shelled to by main installation processing ; or by NCPASHEL.INF during reconfig, removal, update, etc. ; ; ; FUNCTION: To copy files representing Options ; To configure the installed option ; To update the registry for the installed option ; ; INPUT: $($0): Language to use ; $($1): OptionID to install ; $($2): SourceDirectory ; $($3): AddCopy (YES | NO) ; $($4): DoCopy (YES | NO) ; $($5): DoConfig (YES | NO) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE | ; STATUS_USERCANCEL | ; STATUS_FAILED ; ;------------------------------------------------------------------------ [InstallOption] ; ; extract parameters ; set Option = $($1) set SrcDir = $($2) set AddCopy = $($3) set DoCopy = $($4) set DoConfig = $($5) set OriginalAddCopy = $($3) set OriginalDoCopy = $($4) ; ; For now, ; ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) NOT-IN $(LanguageList) Return STATUS_NOLANGUAGE endif ; set LANGUAGE = *( ^(LanguagesSupported, 2), ~(LanguageList, $(!STF_LANGUAGE)) Debug-Output "OEMNPRNW.INF: Language used: LANGUAGE = "$(LANGUAGE) Debug-Output "1: STF_PLATFORM = "$(!STF_PLATFORM) Debug-Output "1: STF_PROCESSOR = "$(!STF_PROCESSOR) detect ProcessorDetect Debug-Output "2: STF_PROCESSOR = "$(!STF_PROCESSOR) ifstr(i) $(!STF_PROCESSOR) == "I386" set !STF_PLATFORM = "I386" else-ifstr(i) $(!STF_PROCESSOR) == "I486" set !STF_PLATFORM = "I386" else-ifstr(i) $(!STF_PROCESSOR) == "I586" set !STF_PLATFORM = "I386" else-ifstr(i) $(!STF_PROCESSOR) == "R4000" set !STF_PLATFORM = "Mips" else set !STF_PLATFORM = "Alpha" endif Debug-Output "2: STF_PLATFORM = "$(!STF_PLATFORM) StartWait ; define all the constants 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 ; ; Assume all is well. ; set CommonStatus = STATUS_SUCCESSFUL Begin = + Set OEM_ABANDON_SERVICES = {} Set OEM_ABANDON_COMPONENTS = {} Set DoReboot = "NO" Ifstr(i) $(!NTN_InstallMode) == deinstall set StartLabel = removenetware else-Ifstr(i) $(!NTN_InstallMode) == update set StartLabel = upgradenetware else-Ifstr(i) $(!NTN_InstallMode) == bind set StartLabel = bindnetware else-Ifstr(i) $(!NTN_InstallMode) == configure Set StartLabel = configurenetware else set StartLabel = installnetware ; ; Turn on all the options. ; ForListDo $(ServiceNameList) Set Do$($) = TRUE EndForListDo endif set from = $(fatal) set to = $(fatal) goto $(StartLabel) ;----------------------------------------------- ; Installation Section ;----------------------------------------------- installnetware = + ; ; First, check whether the same version of the software exists ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NetWareWorkStation" $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) ; ; Same version already existed in the local machine ; Popup the dialog and ask the user whether he wants to continue ; CloseRegKey $(KeyProduct) Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", + "The Novell NetWare Client Services is already installed. "+ "Please remove and then reboot before reinstalling it." ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set CommonStatus = STATUS_USERCANCEL goto end endif ; ; Second, check for Microsoft's redirector ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NWCWorkstation\CurrentVersion" $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) ; ; Microsoft redirector found ; Tell user to remove it first and reboot ; Debug-Output "Found Microsoft Redirector." CloseRegKey $(KeyProduct) Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", + "The Microsoft NetWare Compatible Workstation is installed."$(LF)+ "Please remove it and then reboot the system to install the"$(LF)+ " Novell NetWare Workstation." ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set CommonStatus = STATUS_USERCANCEL goto end Endif LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(!STF_WINDOWSSYSPATH)"\netware.drv" ifstr(i) $(Status1) == "YES" LibraryProcedure Status1, $(!LIBHANDLE), DelFile, $(!STF_WINDOWSSYSPATH)"\netware.drv" endif EndWait Ifstr(i) $(DoCopy) == "YES" ; ; Get source location ; ; Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES Shell "", 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) LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(SrcDir) ifstr(i) $(STATUS) != "ERROR" set SrcDir = $(STATUS) Endif Endif StartWait install "Install-NetWare-Dir" 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 ; ; Install all enabled services mentioned in the ServiceNameList ; ForListDo $(ServiceNameList) Set SvcOpt = $($) ; Check to see if the product to be installed is already installed ; Set TempProductKeyName = $(!NTN_ServiceBase)"\"$(Product$(SvcOpt)Name) OpenRegKey $(!REG_H_LOCAL) "" $(TempProductKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OMENPRNW.INF: "$(SvcOpt)" is already installed" Set Do$(SvcOpt) = FALSE Endif Ifstr(i) $(Do$(SvcOpt)) == TRUE Ifstr(i) $(Product$(SvcOpt)Control) == component Debug-Output "OEMNPRNW.INF: install component: "$(SvcOpt) Shell $(UtilityInf), AddSoftwareComponent + $(Manufacturer), + $(Product$(SvcOpt)Name), + $(Product$(SvcOpt)Name), + $(Product$(SvcOpt)DisplayName), + $(STF_CONTEXTINFNAME), + $(Product$(SvcOpt)ImagePath), + $(Product$(SvcOpt)SvcType), + $(Product$(SvcOpt)Group), + $(Product$(SvcOpt)DependList), "" + $(Product$(SvcOpt)EventFile), "", "", 1 Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: AddSoftwareComponent ShellCode error "$($ShellCode)" installing "$(SvcOpt) EndWait goto ShellCodeError Endif StartWait Set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) Debug-Output "OEMNPRNW.INF: Registry error "$(RegistryErrorIndex)" installing "$(SvcOpt) EndWait goto fatalregistry Endif Set SvcVersion = $($R1) Set SvcNetRules = $($R2) Set SvcSvcKey = $($R3) Set SvcParamKey = $($R4) Set SvcLinkKey = $($R5) ifint $(Product$(SvcOpt)ReviewBindings) == 1 Set ReviewBindingsValue = 1 else Set ReviewBindingsValue = 0 Endif Set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)SoftType)},+ {Hidden,$(NoTitle),$(!REG_VT_DWORD),$(Product$(SvcOpt)Hidden)},+ {Review,$(NoTitle),$(!REG_VT_DWORD),$(ReviewBindingsValue)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Title)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Description)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Name)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(SvcVersion), $(NewValueList) StartWait Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: ShellCode error: AddValueList for version info for "$(SvcOpt) EndWait goto ShellCodeError Endif ; ; Add the NetRules info ; Set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareType)},+ {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(SvcOpt)SoftwareClass)}, + {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(SvcOpt)SoftwareBindable)}, + {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareUse)}, + {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareBindForm)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(SvcOpt)}} Shell $(UtilityInf), AddValueList, $(SvcNetRules), $(NewValueList) StartWait Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: AddValueList ShellCode error = "$($ShellCode) EndWait Goto ShellCodeError Endif Set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(SvcSvcKey) CloseRegKey $(SvcParamKey) CloseRegKey $(SvcLinkKey) CloseRegKey $(SvcVersion) CloseRegKey $(SvcNetRules) Debug-Output "OEMNPRNW.INF: Registry error adding NetRules to "$(SvcOpt) EndWait goto fatalregistry Endif Else Debug-Output "OEMNPRNW.INF: install service: "$(SvcOpt) Shell $(UtilityInf), CreateService, + $(Product$(SvcOpt)Name), + $(Product$(SvcOpt)DisplayName), + $(Product$(SvcOpt)ImagePath), + $(Product$(SvcOpt)SvcType), + $(Product$(SvcOpt)Group), + $(Product$(SvcOpt)DependList), "" + $(Product$(SvcOpt)EventFile), "", "", 1 StartWait Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: ShellCode error installing "$(SvcOpt) EndWait goto ShellCodeError Endif Set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) Debug-Output "OEMNPRNW.INF: Registry error installing "$(SvcOpt) EndWait goto fatalregistry Endif Set SvcVersion = "" Set SvcNetRules = "" Set SvcSvcKey = $($R1) Set SvcParamKey = $($R2) Set SvcLinkKey = $($R3) Endif ; Add the NetWare Instrumentation Level. Ifstr(i) $(Product$(SvcOpt)Instrumentation) == TRUE SetRegValue $(SvcParamKey) {"Instrumentation Level",$(NoTitle),$(!REG_VT_SZ),"NONE"} Endif ; ; Call the service-specific installation section ; Shell "" FinishInstalling-$(SvcOpt) + $(SvcSvcKey) $(SvcParamKey) $(SvcLinkKey) + $(SvcVersion) $(SvcNetRules) $(TransportSelected) StartWait Ifstr(i) $(SvcVersion) != "" CloseRegKey $(SvcVersion) Endif Ifstr(i) $(SvcNetRules) != "" CloseRegKey $(SvcNetRules) Endif CloseRegKey $(SvcSvcKey) CloseRegKey $(SvcParamKey) CloseRegKey $(SvcLinkKey) ; ; Add this service to the list of "undoable" things in case of failure ; Set OEM_ABANDON_SERVICES = >($(OEM_ABANDON_SERVICES), $(Product$(SvcOpt)Name)) Endif EndForListDo addextendedfunctions = + ; Set Version number OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Novell" $(MAXIMUM_ALLOWED) SoftwareNovell Ifstr(i) $(SoftwareNovell) != "" SetRegValue $(SoftwareNovell) {"CurrentVersion",$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)$(ProductMinorVersion)} CloseRegKey $(SoftwareNovell) Endif ForListDo $(ExtendedFunctionList) Debug-Output "OEMNPRNW.INF: extended function: "$($) Shell "" InstallEx-$($) StartWait EndForListDo ;==================================================== ; VIPXVDD Added ;==================================================== vipxsection = + set ValueName = "IRQ" set ValueData = "10" set KeyValueList = {$(ValueName),$(NoTitle),$(!REG_VT_DWORD),$(ValueData)} set ProductName = "VipxVDD" set ProductVersion = "CurrentVersion" set VIPXVDDManufactureBase = $(!NTN_SoftwareBase)"\"$(Manufacturer) set VIPXVDDProductBase = $(VIPXVDDManufactureBase)"\"$(ProductName) set VIPXVDDVersion = $(VIPXVDDProductBase)"\"$(ProductVersion) ;HKEY_LOCAL_MACHINE\SOFTWARE\Novell OpenRegKey $(!REG_H_LOCAL) "" $(VIPXVDDManufactureBase) $(!REG_KEY_ALL_ACCESS) MFBaseKey ifint $(RegLastError) != $(REG_ERROR_SUCCESS) Debug-Output "Creating Software Key '"$(VIPXVDDManufactureBase) ;HKEY_LOCAL_MACHINE\SOFTWARE OpenRegKey $(REG_H_LOCAL) "" $(NTN_SoftwareBase) $(REG_KEY_ALL_ACCESS) SFTBaseKey ifint $(RegLastError) != $(REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Opening Key '"$(NTN_SoftwareBase)"'" goto fatalregistry endif ;HKEY_LOCAL_MACHINE\SOFTWARE\Novell CreateRegKey $(SFTBaseKey) {$(Manufacturer),$(NoTitle),GenericClass} "" $(REG_KEY_ALL_ACCESS) $(REG_OPT_NONVOL) MFBaseKey ifint $(RegLastError) != $(REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Creating Key '"$(NTN_SoftwareBase)"'" goto fatalregistry endif CloseRegKey $(SFTBaseKey) endif ;HKEY_LOCAL_MACHINE\SOFTWARE\Novell\VipxVDD OpenRegKey $(!REG_H_LOCAL) "" $(VIPXVDDProductBase) $(!REG_KEY_ALL_ACCESS) ProdBaseKey ifint $(RegLastError) != $(REG_ERROR_SUCCESS) Debug-Output "Creating Software Key '"$(VIPXVDDProductBase)"'" ;HKEY_LOCAL_MACHINE\SOFTWARE\Novell\VipxVDD CreateRegKey $(MFBaseKey) {$(ProductName),$(NoTitle),GenericClass} "" $(REG_KEY_ALL_ACCESS) $(REG_OPT_NONVOL) ProdBaseKey ifint $(RegLastError) != $(REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Creating Key '"$(VIPXVDDProductBase)"'" goto fatalregistry endif endif CloseRegKey $(MFBaseKey) ;HKEY_LOCAL_MACHINE\SOFTWARE\Novell\VipxVDD\[CurrentVersion] OpenRegKey $(!REG_H_LOCAL) "" $(VIPXVDDVersion) $(!REG_KEY_ALL_ACCESS) VerBaseKey ifint $(RegLastError) != $(REG_ERROR_SUCCESS) Debug-Output "Creating Software Key '"$(VIPXVDDVersion)"'" ;HKEY_LOCAL_MACHINE\SOFTWARE\Novell\VipxVDD\['CurrentVersion'] CreateRegKey $(ProdBaseKey) {$(ProductVersion),$(NoTitle),GenericClass} "" $(REG_KEY_ALL_ACCESS) $(REG_OPT_NONVOL) VerBaseKey ifint $(RegLastError) != $(REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Creating Key '"$(VIPXVDDVersion)"'" goto fatalregistry endif endif CloseRegKey $(ProdBaseKey) CloseRegKey $(VerBaseKey) ; The key opened by CreateRegKey does not have the rights that it should ; That is why it has been closed and then reopened. This appears to be a bug in ; CreateRegKey stuff. OpenRegKey $(!REG_H_LOCAL) "" $(VIPXVDDVersion) $(!REG_KEY_ALL_ACCESS) VerBaseKey ifint $(RegLastError) != $(REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Opening Key '"$(VIPXVDDVersion)"'" goto fatalregistry else Debug-Output "Writing '"$(VIPXVDDVersion)": "$(ValueName)" = "$(ValueData)"'" SetRegValue $(VerBaseKey) $(KeyValueList) ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(VIPXVDDVersion)": "$(ValueName)" = "$(ValueData)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif CloseRegKey $(VerBaseKey) endif OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\NWCS" $(MAXIMUM_ALLOWED) KeyProduct Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't open NWCS - Will create it" OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion" $(MAXIMUM_ALLOWED) CurrentVersion Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't open Software\Microsoft\Windows NT\CurrentVersion" goto fatalregistry Endif CreateRegKey $(CurrentVersion) {"NWCS",$(NoTitle),GenericClass} "" $(REG_KEY_ALL_ACCESS) $(REG_OPT_NONVOL) NewProduct ifint $(RegLastError) != $(REG_ERROR_SUCCESS) CloseRegKey $(CurrentVersion) Debug-Output "FATAL Registry Error: Error Creating Key 'NWCS'" goto fatalregistry Else CloseRegKey $(CurrentVersion) CloseRegKey $(NewProduct) OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\NWCS" $(MAXIMUM_ALLOWED) KeyProduct Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't open NWCS after creating it- Problem" goto fatalregistry Endif Endif Endif SetRegValue $(KeyProduct) {"NwcsInstalled",$(NoTitle),$(!REG_VT_SZ),"1"} CloseRegKey $(KeyProduct) OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\WOW" $(MAXIMUM_ALLOWED) WowKey ifstr(i) $(WowKey) != "" GetRegValue $(WowKey),"KnownDLLS", KnownDLLsInfo Split-String *($(KnownDLLsInfo),4), " ", KnownDLLsList Ifcontains(i) "netware.drv" not-in $(KnownDLLsList) ifstr(i) *($(KnownDLLsInfo),4) == "" set KnownDLLs = "netware.drv" else set KnownDLLs = *($(KnownDLLsInfo),4)" netware.drv" endif SetRegValue $(WowKey) {"KnownDLLS",$(NoTitle),$(!REG_VT_SZ),$(KnownDLLs)} endif CloseRegKey $(WowKey) endif ;==================================================== ; VIPXVDD -END ;==================================================== ;==================================================== ; NLS Added ;==================================================== nlssection = + set ValueName = "NWLanguage" set ValueData = "ENGLISH" set KeyValueList = {$(ValueName),$(NoTitle),$(REG_SZ),$(ValueData)} set NTN_UserSoftwareBase = "Software" set ProductName = "NetWare" set NLSProductBase = $(NTN_UserSoftwareBase)"\"$(ProductName) set NLSGroup = "Parameters" set NLSParameters = $(NLSProductBase)"\"$(NLSGroup) Debug-Output "NTN_UserSoftwareBase = "$(NTN_UserSoftwareBase) Debug-Output "ProductName = "$(ProductName) Debug-Output "NLSProductBase = "$(NLSProductBase) Debug-Output "NLSGroup = "$(NLSGroup) Debug-Output "NLSParameters = "$(NLSParameters) ;HKEY_CURRENT_USER\Software\NetWare OpenRegKey $(!REG_H_CUSER) "" $(NLSProductBase) $(!REG_KEY_ALL_ACCESS) NWBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output $(RegLastError) Debug-Output "Opening Software Key '"$(NTN_UserSoftwareBase)"'" ;HKEY_CURRENT_USER\Software OpenRegKey $(!REG_H_CUSER) "" $(NTN_UserSoftwareBase) $(!REG_KEY_ALL_ACCESS) SFTBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error("$(RegLastError)"): Error Opening Key '"$(NTN_UserSoftwareBase)"'" goto fatalregistry endif ;HKEY_CURRENT_USER\Software\NetWare Debug-Output "Creating Software Key '"$(NLSProductBase)"'" Debug-Output "Product Name = '"$(ProductName)"'" CreateRegKey $(SFTBaseKey) {$(ProductName),$(NoTitle),GenericClass} "" $(!REG_KEY_ALL_ACCESS) $(!REG_OPT_NONVOL) NWBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error("$(RegLastError)"): Error Creating Key '"$(NLSProductBase)"'" goto fatalregistry endif CloseRegKey $(SFTBaseKey) endif ;HKEY_CURRENT_USER\Software\NetWare\Parameters OpenRegKey $(!REG_H_CUSER) "" $(NLSParameters) $(!REG_KEY_ALL_ACCESS) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "Creating Software Key '"$(NLSParameters)"'" ;HKEY_CURRENT_USER\Software\NetWare\Parameters CreateRegKey $(NWBaseKey) {$(NLSGroup),$(NoTitle),GenericClass} "" $(!REG_KEY_ALL_ACCESS) $(!REG_OPT_NONVOL) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Creating Key '"$(NLSCurrent)"'" goto fatalregistry endif endif CloseRegKey $(NWBaseKey) CloseRegKey $(ParmBaseKey) ; The key opened by CreateRegKey does not have the rights that it should ; That is why it has been closed and then reopened. This appears to be a bug in ; CreateRegKey stuff. OpenRegKey $(!REG_H_CUSER) "" $(NLSParameters) $(!REG_KEY_ALL_ACCESS) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Opening Key '"$(NLSParameters)"'" goto fatalregistry else Debug-Output "Writing '"$(NLSParameters)": "$(ValueName)" = "$(ValueData)"'" SetRegValue $(ParmBaseKey) $(KeyValueList) ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NLSParameters)": "$(ValueName)" = "$(ValueData)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif endif CloseRegKey $(ParmBaseKey) ;==================================================== ; NLS -END ;==================================================== ;goto end ;==================================================== ; PERFORMANCE Added ;==================================================== perfsection = + set ValueName1 = "Close" set ValueData1 = "NwPfCloseRedirPerformanceData" set ValueName2 = "Collect" set ValueData2 = "NwPfCollectRedirPerformanceData" set ValueName3 = "Open" set ValueData3 = "NwPfOpenRedirPerformanceData" set ValueName4 = "Library" set ValueData4 = "Nwpfctrs.dll" set NwProductName1 = "NetWareWorkstation" set NwProductName2 = "LSL" set NwProductName3 = "OdiLoad" set NwGroup = "Performance" set NwProductBase1 = $(!NTN_ServiceBase)"\"$(NwProductName1) set NwProductBase2 = $(!NTN_ServiceBase)"\"$(NwProductName2) set NwProductBase3 = $(!NTN_ServiceBase)"\"$(NwProductName3) set NwParameters1 = $(NwProductBase1)"\"$(NwGroup) set NwParameters2 = $(NwProductBase2)"\"$(NwGroup) set NwParameters3 = $(NwProductBase3)"\"$(NwGroup) ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetWareWorkstation OpenRegKey $(!REG_H_LOCAL) "" $(NwProductBase1) $(!REG_KEY_ALL_ACCESS) NWBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Opening Key '"$(NwProductBase1)"'" goto fatalregistry endif ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Performance OpenRegKey $(!REG_H_LOCAL) "" $(NwParameters1) $(!REG_KEY_ALL_ACCESS) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "Creating Software Key '"$(NwParameters1)"'" ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Performance CreateRegKey $(NWBaseKey) {$(NwGroup),$(NoTitle),GenericClass} "" $(!REG_KEY_ALL_ACCESS) $(!REG_OPT_NONVOL) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Creating Key '"$(NwParameters1)"'" goto fatalregistry endif endif CloseRegKey $(NWBaseKey) CloseRegKey $(ParmBaseKey) ; The key opened by CreateRegKey does not have the rights that it should ; That is why it has been closed and then reopened. This appears to be a bug in ; CreateRegKey stuff. ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Performance OpenRegKey $(!REG_H_LOCAL) "" $(NwParameters1) $(!REG_KEY_ALL_ACCESS) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Opening Key '"$(NwParameters1)"'" goto fatalregistry else Debug-Output "Writing '"$(NwParameters1)": "$(ValueName1)" = "$(ValueData1)"'" SetRegValue $(ParmBaseKey) {$(ValueName1),$(NoTitle),$(!REG_VT_SZ),$(ValueData1)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters1)": "$(ValueName1)" = "$(ValueData1)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif Debug-Output "Writing '"$(NwParameters1)": "$(ValueName2)" = "$(ValueData2)"'" SetRegValue $(ParmBaseKey) {$(ValueName2),$(NoTitle),$(!REG_VT_SZ),$(ValueData2)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters1)": "$(ValueName2)" = "$(ValueData2)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif Debug-Output "Writing '"$(NwParameters1)": "$(ValueName3)" = "$(ValueData3)"'" SetRegValue $(ParmBaseKey) {$(ValueName3),$(NoTitle),$(!REG_VT_SZ),$(ValueData3)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters1)": "$(ValueName3)" = "$(ValueData3)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif Debug-Output "Writing '"$(NwParameters1)": "$(ValueName4)" = "$(ValueData4)"'" SetRegValue $(ParmBaseKey) {$(ValueName4),$(NoTitle),$(!REG_VT_SZ),$(ValueData4)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters1)": "$(ValueName4)" = "$(ValueData4)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif endif CloseRegKey $(ParmBaseKey) ;================================================== set ValueData1 = "NwPfCloseLSLPerformanceData" set ValueData2 = "NwPfCollectLSLPerformanceData" set ValueData3 = "NwPfOpenLSLPerformanceData" ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LSL OpenRegKey $(!REG_H_LOCAL) "" $(NwProductBase2) $(!REG_KEY_ALL_ACCESS) NWBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Opening Key '"$(NwProductBase2)"'" goto fatalregistry endif ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LSL\Performance OpenRegKey $(!REG_H_LOCAL) "" $(NwParameters2) $(!REG_KEY_ALL_ACCESS) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "Creating Software Key '"$(NwParameters2)"'" ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LSL\Performance CreateRegKey $(NWBaseKey) {$(NwGroup),$(NoTitle),GenericClass} "" $(!REG_KEY_ALL_ACCESS) $(!REG_OPT_NONVOL) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Creating Key '"$(NwParameters2)"'" goto fatalregistry endif endif CloseRegKey $(NWBaseKey) CloseRegKey $(ParmBaseKey) ; The key opened by CreateRegKey does not have the rights that it should ; That is why it has been closed and then reopened. This appears to be a bug in ; CreateRegKey stuff. ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LSL\Performance OpenRegKey $(!REG_H_LOCAL) "" $(NwParameters2) $(!REG_KEY_ALL_ACCESS) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Opening Key '"$(NwParameters2)"'" goto fatalregistry else Debug-Output "Writing '"$(NwParameters2)": "$(ValueName1)" = "$(ValueData1)"'" SetRegValue $(ParmBaseKey) {$(ValueName1),$(NoTitle),$(!REG_VT_SZ),$(ValueData1)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters2)": "$(ValueName1)" = "$(ValueData1)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif Debug-Output "Writing '"$(NwParameters2)": "$(ValueName2)" = "$(ValueData2)"'" SetRegValue $(ParmBaseKey) {$(ValueName2),$(NoTitle),$(!REG_VT_SZ),$(ValueData2)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters2)": "$(ValueName2)" = "$(ValueData2)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif Debug-Output "Writing '"$(NwParameters2)": "$(ValueName3)" = "$(ValueData3)"'" SetRegValue $(ParmBaseKey) {$(ValueName3),$(NoTitle),$(!REG_VT_SZ),$(ValueData3)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters2)": "$(ValueName3)" = "$(ValueData3)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif Debug-Output "Writing '"$(NwParameters2)": "$(ValueName4)" = "$(ValueData4)"'" SetRegValue $(ParmBaseKey) {$(ValueName4),$(NoTitle),$(!REG_VT_SZ),$(ValueData4)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters2)": "$(ValueName4)" = "$(ValueData4)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif endif CloseRegKey $(ParmBaseKey) ;================================================== set ValueData1 = "NwPfCloseODIPerformanceData" set ValueData2 = "NwPfCollectODIPerformanceData" set ValueData3 = "NwPfOpenODIPerformanceData" ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OdiLoad OpenRegKey $(!REG_H_LOCAL) "" $(NwProductBase3) $(!REG_KEY_ALL_ACCESS) NWBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Opening Key '"$(NwProductBase3)"'" goto fatalregistry endif ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OdiLoad\Performance OpenRegKey $(!REG_H_LOCAL) "" $(NwParameters3) $(!REG_KEY_ALL_ACCESS) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "Creating Software Key '"$(NwParameters3)"'" ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OdiLoad\Performance CreateRegKey $(NWBaseKey) {$(NwGroup),$(NoTitle),GenericClass} "" $(!REG_KEY_ALL_ACCESS) $(!REG_OPT_NONVOL) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Creating Key '"$(NwParameters3)"'" goto fatalregistry endif endif CloseRegKey $(NWBaseKey) CloseRegKey $(ParmBaseKey) ; The key opened by CreateRegKey does not have the rights that it should ; That is why it has been closed and then reopened. This appears to be a bug in ; CreateRegKey stuff. ;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OdiLoad\Performance OpenRegKey $(!REG_H_LOCAL) "" $(NwParameters3) $(!REG_KEY_ALL_ACCESS) ParmBaseKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Opening Key '"$(NwParameters3)"'" goto fatalregistry else Debug-Output "Writing '"$(NwParameters3)": "$(ValueName1)" = "$(ValueData1)"'" SetRegValue $(ParmBaseKey) {$(ValueName1),$(NoTitle),$(!REG_VT_SZ),$(ValueData1)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters3)": "$(ValueName1)" = "$(ValueData1)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif Debug-Output "Writing '"$(NwParameters3)": "$(ValueName2)" = "$(ValueData2)"'" SetRegValue $(ParmBaseKey) {$(ValueName2),$(NoTitle),$(!REG_VT_SZ),$(ValueData2)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters3)": "$(ValueName2)" = "$(ValueData2)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif Debug-Output "Writing '"$(NwParameters3)": "$(ValueName3)" = "$(ValueData3)"'" SetRegValue $(ParmBaseKey) {$(ValueName3),$(NoTitle),$(!REG_VT_SZ),$(ValueData3)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters3)": "$(ValueName3)" = "$(ValueData3)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif Debug-Output "Writing '"$(NwParameters3)": "$(ValueName4)" = "$(ValueData4)"'" SetRegValue $(ParmBaseKey) {$(ValueName4),$(NoTitle),$(!REG_VT_SZ),$(ValueData4)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "ERROR Writing '"$(NwParameters3)": "$(ValueName4)" = "$(ValueData4)"'" Debug-Output " 'RegLastError' = "$(RegLastError)$(LF) goto fatalregistry endif endif CloseRegKey $(ParmBaseKey) ; Replaced the next bunch of lines with a function call to the ; Nwsetup.dll library ; RunProgram exitCode "" "" lodctr.exe lslstats.ini ; ifstr $(exitCode) == "ERROR" ; Debug-Output "Error running program 'lodctr.exe lslstats.ini'" ; goto fatalregistry ; endif ; RunProgram exitCode "" "" lodctr.exe rdrstats.ini ; ifstr $(exitCode) == "ERROR" ; Debug-Output "Error running program 'lodctr.exe rdrstats.ini'" ; goto fatalregistry ; endif ; RunProgram exitCode "" "" lodctr.exe odistats.ini ; ifstr $(exitCode) == "ERROR" ; Debug-Output "Error running program 'lodctr.exe odistats.ini'" ; goto fatalregistry ; endif StartWait LoadLibrary "NetWare for Windows NT" nwsetup.dll NwLibHandle LibraryProcedure GUIResult $(NwLibHandle) NWLoadPerformanceCounters FreeLibrary $(NwLibHandle) EndWait ;==================================================== ; PERFORMANCE -END ;==================================================== ; ; Add ODINSUP hidden ; Set OldInstallMode = $(!NTN_InstallMode) Set !NTN_InstallMode = install Shell "ODINSUP.inf" InstallOption $(!STF_LANGUAGE) "ODINSUP" "" NO NO NO Set !NTN_InstallMode = $(OldInstallMode) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError Endif ; set ProductHardwareName = "ODINSUP" ; set Manufacturer = "Novell" ; set ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductHardwareName)"\CurrentVersion" ; ; ; add ODINSUP at board two or later ; Shell "UTILITY.INF", 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 "ODINSUP: AddHardwareComponent Shell error "$($ShellCode) ; goto ShellCodeError ; endif ; set RegistryErrorIndex = $($R0) ; Ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; EndWait ; Debug-Output "ODINSUP: 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)"] "$(ProductHardware$(Option)Title)},+ ; {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+ ; {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+ ; {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+ ; {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} ; Shell "UTILITY.INF", AddValueList, $($R1), $(NewValueList) ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; Debug-Output "ODINSUP: 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 "UTILITY.INF", AddValueList, $(KeyAdapterRules), $(NewValueList) ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; Debug-Output "ODINSUP: AddValueList ShellCode error "$($ShellCode) ; goto ShellCodeError ; endif ; set RegistryErrorIndex = $($R0) ; Ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; EndWait ; Debug-Output "ODINSUP: AddValueList Registry error "$(RegistryErrorIndex) ; CloseRegKey $(KeyParameters) ; CloseRegKey $(KeyAdapterRules) ; goto fatalregistry ; endif ; ; CloseRegKey $(KeyAdapterRules) ; ; install "CreateNetWareGroup" ; ; Try to detect the ndis driver that the lan man services are using ; Shell "NWSUBS.INF" NwDetectNdisAdapter $(SrcDir) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: NwDetectNdisAdapter ShellCode error "$($ShellCOde) goto ShellCodeError endif goto successful ;----------------------------------------------- ; Configure Browser section ;----------------------------------------------- configurenetware = + Debug-Output "OEMNPRNW.INF: Configure NetWare "$(!NTN_RegBase) set CommonStatus = STATUS_USERCANCEL LoadLibrary "NetWare for Windows NT" nwsetup.dll NwLibHandle SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\english\nwnthelp.hlp" $(!MinimumID) $(!MaximumID) Ifstr(i) $(!NTN_RegBase) == $(ProductNWFSKeySoftware) ; Configure the NetWare Workstation. Debug-Output "OEMNPRNW.INF: Configure NetWare Workstation" StartWait set HelpContext = $(IDH_NETWAREWRKSTATIONPARMS) LibraryProcedure LibResult $(NwLibHandle) NetWareWorkstationDialog Debug-Output "LibResult = "$(LibResult) ifstr(i) $(LibResult) == "CONTINUE" Debug-Output "OK hit" Set DoReboot = "YES" Set CommonStatus = STATUS_REBOOT endif else-ifstr(i) $(!NTN_RegBase) == $(ProductIPXSPXKeySoftware) ; Configure Ipx/Spx. Shell "" ConfigureIpxSpx $(NwLibHandle) YES set CommonStatus = $($R0) set DoReboot = $($R1) else-ifstr(i) $(!NTN_RegBase) == $(ProductODILOADKeySoftware) ; Configure OdiLoad. Debug-Output "OEMNPRNW.INF: Configure OdiLoad" else-ifstr(i) $(!NTN_RegBase) == $(ProductRESMGRKeySoftware) ; Configure Resmgr. Debug-Output "OEMNPRNW.INF: Configure Resmgr" Set KeyName = "SYSTEM\CurrentControlSet\Services\"$(Product$(Option)Name)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(MAXIMUM_ALLOWED) KeyParameters Ifstr(i) $(KeyParameters) != "" set KeyValueList = "" GetRegValue $(KeyParameters) "Communication Buffers" KeyValueList set CommunicationBuffers = *($(KeyValueList), 4) read-syms "ResMgrDlg"$(!STF_LANGUAGE) ui start "ResMgrDLG" $(NwLibHandle) StartWait ifstr(i) $(DLGEVENT) == "CONTINUE" Debug-Output "OK hit" set CommunicationBuffers = *($(EditTextOut), 1) ifint $(CommunicationBuffers) < 1 set CommunicationBuffers = 1 else-ifint $(CommunicationBuffers) > 128 set CommunicationBuffers = 128 endif set KeyValueList = {"Communication Buffers",$(NoTitle),$(!REG_VT_DWORD),$(CommunicationBuffers)} SetRegValue $(KeyParameters) $(KeyValueList) FlushRegKey $(KeyParameters) Set DoReboot = "YES" Set CommonStatus = STATUS_REBOOT endif CloseRegKey $(KeyParameters) ui pop 1 EndWait endif Endif FreeLibrary $(NwLibHandle) goto successful ;----------------------------------------------- ; Binding section ;----------------------------------------------- bindnetware =+ Debug-Output "OEMNPRNW.INF: Bind NetWare" LoadLibrary "NetWare for Windows NT" nwsetup.dll NwLibHandle SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\english\nwnthelp.hlp" $(!MinimumID) $(!MaximumID) ; ; Check if NWIP installed ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NWIP" $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) GetRegValue $(KeyProduct) "DeleteFlag" DeleteFlagList Set DeleteFlag = *($(DeleteFlagList), 4) Debug-Output "DeleteFlag = "$(DeleteFlag) Ifint $(DeleteFlag) != 1 Set NWIPInstalled = YES Debug-Output "OEMNPRNW.INF: bindnetware, NWIP is installed" Else Set NWIPInstalled = "" Debug-Output "OEMNPRNW.INF: bindnetware, NWIP NOT installed" Endif CloseRegKey $(KeyProduct) Endif Shell "NWSUBS.INF" 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) Shell "" ConfigureIpxSpx $(NwLibHandle) NO Set GroupOrderToFollow = "file system" ; ; Is there a ODI driver installed? ; ifint $(NumberOdiAdapters) > 0 Debug-Output "Found Odi Adapters" ; ; Turn on OdiLoad ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiLoad" $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) Set KeyValueList = {"Start",$(NoTitle),$(!REG_VT_DWORD),2} SetRegValue $(KeyProduct) $(KeyValueList) CloseRegKey $(KeyProduct) Endif ; ; Turn on ODINSUP ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Odinsup" $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) Set KeyValueList = {"Start",$(NoTitle),$(!REG_VT_DWORD),2} SetRegValue $(KeyProduct) $(KeyValueList) CloseRegKey $(KeyProduct) Endif ; ; Set the card for ODINSUP to bind to ; read-syms OdiNSupVars read-syms OdiVars OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\ODINSUP"$(ODINSUPCardNumber)"\Parameters" $(MAXIMUM_ALLOWED) KeyOdiNSupParameters Ifstr(i) $(KeyOdiNSupParameters) != "" Ifint $(NumberOdiAdapters) > 1 ; ; More than one ODI adapter is installed so allow ; the user to select which one to bind to. ; Ifstr(i) $(OdiCurBindCardName) != "" Debug-Output "NWSUBS.INF: OdiCurBindCardName = "$(OdiCurBindCardName) Set DefaultOdiTitle = *($(OdiTitleList), ~($(OdiCardList), $(OdiCurBindCardName))) Endif Ifstr(i) $(DefaultOdiTitle) == "" Set DefaultOdiTitle = *($(OdiTitleList), 1) Endif Debug-Output "NWSUBS.INF: DefaultOdiTitle = "$(DefaultOdiTitle) read-syms OdinsupDlg$(!STF_LANGUAGE) ui start "ODINSUP" $(NwLibHandle) ui pop 1 ifstr(i) $(DLGEVENT) == "BACK" set AdapterSelected = "" else Set AdapterSelected = *($(DefaultOdiTitle), 1) endif Debug-Output "NWSUBS.INF: ODINSUP AdapterSelected = "$(AdapterSelected) Ifstr(i) $(AdapterSelected) == "" Debug-Output "NWSUBS.INF: Cancel Selected" Set CardToBindTo = *($(OdiProductNameList), 1) Set OdiCardInstance = 1 Else Set CardToBindTo = *($(OdiProductNameList), ~($(OdiTitleList), $(AdapterSelected))) Debug-Output "CardToBindTo = "$(CardToBindTo) Set NtAdapterNumber = *($(OdiCardList), ~($(OdiTitleList), $(AdapterSelected))) Debug-Output "NtAdapterNumber = "$(NtAdapterNumber) Set NtAdapterKeyName = $(NetworkCardsKeyName)"\"$(NtAdapterNumber) OpenRegKey $(!REG_H_LOCAL) "" $(NtAdapterKeyName) $(MAXIMUM_ALLOWED) KeyNtAdapter Ifstr(i) $(KeyNtAdapter) != "" GetRegValue $(KeyNtAdapter),"ServiceName", ServiceNameList Set ServiceName = *($(ServiceNameList), 4) CloseRegKey $(KeyNtAdapter) ; Open the lan man card's service\Parameters. ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters" $(MAXIMUM_ALLOWED) KeyService ifstr(i) $(KeyService) == "" Debug-Output "NWSUBS.INF: NwSetIpxCard, Can't open "$(ServiceName) Else ; Get the OdiLoad link. ; GetRegValue $(KeyService) $(OdiLinkName) CardInstanceList Set CardInstanceName = *($(CardInstanceList), 4) CloseRegKey $(KeyService) OpenRegKey $(!REG_H_LOCAL) "" $(OdiModuleName)"\"$(CardInstanceName) $(MAXIMUM_ALLOWED) KeyOdiCard Ifstr(i) $(KeyOdiCard) != "" GetRegValue $(KeyOdiCard) "BoardInstance" BoardInstanceList Set OdiCardInstance = *($(BoardInstanceList), 4) Debug-Output "2: Selected OdiCardInstance = "$(OdiCardInstance) CloseRegKey $(KeyOdiCard) Endif Endif Else Debug-Output "Can't open "$(NtAdapterKeyName) Endif Endif Else ; ; only one ODI adapter so use it. ; Set CardToBindTo = *($(OdiProductNameList), 1) Debug-Output "NWSUBS.INF: ODISUP bound to "$(CardToBindTo) Endif SetRegValue $(KeyOdiNSupParameters) {$(OdiNSupCardName),$(NoTitle),$(!REG_VT_SZ),$(CardToBindTo)} Ifstr(i) $(OdiCardInstance) == "" Debug-Output "NWSUBS.INF: NwSetIpxCard, OdiCardInstance set to default." Set OdiCardInstance = "1" Endif SetRegValue $(KeyOdiNSupParameters) {$(OdiNSupCardInstance),$(NoTitle),$(!REG_VT_DWORD),$(OdiCardInstance)} CloseRegKey $(KeyOdiNSupParameters) Endif Else ; ; Turn off OdiLoad ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiLoad" $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) Set KeyValueList = {"Start",$(NoTitle),$(!REG_VT_DWORD),4} SetRegValue $(KeyProduct) $(KeyValueList) CloseRegKey $(KeyProduct) Endif ; ; Turn off ODINSUP ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Odinsup" $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) Set KeyValueList = {"Start",$(NoTitle),$(!REG_VT_DWORD),4} SetRegValue $(KeyProduct) $(KeyValueList) CloseRegKey $(KeyProduct) Endif Endif Ifint $(NumberNdisAdapters) > 0 ; ; Ndis drivers installed ; Set GroupOrderToFollow = "NDIS" Endif ; ; Is NWIP installed ; Ifstr $(NWIPInstalled) == YES Set GroupOrderToFollow = "file system" ; ; Turn off VMLID ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiVMLID" $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) Set KeyValueList = {"Start",$(NoTitle),$(!REG_VT_DWORD),4} SetRegValue $(KeyProduct) $(KeyValueList) CloseRegKey $(KeyProduct) Endif ; ; Hide Ipx ; set IpxHidden = 1 ; ; Check to see if DHCP is installed ; Debug-Output "OEMNPRNW.INF: Check to see if DHCP is installed" set DependOnList = {"Tcpip"} OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\DHCP" $(MAXIMUM_ALLOWED) KeyDHCP Ifstr $(KeyDHCP) != $(KeyNull) ; ; Check to see if the service is set to start ; GetRegValue $(KeyDHCP) "Start" StartList Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Set StartValue = *($(StartList), 4) Ifint $(StartValue) < 4 ; ; Make NWIP depend on the service DHCP ; Debug-Output "OEMNPRNW.INF: Make NWIP depend on DHCP service" set DependOnList = {"DHCP"} Endif Endif CloseRegKey $(KeyDHCP) Endif OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NWIP" $(MAXIMUM_ALLOWED) KeyNWIP Ifstr $(KeyNWIP) != $(KeyNull) SetRegValue $(KeyNWIP) {"DependOnService",$(NoTitle),$(!REG_VT_MULTI_SZ),$(DependOnList)} CloseRegKey $(KeyNWIP) Endif Else ; ; Make sure Ipx is NOT hidden ; set IpxHidden = 0 Endif OpenRegKey $(!REG_H_LOCAL) "" $(ProductIPXSPXKeySoftware) $(MAXIMUM_ALLOWED) KeyIpxSoftware Ifstr(i) $(KeyIpxSoftware) == "" Debug-Output "OEMNPRNW.INF: Error opening "$(ProductIPXSPXKeyName) Else SetRegValue $(KeyIpxSoftware) {"Hidden",$(NoTitle),$(!REG_VT_DWORD),$(IpxHidden)} CloseRegKey $(KeyIpxSoftware) Endif ; ; Set the group Order ; Shell "" InstallEx-ServiceGroupOrder $(GroupOrderToFollow) Ifstr(i) $($R0) != NO_ERROR set CommonStatus = STATUS_NO_EFFECT Endif FreeLibrary $(NwLibHandle) goto end ;----------------------------------------------- ; Removenetware section ;----------------------------------------------- removenetware = + StartWait LoadLibrary "NetWare for Windows NT" nwsetup.dll NwLibHandle LibraryProcedure GUIResult $(NwLibHandle) NWCleanUpNetWare FreeLibrary $(NwLibHandle) StartWait goto end ;----------------------------------------------- ; Upgrade Software section ;----------------------------------------------- upgradenetware = + Set CanUpgrade = 0 OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Novell" $(MAXIMUM_ALLOWED) SoftwareNovell Ifstr(i) $(SoftwareNovell) != "" GetRegValue $(SoftwareNovell) "CurrentVersion" CurrentVersion Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Set ProductVersion = *($(CurrentVersion), 4) ifint $(ProductVersion) > 100 set CanUpgrade = 1 Endif Endif CloseRegKey $(SoftwareNovell) Endif ifint $(CanUpgrade) == 0 Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", + "The Update button is not supported with previous beta versions. "+ "Please remove the NetWare Services for Windows NT and "+ "then reboot before reinstalling it." ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif goto end endif LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(SrcDir) ifstr(i) $(STATUS) != "ERROR" set SrcDir = $(STATUS) Endif OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Novell\"$(ProductNWFSName)"\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) SoftwareNovell Ifstr(i) $(SoftwareNovell) != "" GetRegValue $(SoftwareNovell) "InfName" CurrentName Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set !UG_Filename = *($(CurrentName), 4) Endif CloseRegKey $(SoftwareNovell) Endif ; Novell.cpl changed to Nwcpl.cpl so delete old name. LibraryProcedure Status1, $(!LIBHANDLE), DelFile, $(!STF_WINDOWSSYSPATH)"\novell.cpl" LibraryProcedure Status1, $(!LIBHANDLE), DelFile, $(!STF_WINDOWSSYSPATH)"\nls\english\novellr.dll" Install "Install-Update" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS goto fatal endif LoadLibrary "NetWare for Windows NT" nwsetup.dll NwLibHandle LibraryProcedure GUIResult $(NwLibHandle) RemoveFilefromAutoexec "%SystemRoot%\system32\autoexec.nt" "lh %SystemRoot%\system32\vipx.exe" LibraryProcedure GUIResult $(NwLibHandle) NWUnLoadPerformanceCounters LibraryProcedure GUIResult $(NwLibHandle) NWLoadPerformanceCounters FreeLibrary $(NwLibHandle) set DoReboot = "YES" ; ; Escape hatches ; successful = + goto end ; ; warning display ; 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 ; Debug-Msg "Error Error Bad DLGEVENT" goto end endif ; ; non fatal error display ; nonfatalinfo = + Set CommonStatus = STATUS_USERCANCEL Set Severity = STATUS goto nonfatalmsg nonfatal = + Set Severity = NONFATAL goto nonfatalmsg nonfatalmsg = + ifstr(i) $(Error) == "" Set Severity = NONFATAL Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) endif Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R1) == "OK" goto $(from) else goto "end" endif ; ; Registry is broken ; fatalregistry = + Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal ; ; fatal error display ; 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 ; ; Shelling error ; ShellCodeError = + set DlgType = "MessageBox" set STF_MB_TITLE = "Error: "$(FunctionTitle) set STF_MB_TEXT = "Shell Code Error "$(TWM_ShellErrorTitle) 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 ; ; If OEM_ABANDON_ON, we need to clean up the registry ; ifstr(i) $(OEM_ABANDON_ON) == TRUE set OEM_ABANDON_ON = FALSE goto removenetware endif goto end end = + ifstr(i) $(DoReboot) == "YES" shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" + "The changes you have made will not take effect until the computer is restarted." endif EndWait goto term term = + Return $(CommonStatus) ; ; Subroutines ; ;************************************************************************* ; ; SECTION: ConfigureIpxSpx ; ; PURPOSE: configure Ipx / Spx ; ; ARGUMENTS: $0 handle the NetWare setup library ; $1 DoConfig (always display dialog ?) ; ; RETURNS: $R0 CommonStatus ; $R1 DoReboot ; ; REFERENCES: ; ; MODIFIES: Registry bindings and parameters for ipx/spx ; ; ;************************************************************************* [ConfigureIpxSpx] set NwLibHandle = $($0) set DoConfig = $($1) Debug-Output "OEMNPRNW.INF: Configure IpxSpx" read-syms GeneralConstants read-syms FileConstants read-syms IpxSpxConstants read-syms DialogConstants$(!STF_LANGUAGE) set AutoDetect = "AUTO DETECT" set ETHERNETFrameList = {$(AutoDetect),"ETHERNET_802.2","ETHERNET_802.3","ETHERNET_II","ETHERNET_SNAP"} set TOKEN-RINGFrameList = {$(AutoDetect),"TOKEN-RING","TOKEN-RING_SNAP"} set FDDIFrameList = {$(AutoDetect),"FDDI_802.2","FDDI_SNAP"} set NWIPFrameList = {"ETHERNET_II"} set UNKNOWNFrameList = {$(AutoDetect)} Shell $(NwSubsInf) GetIpxCardList set NetworkCardList = $($R0) set MediaTypeList = $($R1) set DriverTypeList = $($R2) set NumberOfNetworkCards = $($R3) set ProductNameList = $($R4) set ServiceNameList = $($R5) set NWIPInstalled = $($R6) set CardNumberList = $($R7) Debug-Output "NetworkCardList = "$(NetworkCardList) Debug-Output "MediaTypeList = "$(MediaTypeList) Debug-Output "DriverTypeList = "$(DriverTypeList) Debug-Output "NumberOfNetworkCards = "$(NumberOfNetworkCards) Debug-Output "ProductNameList = "$(ProductNameList) Debug-Output "ServiceNameList = "$(ServiceNameList) Debug-Output "NWIPInstalled = "$(NWIPInstalled) Debug-Output "CardNumberList = "$(CardNumberList) set InstanceNumberList = {} set CardDriverInstanceList = {} ForListDo $(ProductNameList) set ProductName = $($) set DriverType = *($(DriverTypeList), $(#)) set CardDriverIndex = $(ProductName)$(DriverType) set-add $(CardDriverIndex) = $($(CardDriverIndex)), 1 set InstanceNumberList = >($(InstanceNumberList), $($(CardDriverIndex))) set CardDriverInstance = $(ProductName)$(DriverType)$($(CardDriverIndex)) set CardDriverInstanceList = >($(CardDriverInstanceList), $(CardDriverInstance)) EndForListDo Debug-Output "InstanceNumberList = "$(InstanceNumberList) Debug-Output "CardDriverInstanceList = "$(CardDriverInstanceList) ifint $(NumberOfNetworkCards) < 1 Debug-Output "OEMNPRNW.INF: No network cards installed" Set DlgType = "MessageBox" Set STF_MB_TITLE = "NetWare IPX/SPX Service Setup" Set STF_MB_TEXT = "The NetWare IPX/SPX service can not be configured because no network adapters are installed." Set STF_MB_TYPE = 1 Set STF_MB_ICON = 2 Set STF_MB_DEF = 1 ui start "Error Message" set CommonStatus = STATUS_USERCANCEL goto ConfigureIpxSpxEXIT endif ; ; Get the card and frame Ipx is currently bound to ; set IpxParametersName = $(!NTN_ServiceBase)"\"$(ProductIPXSPXName)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(IpxParametersName) $(MAXIMUM_ALLOWED) KeyIpxParameters ifstr(i) $(KeyIpxParameters) != "" GetRegValue $(KeyIpxParameters) $(CardInstance) ValueList set IpxCardInstance = *($(ValueList), 4) Debug-Output "OEMNPRNW.INF: VMLID, IpxCardInstance = "$(IpxCardInstance) GetRegValue $(KeyIpxParameters) $(CardTypeName) ValueList set IpxCard = *($(ValueList), 4) ifstr(i) $(IpxCard) == "VMLID" ; ; Get the card name from the VMLID service ; set VMLIDServiceName = $(!NTN_ServiceBase)"\"$(ProductVMLIDName) OpenRegKey $(!REG_H_LOCAL) "" $(VMLIDServiceName) $(MAXIMUM_ALLOWED) KeyVMLIDService ifstr(i) $(KeyVMLIDService) != "" GetRegValue $(KeyVMLIDService) "Bind" ValueList set BindList = *($(ValueList), 4) Split-String $(BindList) "\" BindListParts Debug-Output "OEMNPRNW.INF: VMLID BindListParts = "$(BindListParts) set NdisCardService = *($(BindListParts), 4) Debug-Output "OEMNPRNW.INF: VMLID, NdisCardService = "$(NdisCardService) set CardIndex = ~($(ServiceNameList), $(NdisCardService)) set IpxCard = *($(ProductNameList), $(CardIndex)) Debug-Output "OEMNPRNW.INF: VMLID, IpxCard = "$(IpxCard) set CurrentIpxNetworkCard = *($(NetworkCardList), $(CardIndex)) Debug-Output "OEMNPRNW.INF: VMLID, CurrentIpxNetworkCard = "$(CurrentIpxNetworkCard) set DriverType = "NDIS" set CardDriverInstance = *($(CardDriverInstanceList), $(CardIndex)) Debug-Output "OEMNPRNW.INF: VMLID, CardDriverInstance = "$(CardDriverInstance) set IpxCardNumber = *($(CardNumberList), $(CardIndex)) Debug-Output "OEMNPRNW.INF: VMLID, IpxCardNumber = "$(IpxCardNumber) CloseRegKey $(KeyVMLIDService) endif else set DriverType = "ODI" set CardDriverInstance = $(IpxCard)$(DriverType)$(IpxCardInstance) Debug-Output "OEMNPRNW.INF: ODI, CardDriverInstance = "$(CardDriverInstance) set CardIndex = ~($(CardDriverInstanceList), $(CardDriverInstance)) set CurrentIpxNetworkCard = *($(NetworkCardList), $(CardIndex)) Debug-Output "OEMNPRNW.INF: ODI, CurrentIpxNetworkCard = "$(CurrentIpxNetworkCard) set IpxCardNumber = *($(CardNumberList), $(CardIndex)) Debug-Output "OEMNPRNW.INF: ODI, IpxCardNumber = "$(IpxCardNumber) endif GetRegValue $(KeyIpxParameters) $(FrameTypeName) ValueList set IpxFrameType = *($(ValueList), 4) CloseRegKey $(KeyIpxParameters) else Debug-Output "Can't open IpxSpx parameters key "$(IpxServiceName) endif Debug-Output "OEMNPRNW.INF: ConfigureIpxSpx IpxCard = "$(IpxCard) Debug-Output "OEMNPRNW.INF: ConfigureIpxSpx IpxFrameType = "$(IpxFrameType) Debug-Output "OEMNPRNW.INF: ConfigureIpxSpx IpxCardNumber = "$(IpxCardNumber) set ReConfigureIpx = "" set WriteParameters = "" set VMLIDCard = "" ifstr(i) $(NWIPInstalled) == YES set OldIpxCard = $(IpxCard) set IpxCard = "NWIP" set IpxFrameType = *($(NWIPFrameList), 1) set DriverType = "ODI" ifstr(i) $(DoConfig) != YES goto dowriteparameters else-ifstr(i) $(OldIpxCard) != $(IpxCard) set ReConfigureIpx = YES endif set CurrentIpxNetworkCard = *($(NetworkCardList), 1) endif ; Debug-Output "Find "$(IpxCard)" in "$(ProductNameList) ; ; ForListDo $(ProductNameList) ; set ProductName = $($) ; ifstr(i) $(ProductName) == $(IpxCard) ; ; ; ; The product names are the same now check the driver type ; ; ; set ProductDriverType = *($(DriverTypeList), $(#)) ; ; ifstr(i) $(ProductDriverType) == $(DriverType) ; set CurrentIpxNetworkCard = *($(NetworkCardList), $(#)) ; endif ; endif ; EndForListDo set CurrentIpxFrameType = $(IpxFrameType) Debug-Output "OEMNPRNW.INF: CurrentIpxNetworkCard = "$(CurrentIpxNetworkCard) ; Ifcontains(i) $(IpxCard) in $(ProductNameList) Ifcontains(i) $(CardDriverInstance) in $(CardDriverInstanceList) ; ; The card Ipx is currently bound to is okay exit if not doing configure. ; Ifstr(i) $(DoConfig) != "YES" goto ConfigureIpxSpxEXIT Endif Else-Ifstr(i) $(NWIPInstalled) != YES ; ; The card Ipx is bound to is invalid ; set ReConfigureIpx = YES set CurrentIpxFrameType = $(AutoDetect) Endif ifstr(i) $(CurrentIpxNetworkCard) == "" set CurrentIpxNetworkCard = *($(NetworkCardList), 1) endif ifstr(i) $(CurrentIpxFrameType) == "" set CurrentIpxFrameType = $(AutoDetect) endif set LastIpxNetworkCard = $(CurrentIpxNetworkCard) dothedialog = + set CurrentMediaType = *($(MediaTypeList), ~($(NetworkCardList), $(CurrentIpxNetworkCard))) set FrameTypeList = $($(CurrentMediaType)FrameList) ifstr(i) $(CurrentIpxNetworkCard) != $(LastIpxNetworkCard) set CurrentIpxFrameType = *($(FrameTypeList), 1) endif set LastIpxNetworkCard = $(CurrentIpxNetworkCard) StartWait read-syms "IpxCardFrameDlg"$(!STF_LANGUAGE) set NotifyFields = {"YES","NO"} set ComboListItemsIn = {NetworkCardList,FrameTypeList} set ComboListItemsOut = {CurrentIpxNetworkCard,CurrentIpxFrameType} ui start "LANDriverParms" $(NwLibHandle) ifstr(i) $(DLGEVENT) == "NOTIFY" Debug-Output "NOTIFY" set ReInit = YES goto dothedialog else-ifstr(i) $(DLGEVENT) == "CONTINUE" Debug-Output "Continue hit" set WriteParameters = YES set ListIndex = ~($(NetworkCardList), $(CurrentIpxNetworkCard)) set IpxCard = *($(ProductNameList), $(ListIndex)) set IpxCardNumber = *($(CardNumberList), $(ListIndex)) set DriverType = *($(DriverTypeList), $(ListIndex)) ifstr(i) $(DriverType) == "NDIS" set VMLIDCard = $(IpxCard) set VMLIDService = *($(ServiceNameList), $(ListIndex)) set IpxCard = "VMLID" set IpxCardInstance = 1 else set IpxCardInstance = *($(InstanceNumberList), $(ListIndex)) endif set IpxFrameType = $(CurrentIpxFrameType) set CommonStatus = STATUS_SUCCESSFUL else-ifstr(i) $(DLGEVENT) == "BACK" Debug-Output "Action: CANCEL. Bye." ifstr(i) $(ReConfigureIpx) == YES Debug-Output "OEMNPRNW.INF: Ipx needs a new home" set WriteParameters = YES set ListIndex = 1 set IpxCard = *($(ProductNameList), $(ListIndex)) set IpxCardNumber = *($(CardNumberList), $(ListIndex)) set DriverType = *($(DriverTypeList), $(ListIndex)) ifstr(i) $(DriverType) == "NDIS" set VMLIDCard = $(IpxCard) set VMLIDService = *($(ServiceNameList), $(ListIndex)) set IpxCard = "VMLID" set IpxCardInstance = 1 else set IpxCardInstance = *($(InstanceNumberList), $(ListIndex)) endif endif set CommonStatus = STATUS_USERCANCEL else-ifstr(i) $(DLGEVENT) == "EXIT" ; ; user selected the advanced button ; StartWait set HelpContext = $(IDH_IPXSPXPARMS) LibraryProcedure LibResult $(NwLibHandle) IPXSPXDialog Debug-Output "LibResult = "$(LibResult) ifstr(i) $(LibResult) == "CONTINUE" Debug-Output "OK hit" Set DoReboot = "YES" Set CommonStatus = STATUS_REBOOT endif goto dothedialog else Debug-Output "DLGEVENT = "$(DLGEVENT) endif ui pop 1 dowriteparameters = + ifstr(i) $(WriteParameters) == YES set IpxParametersName = $(!NTN_ServiceBase)"\"$(ProductIPXSPXName)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(IpxParametersName) $(MAXIMUM_ALLOWED) KeyIpxParameters ifstr(i) $(KeyIpxParameters) != "" SetRegValue $(KeyIpxParameters) {$(CardTypeName),$(NoTitle),$(!REG_VT_SZ),$(IpxCard)} SetRegValue $(KeyIpxParameters) {$(FrameTypeName),$(NoTitle),$(!REG_VT_SZ),$(IpxFrameType)} SetRegValue $(KeyIpxParameters) {$(CardInstance),$(NoTitle),$(!REG_VT_DWORD),$(IpxCardInstance)} SetRegValue $(KeyIpxParameters) {$(IpxNtCardInstance),$(NoTitle),$(!REG_VT_SZ),$(IpxCardNumber)} set VMLIDServiceName = $(!NTN_ServiceBase)"\"$(ProductVMLIDName) OpenRegKey $(!REG_H_LOCAL) "" $(VMLIDServiceName) $(MAXIMUM_ALLOWED) KeyVMLIDService ifstr(i) $(KeyVMLIDService) != "" ifstr(i) $(VMLIDCard) != "" ; ; Turn on VMLID and set the card to bind to ; set BindValue = "\Device\"$(VMLIDService) SetRegValue $(KeyVMLIDService) {"Bind",$(NoTitle),$(!REG_VT_SZ),$(BindValue)} SetRegValue $(KeyVMLIDService) {"Start",$(NoTitle),$(!REG_VT_DWORD),2} ; ; We are bound to an NDIS adapter so check if source routing is needed ; Ifstr(i) $(CurrentMediaType) != "ETHERNET" Shell $(NwSubsInf) NWConfigureSourceRouting "Novell" Endif else ; ; Turn off VMLID ; SetRegValue $(KeyVMLIDService) {"Start",$(NoTitle),$(!REG_VT_DWORD),4} endif CloseRegKey $(KeyVMLIDService) else endif CloseRegKey $(KeyIpxParameters) else Debug-Output "OEMNPRNW.INF: writeparameters can't open "$(IpxParametersName) endif ; ; set OdiLoad ; set OdiLoadServiceName = $(!NTN_ServiceBase)"\"$(ProductODILOADName) OpenRegKey $(!REG_H_LOCAL) "" $(OdiLoadServiceName) $(MAXIMUM_ALLOWED) KeyOdiLoadService ifstr(i) $(KeyOdiLoadService) != "" ifstr(i) $(VMLIDCard) != "" ; ; Turn off OdiLoad if Ipx is bound to an Ndis driver ; SetRegValue $(KeyOdiLoadService) {"Start",$(NoTitle),$(!REG_VT_DWORD),4} else-ifstr(i) $(NWIPInstalled) == YES ; ; If any Odi drivers are installed turn on OdiLoad otherwise ; turn it off. ; Ifcontains(i) "ODI" in $(DriverTypeList) SetRegValue $(KeyOdiLoadService) {"Start",$(NoTitle),$(!REG_VT_DWORD),2} Else SetRegValue $(KeyOdiLoadService) {"Start",$(NoTitle),$(!REG_VT_DWORD),4} Endif else ; ; Turn on OdiLoad because we must be using an Odi driver ; SetRegValue $(KeyOdiLoadService) {"Start",$(NoTitle),$(!REG_VT_DWORD),2} endif CloseRegKey $(KeyOdiLoadService) else Debug-Output "OEMNPRNW.INF: can't open OdiLoad service "$(OdiLoadServiceName) endif endif ConfigureIpxSpxEXIT = + return $(CommonStatus) $(DoReboot) ;************************************************************************* ; ; SECTION: GetInfFileNameFromRegistry ; ; PURPOSE: get the inf file name from the product' NetRules section. ; ; ARGUMENTS: $0 product key handle ; (ie, system\software\Microsoft\Lance\CurrentVersion) ; ; RETURNS: $R0 Inf file name. ; ; REFERENCES: Nothing ; ; MODIFIES: Nothing ; ; ;************************************************************************* [GetInfFileNameFromRegistry] read-syms InitBaseVars set KeyProduct = $($0) set InfName = "" OpenRegKey $(KeyProduct) "" "NetRules" $(!REG_KEY_READ) NetRuleKey Ifstr(i) $(NetRuleKey) != $(KeyNull) GetRegValue $(NetRuleKey) "InfName" NetRuleInfNameList set NetRuleInfName = *($(NetRuleInfNameList), 4) Split-String $(NetRuleInfName), "\", FilenameList QueryListSize ListSize $(FilenameList) set InfName = *($(FilenameList), $(ListSize)) CloseRegKey $(NetRuleKey) endif return $(InfName) ; ; Helper sections: service-specific installation and removal functions ; [InstallEx-AuthenticationPackage] StartWait Read-syms GeneralConstants Read-syms ExtendedConstants Set ValueName = "Authentication Packages" OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\Lsa" $(MAXIMUM_ALLOWED) KeyLsa Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Cant open LSA key for authentication package" Goto IEX_Auth_Return Endif GetRegValue $(KeyLsa) $(ValueName) AuthValueList Set AuthList = *($(AuthValueList),4) Set DoIt = 1 ForListDo $(AuthList) Ifstr(i) $($) == $(PkgName) Set DoIt = 0 Endif EndForListDo Ifint $(DoIt) == 1 Set NewAuthList = >($(AuthList),$(PkgName)) SetRegValue $(KeyLsa) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewAuthList)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Cant update LSA value for authentication package" Endif Endif CloseRegKey $(KeyLsa) IEX_Auth_Return = + Return [InstallEx-NetworkProvider] StartWait Read-syms GeneralConstants Read-syms ExtendedConstants Set ValueName = "ProviderOrder" OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\NetworkProvider\order" $(MAXIMUM_ALLOWED) KeyPro Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Cant open NetworkProvder\order key" Goto IEX_Prov_Return Endif GetRegValue $(KeyPro) $(ValueName) ProValueList Set ProString = *($(ProValueList),4) Split-string $(ProString) "," ProPieces Debug-Output "OEMNPRNW.INF: Provider list string is: "$(ProPieces) Set DoIt = 1 ForListDo $(ProPieces) Ifstr(i) $($) != "," Ifstr(i) $($) == $(ProviderName) Set DoIt = 0 Debug-Output "OEMNPRNW.INF: Provider already present" Endif Endif EndForListDo Ifint $(DoIt) == 1 Set NewPieces = "" Set NewPieces = >($(NewPieces),$(ProviderName)) ; Ifstr(i) *($(ProPieces),1) != $(KeyNull) Set NewPieces = >($(NewPieces),",") ; Endif ForListDo $(ProPieces) Set NewPieces = >($(NewPieces),$($)) EndForListDo ; Debug-Output "OEMNPRNW.INF: New provider list string is: "$(NewPieces) Set NewString = "" ForListDo $(NewPieces) Set NewString = $(NewString)$($) EndForListDo Debug-Output "OEMNPRNW.INF: New provider string is: "$(NewString) SetRegValue $(KeyPro) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),$(NewString)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't update ProviderOrder value" Endif Endif CloseRegKey $(KeyPro) OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\File Manager\AddOns" $(MAXIMUM_ALLOWED) KeyPro Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't open File Manager\AddOns key" Goto IEX_Prov_Return Endif SetRegValue $(KeyPro) {"Novell NetWare Extension",$(NoTitle),$(!REG_VT_SZ),"nwfmext.dll"} CloseRegKey $(KeyPro) IEX_Prov_Return = + Return [InstallEx-ServiceGroupOrder] StartWait Read-syms GeneralConstants Read-syms ExtendedConstants Set ValueName = "List" Set Result = NO_ERROR Set Predecessor = $($0) OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ServiceGroupOrder" $(MAXIMUM_ALLOWED) KeySgo Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) set Result = "OEMNPRNW.INF: Cant open ServiceGroupOrder key" Debug-Output $(Result) Goto IEX_Sgo_Return Endif GetRegValue $(KeySgo) $(ValueName) SgoValue Set SgoList = *($(SgoValue),4) Set NewList = {} ForListDo $(SgoList) Set Item = $($) Ifstr(i) $(Item) == $(Predecessor) Set NewList = >($(NewList),$(Item)) Ifstr(i) $(Item) == $(Predecessor) ; Add all NetWare names to the list here ForListDo $(SvcList) Set NewList = >($(NewList),$($)) EndForListDo Endif Else-Ifstr(i) $(Item) == *($(SvcList),1) ; Oops. We're in the wrong place. Don't copy us to the new list were making. ; Increment Trigger so the next item will be skipped over. Else-Ifstr(i) $(Item) == *($(SvcList),2) ; Oops. We're in the wrong place. Don't copy us to the new list were making. ; Increment Trigger so the next item will be skipped over. Else-Ifstr(i) $(Item) == *($(SvcList),3) ; Oops. We're in the wrong place. Don't copy us to the new list were making. ; Increment Trigger so the next item will be skipped over. Else Set NewList = >($(NewList),$(Item)) Endif EndForListDo SetRegValue $(KeySgo) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewList)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) set Result = "OEMNPRNW.INF: Cant update ServiceGroupOrder value" Debug-Output $(Result) Endif CloseRegKey $(KeySgo) IEX_Sgo_Return = + Return $(Result) ; ; Install the NetWare print provider ; [InstallEx-NetWarePrintServices] StartWait Read-syms GeneralConstants Read-syms ExtendedConstants Set ValueName = "Name" Set OrderName = "Order" OpenRegKey $(!REG_H_LOCAL) "" $(PrintProvider) $(MAXIMUM_ALLOWED) KeyPrint Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Cant open "$(PrintProvider)" key" Goto IEX_Nps_Return Endif CreateRegKey $(KeyPrint) {$(NetWarePrintProviderName),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyProvider Ifint $(RegLastError) != !(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: NetWare Print Services already install." OpenRegKey $(KeyPrint) "" $(NetWarePrintProviderName) $(MAXIMUM_ALLOWED) KeyProvider Endif SetRegValue $(KeyProvider) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),"nwspool.dll"} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't update NetWare Print Services value" Endif GetRegValue $(KeyPrint) $(OrderName) PrintProviderOrder Set ProviderOrderList = *($(PrintProviderOrder), 4) Set DoIt = 1 ForListDo $(ProviderOrderList) Set Item = $($) Ifstr(i) $(Item) == $(NetWarePrintProviderName) ; We're already in the list Set DoIt = 0 Endif EndForListDo Ifint $(DoIt) == 1 Set ProviderOrderList = >($(ProviderOrderList), $(NetWarePrintProviderName)) SetRegValue $(KeyPrint) {$(OrderName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(ProviderOrderList)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Cant update Print Providers Order value" Endif Endif CloseRegKey $(KeyProvider) CloseRegKey $(KeyPrint) IEX_Nps_Return = + Return [FinishInstalling-NWFS] read-syms GeneralConstants read-syms FileConstants Set WorkStationHandle = $($0) Set KeyParameters = $($1) Set KeyLinkage = $($2) Set TransportSelected = $($5) ; Check for the pre-alpha nwfs key if it exists delete it we are now using ; the key NetWareWorkStation ; set NetWareFileSystem = "Nwfs" set PreAlphaWorkstation = $(!NTN_ServiceBase)"\"$(NetWareFileSystem) OpenRegKey $(!REG_H_LOCAL) "" $(PreAlphaWorkstation) $(MAXIMUM_ALLOWED) KeyWorkstation Ifstr(i) $(KeyWorkstation) != "" CloseRegKey $(KeyWorkstation) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices Ifstr(i) $(KeyServices) == "" Debug-Output "OEMNPRNW.INF: Delete Nwfs, Can't open "$(!NTN_ServiceBase) Else DeleteRegTree $(KeyServices) $(NetWareFileSystem) CloseRegKey $(KeyServices) Endif Endif SetRegValue $(KeyLinkage) {"OtherDependencies",$(NoTitle),$(!REG_VT_MULTI_SZ),{"Mup","+NetWare Services"}} CreateRegKey $(WorkStationHandle) {"NetworkProvider",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" ProviderHandle Ifstr(i) $(ProviderHandle) == "" Debug-Output "OEMNPRNW.INF: Can't create NetWareWorkstation\NetworkProvider" OpenRegValue $(WorkStationHandle) "" "NetworkProvider" $(MAXIMUM_ALLOWED) ProviderHandle Ifstr(i) $(ProviderHandle) == "" goto FIN_NWWS_Return Endif Endif SetRegValue $(ProviderHandle) {"Class",$(NoTitle),$(!REG_VT_DWORD),"3"} SetRegValue $(ProviderHandle) {"Name",$(NoTitle),$(!REG_VT_SZ),"NetWare Services"} SetRegValue $(ProviderHandle) {"ProviderPath",$(NoTitle),$(!REG_VT_EXPAND_SZ),$(System32Root)"NETWARE.DLL"} SetRegValue $(ProviderHandle) {"DeviceName",$(NoTitle),$(!REG_VT_SZ),"\Device\NetWareWorkstation"} SetRegValue $(KeyParameters) {"Retry Count",$(NoTitle),$(!REG_VT_DWORD),16} SetRegValue $(KeyParameters) {"Burst Mode",$(NoTitle),$(!REG_VT_DWORD),1} SetRegValue $(KeyParameters) {"First Time Install",$(NoTitle),$(!REG_VT_DWORD),1} CloseRegKey $(ProviderHandle) Debug-Output "2: TransportSelected = "$(TransportSelected) Ifstr(i) $(TransportSelected) == "NWLINK" Debug-Output "Set registry for NWLINK, KeyParameters = "$(KeyParameters) SetRegValue $(KeyParameters) {"IPX TDI Provider",$(NoTitle),$(!REG_VT_SZ),"\Device\Streams\NWLINKIPX"} Endif FIN_NWWS_Return = + Return [FinishInstalling-IPXSPX] read-syms GeneralConstants read-syms FileConstants read-syms IpxSpxConstants set ParmKey = $($1) set LinkageKey = $($2) ; set Parameters SetRegValue $(ParmKey) {$(CardTypeName),$(NoTitle),$(!REG_VT_SZ),$(CardName)} SetRegValue $(ParmKey) {$(CardInstance),$(NoTitle),$(!REG_VT_DWORD),$(CardInstanceNum)} SetRegValue $(ParmKey) {"Session Count",$(NoTitle),$(!REG_VT_DWORD),48} SetRegValue $(ParmKey) {"Window Size",$(NoTitle),$(!REG_VT_DWORD),3} SetRegValue $(ParmKey) {"Retry Count",$(NoTitle),$(!REG_VT_DWORD),10} SetRegValue $(ParmKey) {"Retry Delay Timeout",$(NoTitle),$(!REG_VT_DWORD),0} SetRegValue $(ParmKey) {"Watchdog Abort Timeout",$(NoTitle),$(!REG_VT_DWORD),30} SetRegValue $(ParmKey) {"Watchdog Listen Timeout",$(NoTitle),$(!REG_VT_DWORD),6} SetRegValue $(ParmKey) {"Watchdog Verify Timeout",$(NoTitle),$(!REG_VT_DWORD),3} ; set Linkage SetRegValue $(LinkageKey) {$(BindValueName),$(NoTitle),$(!REG_VT_SZ),"\DEVICE\IPXSPX"} Shell $(UtilityInf) AddWinsockInfo $(ProductIPXSPXName) "wshnw.dll" "14" "14" ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: AddWinsockInfo ShellCode error "$($ShellCode) endif ; Check for the pre-alpha Ipx service key if it exists delete it. We are now ; using the key IpxSpx ; set PreAlphaIpxName = "Ipx" set PreAlphaIpxService = $(!NTN_ServiceBase)"\"$(PreAlphaIpxName) OpenRegKey $(!REG_H_LOCAL) "" $(PreAlphaIpxService) $(MAXIMUM_ALLOWED) KeyIpx Ifstr(i) $(KeyIpx) != "" CloseRegKey $(KeyIpx) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices Ifstr(i) $(KeyServices) == "" Debug-Output "OEMNPRNW.INF: Delete Ipx, Can't open "$(!NTN_ServiceBase) Else DeleteRegTree $(KeyServices) $(PreAlphaIpxName) FlushRegKey $(KeyServices) CloseRegKey $(KeyServices) Endif Endif Return [FinishInstalling-LSL] Return [FinishInstalling-RESMGR] Return [FinishInstalling-ODILOAD] Set KeyLinkage = $($2) SetRegValue $(KeyLinkage) {"OtherDependencies",$(NoTitle),$(!REG_VT_MULTI_SZ),{"+ODI"}} Return [FinishInstalling-MUP] Return [FinishInstalling-TDI] Return [FinishInstalling-SPXAPI] Return [FinishInstalling-IPXAPI] Return [FinishInstalling-ROUTE] Return [FinishInstalling-RECONNECT] Return [FinishInstalling-VMLID] Return [FinishInstalling-NWPOPUP] Debug-Output "FinishInstalling-NWPOPUP" set KeyNwPop = $($0) FlushRegKey $(KeyNwPop) ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)\NwPopUp $(MAXIMUM_ALLOWED) KeyNwPop Ifstr(i) $(KeyNwPop) != "" Debug-Output "Opened Key NWPOPUP" GetRegValue $(KeyNwPop) "Type" ValueTypeList Debug-Output "TypeList = "$(ValueTypeList) set ValueType = *($(ValueTypeList), 4) Debug-Output "Type = "$(ValueType) set-add ValueType = $(ValueType),256 SetRegValue $(KeyNwPop) {"Type",$(NoTitle),$(!REG_VT_DWORD),$(ValueType)} ; CloseRegKey $(KeyNwPop) Endif Endif Return [FinishInstalling-ODINSUP] Return [ProgressCopyENG] !p:ProCaption = "NetWare for Windows NT Setup" !p:ProCancel = "Cancel" !p:ProCancelMsg = "NetWare for Windows NT is not correctly installed. Are you sure you want "+ "to cancel copying files?" !p:ProCancelCap = "Setup Message" !p:ProText1 = "Copying:" !p:ProText2 = "To:" !p:Error = "Unable to determine proper source disk location; copy cannot be performed." [DoAskSource] Set DAS_CWDDIR = $($0) Set DAS_SRCDIR = $($1) Set DAS_BUILTIN = $($2) Set DAS_Result = STATUS_FAILED Ifstr(i) $(!STF_SRCDIR_OVERRIDE) != "" Set DAS_SRCDIR = $(!STF_SRCDIR_OVERRIDE) Set DAS_Result = STATUS_SUCCESSFUL Goto DAS_exit Endif Ifstr(i) $(DAS_BUILTIN) == YES Ifstr(i) $(!NTN_InstallPhase) == primary Ifstr(i) $(!STF_SRCDIR_WINNT) != "" Set DAS_SRCDIR = $(!STF_SRCDIR_WINNT) Endif Set DAS_Result = STATUS_SUCCESSFUL Goto DAS_exit Endif Endif Debug-Output "OEMNPRNW.INF: [DoAskSource] STF_CWDDIR = "$(DAS_CWDDIR)" STF_SRCDIR = "$(DAS_SRCDIR) Ifstr(i) $(DAS_SRCDIR) == "" Set DAS_SRCDIR = "A:\" Endif Ifstr(i) $(DAS_SRCDIR) == $(!STF_SRCDIR_USED) Set DAS_SRCDIR = $(!STF_SRCDIR_KEYED) Endif Set NetWareDlgText = "Please enter the full path of the NetWare for Windows NT distribution "+ "files. Then choose Continue." Shell "subroutn.inf" DoAskSourceEx $(DAS_SRCDIR) $(NetWareDlgText) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "UTILITY.INF: shelling SUBROUTN.INF [DoAskSource] failed" goto DAS_exit endif Set DAS_Result = $($R0) Set DAS_SRCDIR = $($R1) Set !STF_SRCDIR_USED = $($R1) Set !STF_SRCDIR_KEYED = $($R3) DAS_exit =+ Read-syms ProgressCopy$(!STF_LANGUAGE) Return $(DAS_Result) $(DAS_SRCDIR) ;*************************************************************** ; INSTALL SECTIONS ;*************************************************************** [CreateNetWareGroup] set NetWareGroup = "NetWare" CreateCommonProgManGroup $(NetWareGroup) "" RemoveCommonProgManGroup $(NetWareGroup) CreateCommonProgManGroup $(NetWareGroup) "" ShowCommonProgManGroup $(NetWareGroup), 1 CreateCommonProgmanItem "NetWare", "DOS Support" "%SystemRoot%\netware.pif" "%SystemRoot%\system32\nwsetup.dll" 1 CreateCommonProgmanItem "NetWare", "Getting Started" "winhlp32 %SystemRoot%\system32\netware\readme.hlp" "" 0 ; ; Minimize the group ; ShowCommonProgManGroup $(NetWareGroup), 6 Exit [Install-NetWare-Dir] CreateDir $(!STF_WINDOWSSYSPATH)\NetWare CreateDir $(!STF_WINDOWSSYSPATH)\NLS CreateDir $(!STF_WINDOWSSYSPATH)\NLS\English Exit [Install-Option] set STF_VITAL = "" set STF_OVERWRITE = "VERIFYSOURCEOLDER" Debug-Output "OEMNPRNW.INF: Language directory to use: LANGUAGE = "$(LANGUAGE) Debug-Output "OEMNPRNW.INF: Install-FirstFiles: AddCopy = "$(AddCopy) Debug-Output "OEMNPRNW.INF: Install-FirstFiles: DoCopy = "$(DoCopy) Debug-Output "OEMNPRNW.INF: STF_WINDOWSPATH = "$(!STF_WINDOWSPATH) Debug-Output "OEMNPRNW.INF: STF_NTPATH = "$(!STF_NTPATH) Ifstr(i) $(AddCopy) == "YES" ; ; Add the files to the copy list ; AddSectionFilesToCopyList Files-FirstFiles $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Readme $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware AddSectionFilesToCopyList Files-NWSETUP $(SrcDir)$(!STF_PLATFORM) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-CLEAN $(SrcDir)$(!STF_PLATFORM) $(!STF_WINDOWSSYSPATH)\netware AddSectionFilesToCopyList Files-Help $(SrcDir)$(!STF_PLATFORM)\nls\english $(!STF_WINDOWSSYSPATH)\nls\english AddSectionFilesToCopyList Files-Messages $(SrcDir)$(!STF_PLATFORM)\nls\english $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-16bitLibs $(SrcDir)I386\libs16 $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Unicode $(SrcDir)I386\nls $(!STF_WINDOWSSYSPATH)\nls AddSectionFilesToCopyList Files-System32-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM)\redir $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Inf-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-NtRoot-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM)\redir $(!STF_WINDOWSPATH) AddSectionFilesToCopyList Files-NetWare-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM)\redir $(!STF_WINDOWSSYSPATH)\netware AddSectionFilesToCopyList Files-Drivers-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM)\redir $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Libs-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM)\libs32 $(!STF_WINDOWSSYSPATH) Endif Ifstr(i) $(DoCopy) == "YES" ; ; Copy files in the copy list ; set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList Endif Exit [Install-Update] set STF_VITAL = "" AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-FirstFiles $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Readme $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware AddSectionFilesToCopyList Files-NWSETUP $(SrcDir)$(!STF_PLATFORM) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-CLEAN $(SrcDir)$(!STF_PLATFORM) $(!STF_WINDOWSSYSPATH)\netware AddSectionFilesToCopyList Files-Help $(SrcDir)$(!STF_PLATFORM)\nls\english $(!STF_WINDOWSSYSPATH)\nls\english AddSectionFilesToCopyList Files-Messages $(SrcDir)$(!STF_PLATFORM)\nls\english $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-16bitLibs $(SrcDir)I386\libs16 $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Unicode $(SrcDir)I386\nls $(!STF_WINDOWSSYSPATH)\nls AddSectionFilesToCopyList Files-System32-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM)\redir $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Inf-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-NtRoot-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM)\redir $(!STF_WINDOWSPATH) AddSectionFilesToCopyList Files-NetWare-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM)\redir $(!STF_WINDOWSSYSPATH)\netware AddSectionFilesToCopyList Files-Drivers-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM)\redir $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Libs-$(!STF_PLATFORM) $(SrcDir)$(!STF_PLATFORM)\libs32 $(!STF_WINDOWSSYSPATH) ; ; Copy files in the copy list ; set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList Exit [Install-CheckFileExists] Debug-Output "OEMNPRNW.INF: FiletoCheck = "$(FileToCheck) LibraryProcedure STATUS,$(!LIBHANDLE), CheckFileExistance $(FileToCheck) Debug-Output "OEMNPRNW.INF: CheckFileExists STATUS = "$(STATUS) exit [DialogConstantsENG] Help = "&Help" Exit = "&Cancel" OK = "&OK" HelpContext = "" Continue = "Con&tinue" Cancel = "&Cancel" Advanced = "&Advanced" IDH_NETWAREWRKSTATIONPARMS = 901 IDH_NETWAREIPXBIND = 902 IDH_IPXSPXPARMS = 903 IDH_NETWORKPROTOCOL = 904 IDH_NETWAREODISETTINGS = 905 IDH_NETWARECLIENTINSTALL = 906 IDH_NETWARENDISODI = 907 IDH_NODEADDRESSOVERIDE = 908 IDH_NWIP = 909 IDH_RESMGRCONFIG = 951 [ResMgrDlgENG] DlgType = "RadioCombination" DlgTemplate = "RESMGR_CONFIG" Caption = "Resource Manager Configuration" CBOptionGreyed = {} RadioOptionGreyed = {} HelpContext = $(IDH_RESMGRCONFIG) Label1 = "Communication Buffers" ComboListItemsIn = {} ComboListItemsOut = {} NotifyFields = {} EditTextIn = { $(CommunicationBuffers) } EditTextLim = { 3 } [IpxCardFrameDlgENG] DlgType = "RadioCombination" DlgTemplate = "NEW_IPXFRAME" Caption = "IPX Configuration" EditTextIn = "" EditTextLim = "" CBOptionsGreyed = {} HelpContext = $(IDH_NETWAREIPXBIND) Label1 = "Pick the frame type to bind IPX to" Label2 = "Driver" Label3 = "Frame" ComboListItemsIn = {} ComboListItemsOut = {} NotifyFields = {"YES","NO"} [NdisDlgENG] IDH_NETWARENDISODI = 907 Help = "&Help" OK = "OK" Continue = "Continue" Cancel = "Cancel" DlgType = "RadioCombination" DlgTemplate = "ONELIST" Caption = "Choose the Driver to Bind with" Label1 = "Installed NDIS Adapters" EditTextIn = "" EditTextLim = "" CBOptionsGreyed = {} HelpContext = $(IDH_NETWARENDISODI) ComboListItemsIn = { NdisTitleList } ComboListItemsOut = { DefaultTitle } NotifyFields = { "NO" } [VMLIDIPXDlgENG] DlgType = "RadioCombination" Label1 = "Enter the default frame type to bind to IPX" Label2 = "Board" Label3 = "Frame" DlgTemplate = "IPXFRAME" Caption = "IPX Bind Parameters" EditTextIn = "" EditTextLim = "" CBOptionsGreyed = {} RadioOptionsGreyed = {} HelpContext = $(IDH_NETWAREIPXBIND) ComboOut = $(FrameListDefault) ComboListItemsIn = { FrameList } ComboListItemsOut = { ComboOut } NotifyFields = { "NO" } [OdinsupDlgENG] DlgType = "RadioCombination" DlgTemplate = "ONELIST" Caption = "NetWare NDIS over ODI (ODINSUP) Setup" Label1 = "Installed ODI Adapters" EditTextIn = "" EditTextLim = "" CBOptionsGreyed = {} HelpContext = $(IDH_NETWARENDISODI) ComboListItemsIn = { OdiTitleList } ComboListItemsOut = { DefaultOdiTitle } NotifyFields = { "NO" } [Source Media Descriptions] 1 = "NetWare Client for Windows NT Disk 1" , TAGFILE = NTCLNT_1 2 = "NetWare Client for Windows NT Disk 2" , TAGFILE = NTCLNT_2 3 = "NetWare Client for Windows NT MIPS Disk" , TAGFILE = NTCLNT_3 4 = "NetWare Client for Windows NT ALPHA Disk" , TAGFILE = NTCLNT_4 [Files-Inf] 1, oemsetup.inf, SIZE=50000, RENAME=$(!UG_Filename) [Files-Readme] 1, readme.hlp, SIZE=30000 [Files-FirstFiles] 1, nwsubs.inf, SIZE=30000, DECOMPRESS [Files-CLEAN] 1, clean.exe, SIZE=50000 [Files-NWSETUP] 1, nwsetup.dll, SIZE=50000 [Files-Help] 1, tokentsm.msg, SIZE=50000, DECOMPRESS 1, ethertsm.msg, SIZE=50000, DECOMPRESS 1, fdditsm.msg, SIZE=50000, DECOMPRESS 1, nwnthelp.hlp, SIZE=30000, DECOMPRESS 1, nwcpl.hlp, SIZE=30000, DECOMPRESS 1, netwarer.dll, SIZE=50000, DECOMPRESS 1, nwcplr.dll, SIZE=50000, DECOMPRESS [Files-Messages] 1, vipx.msg, SIZE=50000, DECOMPRESS 1, netx.msg, SIZE=50000, DECOMPRESS [Files-16bitLibs] 1, nwcalls.dll, SIZE=20000, DECOMPRESS 1, nwnet.dll, SIZE=20000, DECOMPRESS 1, nwlocale.dll, SIZE=20000, DECOMPRESS 1, nwncp.dll, SIZE=20000, DECOMPRESS 1, nwclient.dll, SIZE=20000, DECOMPRESS 1, nwipxspx.dll, SIZE=50000, DECOMPRESS 1, netware.drv, SIZE=20000, DECOMPRESS [Files-Unicode] 1, 1252_uni.001, SIZE=500, DECOMPRESS 1, 437_uni.001, SIZE=500, DECOMPRESS 1, uni_850.001, SIZE=3000, DECOMPRESS 1, uni_mon.001, SIZE=5000, DECOMPRESS 1, uni_437.001, SIZE=3000, DECOMPRESS 1, uni_1252.001, SIZE=3000, DECOMPRESS 1, uni_col.001, SIZE=5000, DECOMPRESS 1, 850_uni.001, SIZE=500, DECOMPRESS [Files-System32-I386] 1, netware.dll, SIZE=50000, DECOMPRESS 1, nwapi32.dll, SIZE=50000, DECOMPRESS 1, nwfmext.dll, SIZE=50000, DECOMPRESS 1, nwevents.dll, SIZE=20000, DECOMPRESS 1, nwspool.dll, SIZE=30000, DECOMPRESS 1, nwv1_0.dll, SIZE=20000, DECOMPRESS 1, psapi32.dll, SIZE=20000, DECOMPRESS 1, wshnw.dll, SIZE=20000, DECOMPRESS 1, nwcpl.cpl, SIZE=20000, DECOMPRESS 1, ipxapi.dll, SIZE=20000, DECOMPRESS 1, spxapi.dll, SIZE=20000, DECOMPRESS ;1, nwshell.exe, SIZE=2000, DECOMPRESS 1, nwauto.nt, SIZE=1000, DECOMPRESS 1, nwconfig.nt, SIZE=1000, DECOMPRESS 1, vipx.exe, SIZE=50000, DECOMPRESS 1, netx.exe, SIZE=50000, DECOMPRESS 1, vipxvdd.dll, SIZE=50000, DECOMPRESS 1, ipxspx32.dll, SIZE=50000, DECOMPRESS 1, nwdrvvdd.dll, SIZE=50000, DECOMPRESS 1, nwpfctrs.dll, SIZE=50000, DECOMPRESS 1, lslstats.h,SIZE=50000, DECOMPRESS 1, lslstats.ini,SIZE=50000, DECOMPRESS 1, rdrstats.ini,SIZE=50000, DECOMPRESS 1, rdrstats.h,SIZE=50000, DECOMPRESS 1, odistats.ini,SIZE=50000, DECOMPRESS 1, odistats.h,SIZE=50000, DECOMPRESS [Files-Inf-I386] 1, oemnadna.inf, SIZE=50000, DECOMPRESS 1, oemnadnb.inf, SIZE=50000, DECOMPRESS 1, oemnadnc.inf, SIZE=50000, DECOMPRESS 1, oemnadnd.inf, SIZE=50000, DECOMPRESS 1, odinsup.inf SIZE=30000, DECOMPRESS 1, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-NtRoot-I386] 1, netware.pif, SIZE=10000, DECOMPRESS [Files-NetWare-I386] 1, resmgr.sys, SIZE=50000, DECOMPRESS 1, nwfs.sys, SIZE=120000, DECOMPRESS 1, ipxspx.sys, SIZE=100000, DECOMPRESS 1, odiload.sys, SIZE=50000, DECOMPRESS 1, lsl.sys, SIZE=50000, DECOMPRESS 1, ethertsm.nlm, SIZE=20000, DECOMPRESS 1, tokentsm.nlm, SIZE=20000, DECOMPRESS 1, fdditsm.nlm, SIZE=20000, DECOMPRESS 1, route.sys, SIZE=20000, DECOMPRESS 1, spxapi.sys, SIZE=20000, DECOMPRESS 1, ipxapi.sys, SIZE=20000, DECOMPRESS 1, reconsvc.exe, SIZE=20000, DECOMPRESS 1, vmlid.sys, SIZE=50000, DECOMPRESS 1, nwip.sys, SIZE=50000, DECOMPRESS 1, nwmsgsvc.exe, SIZE=50000, DECOMPRESS [Files-Drivers-I386] 1, odinsup.sys, SIZE=50000, DECOMPRESS [Files-Libs-I386] 2, nwcvdd.dll, SIZE=50000, DECOMPRESS 2, calwin32.dll, SIZE=20000, DECOMPRESS 2, netwin32.dll, SIZE=20000, DECOMPRESS 2, locwin32.dll, SIZE=20000, DECOMPRESS 2, ncpwin32.dll, SIZE=20000, DECOMPRESS 2, clnwin32.dll, SIZE=20000, DECOMPRESS 2, supwin32.dll, SIZE=20000, DECOMPRESS 2, nwpsrv32.dll, SIZE=20000, DECOMPRESSDownload 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.