home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 January / CHIPCD1_98.iso / software / testsoft / nds / i386 / nls / english / oemnprnw.inf < prev    next >
INI File  |  1997-10-08  |  310KB  |  8,648 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMNPRNW.INF
  4. ;
  5. ;    Novell IntranetWare Client for Windows NT base installation INF
  6. ;
  7. ;
  8. ;***********************************************************************
  9.  
  10. ;
  11. ; The following is the version info for Novell
  12. ;
  13.  
  14. ;VeRsIoN=v4.12 Novell Client Install for Windows NT (970923)
  15. ;CoPyRiGhT=copyright 1992-1997, by Novell, INC. All rights reserved.
  16.  
  17. ;-----------------------------------------------------------------------
  18. ; OPTION TYPE
  19. ; -----------
  20. ; This identifies the Option type we are dealing with.  The different
  21. ; possible types are:
  22. ;
  23. ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  24. ;
  25. ;  Types specific to networking:
  26. ;
  27. ; NetAdapter,        a netcard / adapter combination or just a netcard
  28. ; NetDriver,        just a netcard driver
  29. ; NetTransport,    a complete NDIS-compliant TDI transport stack
  30. ; NetService,        an NT networking service
  31. ; NetWork,            a complete network ensemble.
  32. ; NetProvider,        a complete network which supports NT MPR protocol
  33. ;-----------------------------------------------------------------------
  34.  
  35. [Identification]
  36.     OptionType = NetProvider
  37.  
  38.  
  39. ;-----------------------------------------------------------------------
  40. ; OPTION LIST
  41. ; -----------
  42. ; This section lists the OEM Option key names.  These keys are locale
  43. ; independent and used to represent the option in a locale independent
  44. ; manner.
  45. ;
  46. ;-----------------------------------------------------------------------
  47.  
  48. [Options]
  49.     NWFS
  50.  
  51.  
  52. [InitBaseVars]
  53.     KeyNull                    = ""
  54.     MAXIMUM_ALLOWED        = 33554432
  55.     KeyInfo                    = {}
  56.     RegistryErrorIndex    = NO_ERROR
  57.     NoTitle                    = 0
  58.     
  59.     CurrentControlSet        = "SYSTEM\CurrentControlSet"
  60.     ServicesBaseName        = $(CurrentControlSet)"\Services"
  61.  
  62.  
  63. [OdiNSupVars]
  64.     OdiNSupServiceName    = "ODINSUP"
  65.     OdiNSupParameters        = $(!NTN_ServiceBase)"\"$(OdiNSupServiceName)"\Parameters"
  66.     OdiNSupLinkage            = $(!NTN_ServiceBase)"\"$(OdiNSupServiceName)"\Linkage"
  67.     OdiNSupCardName        = "Bind"
  68.     OdiNSupCardInstance    = "BoardInstance"
  69.  
  70.  
  71. [OdiVars]
  72.     OdiLoadDriverName        = "OdiLoad"
  73.     OdiModules                = "ODI_Modules"
  74.     OdiLinkName                = "OdiLoadName"
  75.     OdiModuleName            = $(!NTN_ServiceBase)"\"$(OdiLoadDriverName)"\"$(OdiModules)
  76.     NetworkCardsKeyName    = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
  77.  
  78.  
  79. [CurrentVersion]
  80.     MajorVersion            = 4
  81.     MinorVersion            = 12
  82.     ProductVersion            = $(MajorVersion)"."$(MinorVersion)
  83.  
  84.  
  85. ;-----------------------------------------------------------------------
  86. ; CONSTANTS FOR USING DIALOGS
  87. ;-----------------------------------------------------------------------
  88.  
  89. [FileConstants]
  90.     ;
  91.     ;  File names, etc.
  92.     ;
  93.     
  94.     UtilityInf        = "UTILITY.INF"
  95.     subroutineinf    = "SUBROUTN.INF"
  96.     NwSubsInf        = "NWSUBS.INF"
  97.     NwLangIdDll        = "NWLANGID.DLL"
  98.     NwSetupDll        = "nwsetup.dll"
  99.     SoftwareType    = "service"
  100.     Exit_Code        = 0
  101.     
  102.     ;
  103.     ; Product Info
  104.     ;
  105.     
  106.     Manufacturer            = "Novell"
  107.     UserModeRoot            = "%SystemRoot%"
  108.     System32Root            = $(UserModeRoot)"\System32"
  109.     SoftwareBinHome        = $(System32Root)"\NetWare\"
  110.     DriverBinHome            = $(System32Root)"\Drivers\"
  111.     NetWareEventFile        = $(System32Root)"\nls\"$(NLSDirName)"\nwevents.dll"
  112.     ODINetWareEventFile    = $(System32Root)"\nls\"$(NLSDirName)"\odintmsg.dll"
  113.     
  114.     ;
  115.     ; Services
  116.     ;
  117.     
  118.     ;
  119.     ; MUP: if not already installed
  120.     ;
  121.     
  122.     ProductMUPDisplayName        = "Mup"
  123.     ProductMUPTitle                = "Mup"
  124.     ProductMUPControl                = service
  125.     ProductMUPHidden                = 0
  126.     ProductMUPInstrumentation    = FALSE
  127.     ProductMUPName                    = "Mup"
  128.     ProductMUPImagePath            = "\SystemRoot\System32\drivers\mup.sys"
  129.     ProductMUPSvcType                = "transport"
  130.     ProductMUPGroup                = "Network"
  131.     ProductMUPDependList            = {}
  132.     ProductMUPEventFile            = ""
  133.     
  134.     ;
  135.     ; TDI: if not already installed
  136.     ;
  137.     
  138.     ProductTDIDisplayName        = "Tdi"
  139.     ProductTDITitle                = "Tdi"
  140.     ProductTDIControl                = service
  141.     ProductTDIHidden                = 0
  142.     ProductTDIInstrumentation    = FALSE
  143.     ProductTDIName                    = "Tdi"
  144.     ProductTDIImagePath            = "\SystemRoot\System32\drivers\TDI.sys"
  145.     ProductTDISvcType                = "kernelauto"
  146.     ProductTDIGroup                = "Network"
  147.     ProductTDIDependList            = {}
  148.     ProductTDIEventFile            = ""
  149.     
  150.     ;
  151.     ; SpxApi: Driver for Spx Api's.
  152.     ;
  153.     
  154. ;    ProductSPXAPIControl                = service
  155. ;    ProductSPXAPIHidden                = 0
  156. ;    ProductSPXAPIInstrumentation    = TRUE
  157. ;    ProductSPXAPIName                    = "SpxApi"
  158. ;    ProductSPXAPIImagePath            = $(SoftwareBinHome)spxapi.sys
  159. ;    ProductSPXAPISvcType                = "systemauto"
  160. ;    ProductSPXAPIGroup                = ""
  161. ;    ProductSPXAPIDependList            = {"+TDI"}
  162. ;    ProductSPXAPIEventFile            = $(NetWareEventFile)
  163.     
  164.     ;
  165.     ; IpxApi: Driver for Ipx Api's.
  166.     ;
  167.     
  168. ;    ProductIPXAPIControl                = service
  169. ;    ProductIPXAPIHidden                = 0
  170. ;    ProductIPXAPIInstrumentation    = TRUE
  171. ;    ProductIPXAPIName                    = "IpxApi"
  172. ;    ProductIPXAPIImagePath            = $(SoftwareBinHome)ipxapi.sys
  173. ;    ProductIPXAPISvcType                = "systemauto"
  174. ;    ProductIPXAPIGroup                = ""
  175. ;    ProductIPXAPIDependList            = {"+TDI"}
  176. ;    ProductIPXAPIEventFile            = $(NetWareEventFile)
  177.     
  178.     ;
  179.     ; NWSIPX32: Driver for Sipx Api's.
  180.     ;
  181.     
  182.     ProductNWSIPX32Control                = service
  183.     ProductNWSIPX32Hidden                = 0
  184.     ProductNWSIPX32Instrumentation    = TRUE
  185.     ProductNWSIPX32Name                    = "NWSIpx32"
  186.     ProductNWSIPX32ImagePath            = $(SoftwareBinHome)nwsipx32.sys
  187.     ProductNWSIPX32SvcType                = "systemauto"
  188.     ProductNWSIPX32Group                    = ""
  189.     ProductNWSIPX32DependList            = {"NwlnkIpx", "NwlnkSpx", "+NetWare Services", "+TDI"}
  190.     ProductNWSIPX32EventFile            = $(NetWareEventFile)
  191.     
  192.     ;
  193.     ; SRoute: ODI Source Routing
  194.     ;
  195.     
  196.     ProductSROUTEControl                = service
  197.     ProductSROUTEHidden                = 0
  198.     ProductSROUTEInstrumentation    = FALSE
  199.     ProductSROUTEName                    = "OdiSourceRouting"
  200.     ProductSROUTEImagePath            = $(SoftwareBinHome)sroute.sys
  201.     ProductSROUTESvcType                = "kerneldisable"
  202.     ProductSROUTEGroup                = ""
  203.     ProductSROUTEDependList            = {"+ODI Drivers"}
  204.     ProductSROUTEEventFile            = $(ODINetWareEventFile)
  205.     
  206.     ;
  207.     ; NwFs: NetWare Workstation
  208.     ;
  209.     
  210.     ProductNWFSControl                = component
  211.     ProductNWFSHidden                    = 0
  212.     ProductNWFSReviewBindings        = 1
  213.     ProductNWFSInstrumentation        = TRUE
  214.     ProductNWFSName                    = "NetWareWorkstation"
  215.     ProductNWFSImagePath                = $(SoftwareBinHome)nwfs.sys
  216.     ProductNWFSSvcType                = "systemauto"
  217.     ProductNWFSSoftType                = "service"
  218.     ProductNWFSGroup                    = "NetworkProvider"
  219.     ProductNWFSDependList            = {"+TDI", "+NetWare Services", "Mup", "NwlnkIpx"}
  220.     ProductNWFSEventFile                = $(NetWareEventFile)
  221.     ProductNWFSKeySoftware            = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductNWFSName)"\CurrentVersion"
  222.     
  223.     NetRuleNWFSSoftwareType            = "nwfs nwFileSys"
  224.     NetRuleNWFSSoftwareUse            = "service yes yes"
  225.     NetRuleNWFSSoftwareBindForm    = """Nwfs"" yes yes container"
  226.     NetRuleNWFSSoftwareClass        = {"nwFileSys basic"}
  227.     NetRuleNWFSSoftwareBindable    = {"nwFileSys ipxTransport non non 100"}
  228.  
  229. ;    ;
  230. ;    ; IpxSpx: Transport
  231. ;    ;
  232. ;    
  233. ;    ProductIPXSPXControl                = component
  234. ;    ProductIPXSPXHidden                = 0
  235. ;    ProductIPXSPXInstrumentation    = TRUE
  236. ;    ProductIPXSPXName                    = "IpxSpx"
  237. ;    ProductIPXSPXImagePath            = $(SoftwareBinHome)ipxspx.sys
  238. ;    ProductIPXSPXSvcType                = "kernelautostart"
  239. ;    ProductIPXSPXSoftType            = "transport"
  240. ;    ProductIPXSPXGroup                = "TDI"
  241. ;    ProductIPXSPXDependList            = {"+ODI Drivers"}
  242. ;    ProductIPXSPXEventFile            = $(NetWareEventFile)
  243. ;    ProductIPXSPXKeySoftware        = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductIPXSPXName)"\CurrentVersion"
  244. ;    
  245. ;    NetRuleIPXSPXSoftwareType        = "ipxspx nwTransport"
  246. ;    NetRuleIPXSPXSoftwareUse        = "transport yes yes"
  247. ;    NetRuleIPXSPXSoftwareBindForm    = """IpxSpx"" yes yes simple"
  248. ;    NetRuleIPXSPXSoftwareClass        = {"nwTransport basic"}
  249. ;    NetRuleIPXSPXSoftwareBindable    = {"nwTransport nwOdiLoader non non 80", +
  250. ;                                                "nwTransport nwNwIPDriver non non 90", +
  251. ;                                                "nwTransport nwOdiVMIDDriver non non 70"}
  252.  
  253.     ;
  254.     ; OdiLoad: ODI Adapter Driver Loader.
  255.     ;
  256.     
  257.     ProductODILOADControl            = component
  258.     ProductODILOADHidden                = 1
  259.     ProductODILOADInstrumentation    = TRUE
  260.     ProductODILOADName                = "OdiLoad"
  261.     ProductODILOADImagePath            = $(SoftwareBinHome)odiload.sys
  262.     ProductODILOADSvcType            = "kerneldisable"
  263.     ProductODILOADSoftType            = "driver"
  264.     ProductODILOADGroup                = "ODI Drivers"
  265.     ProductODILOADDependList        = {"+ODI"}
  266.     ProductODILOADEventFile            = $(ODINetWareEventFile)
  267.     ProductODILOADKeySoftware        = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductODILOADName)"\CurrentVersion"
  268.     
  269.     NetRuleODILOADSoftwareType            = "odiLoad nwOdiLoader"
  270.     NetRuleODILOADSoftwareUse            = "driver yes yes"
  271.     NetRuleODILOADSoftwareBindForm    = """Odiload"" yes yes simple"
  272.     NetRuleODILOADSoftwareClass        = {"nwOdiLoader basic","nwAdapter basic yes"}
  273.     NetRuleODILOADSoftwareBindable    = {"nwOdiLoader nwAdapter non exclusive 100"}
  274.     
  275.     ;
  276.     ; Lsl: Link Support Layer.
  277.     ;
  278.     
  279.     ProductLSLControl                = service
  280.     ProductLSLHidden                = 1
  281.     ProductLSLInstrumentation    = TRUE
  282.     ProductLSLName                    = "LSL"
  283.     ProductLSLImagePath            = $(SoftwareBinHome)lsl.sys
  284.     ProductLSLSvcType                = "kerneldisable"
  285.     ProductLSLGroup                = "ODI"
  286.     ProductLSLDependList            = {"+NetWare Services"}
  287.     ProductLSLEventFile            = $(ODINetWareEventFile)
  288.     
  289.     ;
  290.     ; NBI: Netware Bus Interface
  291.     ;
  292.  
  293.     ProductNBIControl                = service
  294.     ProductNBIHidden                = 1
  295.     ProductNBIInstrumentation    = TRUE
  296.     ProductNBIName                    = "NBI"
  297.     ProductNBIImagePath            = $(SoftwareBinHome)nbi.sys
  298.     ProductNBISvcType                = "kerneldisable"
  299.     ProductNBIGroup                = "ODI"
  300.     ProductNBIDependList            = {"+NetWare Services"}
  301.     ProductNBIEventFile            = $(ODINetWareEventFile)
  302.  
  303.     ;
  304.     ; ResMgr: NetWare Resource Manager
  305.     ;
  306.     
  307.     ProductRESMGRControl                = component
  308.     ProductRESMGRHidden                = 1
  309.     ProductRESMGRInstrumentation    = TRUE
  310.     ProductRESMGRName                    = "ResMgr"
  311.     ProductRESMGRImagePath            = $(SoftwareBinHome)resmgr.sys
  312.     ProductRESMGRSvcType                = "kernelautostart"
  313.     ProductRESMGRSoftType            = "service"
  314.     ProductRESMGRGroup                = "NetWare Services"
  315.     ProductRESMGRDependList            = {}
  316.     ProductRESMGREventFile            = $(NetWareEventFile)
  317.     ProductRESMGRKeySoftware        = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductRESMGRName)"\CurrentVersion"
  318.     
  319. ;    ;
  320. ;    ; RECONNECT: Auto Reconnect service
  321. ;    ;
  322. ;    
  323. ;    ProductRECONNECTControl                = service
  324. ;    ProductRECONNECTHidden                = 0
  325. ;    ProductRECONNECTInstrumentation    = FALSE
  326. ;    ProductRECONNECTName                    = "NetWareAutoReconnect"
  327. ;    ProductRECONNECTImagePath            = $(System32Root)\reconsvc.exe
  328. ;    ProductRECONNECTSvcType                = "serviceauto"
  329. ;    ProductRECONNECTGroup                = ""
  330. ;    ProductRECONNECTDependList            = {"NetWareWorkstation"}
  331. ;    ProductRECONNECTEventFile            = $(NetWareEventFile)
  332.     
  333. ;    ;
  334. ;    ; VMLID: Auto VMLID service
  335. ;    ;
  336. ;    
  337. ;    ProductVMLIDControl                = component
  338. ;    ProductVMLIDHidden                = 1
  339. ;    ProductVMLIDInstrumentation    = FALSE
  340. ;    ProductVMLIDName                    = "OdiVMLID"
  341. ;    ProductVMLIDImagePath            = $(SoftwareBinHome)vmlid.sys
  342. ;    ProductVMLIDSvcType                = "kernelautostart"
  343. ;    ProductVMLIDSoftType                = "service"
  344. ;    ProductVMLIDGroup                    = "ODI Drivers"
  345. ;    ProductVMLIDDependList            = {"+NDIS","+ODI"}
  346. ;    ProductVMLIDEventFile            = $(NetWareEventFile)
  347. ;    ProductVMLIDKeySoftware            = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductVMLIDName)"\CurrentVersion"
  348. ;    
  349. ;    NetRuleVMLIDSoftwareType        = "odivmlid nwOdiVMLIDDriver"
  350. ;    NetRuleVMLIDSoftwareUse            = "service yes yes"
  351. ;    NetRuleVMLIDSoftwareBindForm    = """OdiVMLID"" yes yes container"
  352. ;    NetRuleVMLIDSoftwareClass        = {"nwOdiVMLIDDriver basic"}
  353. ;    NetRuleVMLIDSoftwareBindable    = {"nwOdiVMLIDDriver ndisDriver non non 100"}
  354.     
  355.     ;
  356.     ; NWPOPUP: NWPOPUP message service
  357.     ;
  358.     
  359.     ProductNWPOPUPControl            = service
  360.     ProductNWPOPUPHidden                = 0
  361.     ProductNWPOPUPInstrumentation    = FALSE
  362.     ProductNWPOPUPName                = "NWPopUp"
  363.     ProductNWPOPUPImagePath            = $(System32Root)\nwmsgsvc.exe
  364.     ProductNWPOPUPSvcType            = "serviceauto"
  365.     ProductNWPOPUPGroup                = ""
  366.     ProductNWPOPUPDependList        = {"NetWareWorkstation"}
  367.     ProductNWPOPUPEventFile            = $(NetWareEventFile)
  368.     
  369.     ;
  370.     ; Provider
  371.     ;
  372.     
  373.     ProductProviderName            = "NetWare Services"
  374.     ProductProviderImagePath    = $(System32Root)"\netware.dll"
  375.     ProductProviderDevice        = "\Device\NetWareRedirector"
  376.     ProductProviderClass            = 3
  377.     
  378.     ;
  379.     ; Registry key names
  380.     ;
  381.     
  382.     ProductKeyName    = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductNWFSName)"\CurrentVersion"
  383.     ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductNWFSName)"\Parameters"
  384.     
  385.     ServiceNameList            = ^(ServiceNames, 1)
  386.     UpdateServiceNameList    = ^(UpdateServiceNames, 1)
  387.     ExtendedFunctionList        = ^(ExtendedFunctionNames, 1)
  388.  
  389.  
  390. [ServiceNames]
  391.     ;
  392.     ; referenced by ServiceNameList
  393.     ;
  394.  
  395.     SVC_1        = "NWFS"
  396. ;    SVC_2        = "IPXSPX"
  397.     SVC_3        = "LSL"
  398.     SVC_4        = "RESMGR"
  399.     SVC_5        = "ODILOAD"
  400.     SVC_6        = "MUP"
  401.     SVC_7        = "TDI"
  402. ;    SVC_8        = "SPXAPI"
  403. ;    SVC_9        = "IPXAPI"
  404.     SVC_10    = "NWSIPX32"
  405.     SVC_11    = "SROUTE"
  406. ;    SVC_12    = "RECONNECT"
  407. ;    SVC_13    = "VMLID"
  408.     SVC_14    = "NWPOPUP"
  409.     SVC_15    = "NBI"
  410.  
  411.  
  412. [UpdateServiceNames]
  413.     ;
  414.     ; referenced by UpdateRoutine
  415.     ;
  416.  
  417.     SVC_1        = "NWFS"
  418. ;    SVC_2        = "IPXSPX"
  419.     SVC_3        = "LSL"
  420.     SVC_4        = "RESMGR"
  421.     SVC_5        = "ODILOAD"
  422. ;    SVC_6        = "SPXAPI"
  423. ;    SVC_7        = "IPXAPI"
  424.     SVC_8        = "NWSIPX32"
  425.     SVC_9        = "SROUTE"
  426. ;    SVC_10    = "RECONNECT"
  427. ;    SVC_11    = "VMLID"
  428.     SVC_12    = "NWPOPUP"
  429.     SVC_13    = "NBI"
  430.  
  431.  
  432. [ExtendedFunctionNames]
  433.     ;
  434.     ; referenced by ExtendedFunctionList
  435.     ;
  436.  
  437.     EXFN_1    = "AuthenticationPackage"
  438.     EXFN_2    = "NetworkProvider"
  439.     EXFN_3    = "NetWarePrintServices"
  440. ;    EXFN_4    = "ServiceGroupOrder"
  441.  
  442.  
  443. [GeneralConstants]
  444.     ;
  445.     ;  Program flow control variables.
  446.     ;
  447.     
  448.     from        = ""
  449.     to            = ""
  450.     
  451.     ;
  452.     ;  Return codes; Exit_Code is set to one of these
  453.     ;
  454.     
  455.     ExitCodeOk                = 0
  456.     ExitCodeCancel            = 1
  457.     ExitCodeFatal            = 2
  458.     
  459.     KeyNull                    = ""
  460.     MAXIMUM_ALLOWED        = 33554432
  461.     RegistryErrorIndex    = NO_ERROR
  462.     KeyProduct                = ""
  463.     KeyParameters            = ""
  464.     
  465.     TRUE                        = 1
  466.     FALSE                        = 0
  467.     NoTitle                    = 0
  468.     
  469.     ExitState                = "Active"
  470.     OldVersionExisted        = $(FALSE)
  471.  
  472.  
  473. [ExtendedConstants]
  474.     SvcList                            = {"NetWare Services", "ODI", "ODI Drivers"}
  475.     PkgName                            = "nwv1_0"
  476.     ProviderName                    = "NetWareWorkstation"
  477.     NetWarePrintProviderName    = "NetWare Print Services"
  478.     PrintProvider                    = "System\CurrentControlSet\Control\Print\Providers"
  479.  
  480.  
  481. [IpxSpxConstants]
  482.     FrameTypeName        = "Frame Type"
  483.     CardTypeName        = "Card Name"
  484.     CardName                = ""
  485.     CardInstance        = "Card Instance"
  486.     CardInstanceNum    = ""
  487.     BindValueName        = "bindings"
  488.     IpxNtCardInstance    = "Nt Card Instance"
  489.  
  490.  
  491. [date]
  492.     ;
  493.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  494.     ; Minute, Second }
  495.     ;
  496.  
  497.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  498.  
  499.  
  500. [DetectDiskSpace]
  501.     VolumeList      = {} ? $(!LIBHANDLE) GetHardDriveLetters
  502.     VolumeFreeList  = {} ? $(!LIBHANDLE) GetHardDriveFreeSpace
  503.     VolumeFSList    = {} ? $(!LIBHANDLE) GetHardDriveFileSystems
  504.  
  505. [DetectSystemMemory]
  506.     SystemMemory    = "" ? $(!LIBHANDLE) GetMemorySize
  507.  
  508.  
  509. [ProcessorDetect]
  510.     !STF_PROCESSOR    = "" ? $(!LIBHANDLE) GetProcessor
  511.  
  512.  
  513. ;---------------------------------------------------------------------------
  514. ; 1. Identify
  515. ;
  516. ; DESCRIPTION:    To verify that this INF deals with the same type of options
  517. ;                        as we are choosing currently.
  518. ;
  519. ; INPUT:            None
  520. ;
  521. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  522. ;                    $($R1): Option Type (COMPUTER ...)
  523. ;                    $($R2): Diskette description
  524. ;---------------------------------------------------------------------------
  525. [Identify]
  526.  
  527.     read-syms Identification
  528.  
  529.     set Status        = STATUS_SUCCESSFUL
  530.     set Identifier    = $(OptionType)
  531.     set Media        = #("Source Media Descriptions", 1, 1)
  532.  
  533.     Return $(Status) $(Identifier) $(Media)
  534.  
  535.  
  536. ;------------------------------------------------------------------------
  537. ; 2. ReturnOptions:
  538. ;
  539. ; DESCRIPTION:  To return the option list supported by this INF and the
  540. ;                 localised text list representing the options.
  541. ;
  542. ;
  543. ; INPUT:          $($0):  Language used. ( ENG | FRN | ... )
  544. ;
  545. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  546. ;                                       STATUS_NOLANGUAGE
  547. ;                                       STATUS_FAILED
  548. ;
  549. ;                 $($R1): Option List
  550. ;                 $($R2): Option Text List
  551. ;------------------------------------------------------------------------
  552. [ReturnOptions]
  553.  
  554.     set Status                = STATUS_FAILED
  555.     set OptionList            = {}
  556.     set OptionTextList    = {}
  557.  
  558.     ;
  559.     ; Check if the language requested is supported
  560.     ;
  561.  
  562.     set LanguageList = ^(LanguagesSupported, 1)
  563.     Ifcontains(i) $($0) in $(LanguageList)
  564.         goto returnoptions
  565.     else
  566.         set Status = STATUS_NOLANGUAGE
  567.         goto finish_ReturnOptions
  568.     endif
  569.  
  570.     ;
  571.     ; form a list of all the options and another of the text representing
  572.     ;
  573.  
  574. returnoptions                = +
  575.     set OptionList            = ^(Options, 1)
  576.     set OptionTextList    = ^(OptionsText$($0), 1)
  577.     set Status                = STATUS_SUCCESSFUL
  578.  
  579. finish_ReturnOptions = +
  580.     Return $(Status) $(OptionList) $(OptionTextList)
  581.  
  582.  
  583. ;----------InstallOption-------------------------------------------------
  584. ;
  585. ; InstallOption:
  586. ;
  587. ;       This section is shelled to by main installation processing
  588. ;       or by NCPASHEL.INF during reconfig, removal, update, etc.
  589. ;
  590. ;
  591. ; FUNCTION:    To copy files representing Options
  592. ;                To configure the installed option
  593. ;                To update the registry for the installed option
  594. ;
  595. ; INPUT:    $($0):  Language to use
  596. ;           $($1):  OptionID to install
  597. ;           $($2):  SourceDirectory
  598. ;           $($3):  AddCopy  (YES | NO)
  599. ;           $($4):  DoCopy  (YES | NO)
  600. ;           $($5):  DoConfig (YES | NO)
  601. ;
  602. ; OUTPUT:   $($R0):    STATUS: STATUS_SUCCESSFUL |
  603. ;                            STATUS_NOLANGUAGE |
  604. ;                            STATUS_USERCANCEL |
  605. ;                            STATUS_FAILED
  606. ;
  607. ;------------------------------------------------------------------------
  608. [InstallOption]
  609.  
  610.     ;
  611.     ; Flush this INF file from the control panel
  612.     ;
  613.  
  614.     FlushInf "OEMNPRNW.INF"
  615.  
  616.     ;
  617.     ; extract parameters
  618.     ;
  619.  
  620.     set Option                = $($1)
  621.     set SrcDir                = $($2)
  622.     set AddCopy                = $($3)
  623.     set DoCopy                = $($4)
  624.     set DoConfig            = $($5)
  625.  
  626.     set NLSDirName            = $($6)
  627.  
  628.     set OriginalAddCopy    = $($3)
  629.     set OriginalDoCopy    = $($4)
  630.     set OriginalDoConfig    = $($5)
  631.  
  632.     ;
  633.     ; Check if the language requested is supported
  634.     ;
  635.  
  636.     set LanguageList = ^(LanguagesSupported, 1)
  637.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  638.         Return STATUS_NOLANGUAGE
  639.     endif
  640.  
  641.     detect ProcessorDetect
  642.  
  643.     ifstr(i) $(!STF_PROCESSOR) == "I386"
  644.         set !STF_PLATFORM = "I386"
  645.     else-ifstr(i) $(!STF_PROCESSOR) == "I486"
  646.         set !STF_PLATFORM = "I386"
  647.     else-ifstr(i) $(!STF_PROCESSOR) == "I586"
  648.         set !STF_PLATFORM = "I386"
  649.     else-ifstr(i) $(!STF_PROCESSOR) == "R4000"
  650.         set !STF_PLATFORM = "Mips"
  651.     else
  652.         set !STF_PLATFORM = "Alpha"
  653.     endif
  654.  
  655.     StartWait
  656.  
  657.     ;
  658.     ; define all the constants
  659.     ;
  660.  
  661.     set-subst LF = "\n"
  662.  
  663.     read-syms GeneralConstants
  664.     read-syms ExtendedConstants
  665.     read-syms FileConstants
  666.     read-syms CurrentVersion
  667.     read-syms DialogConstants$(!STF_LANGUAGE)
  668.     read-syms FileConstants$(!STF_LANGUAGE)
  669.     read-syms InstallOption$(!STF_LANGUAGE)
  670.  
  671.     Set !G:DebugOutputControl = 0
  672.  
  673.     ifstr(i) $(!NTN_Origination) == "NCPA"
  674.         set Continue = "OK"
  675.     endif
  676.  
  677.     set CanInstall = "NO"
  678.  
  679.     ;
  680.     ; Find out what NT's version is
  681.     ;
  682.  
  683.     set CurrentVersion = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion"
  684.     OpenRegKey $(!REG_H_LOCAL) "" $(CurrentVersion) $(MAXIMUM_ALLOWED) CurrentVersionKey
  685.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  686.         GetRegValue $(CurrentVersionKey) "CurrentVersion" VersionList
  687.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  688.             set VersionListData = *($(VersionList), 4)
  689.             Split-string $(VersionListData) "." SplitVersionList
  690.             Set NTMajorVersion = *($(SplitVersionList), 1)
  691.             Set NTMinorVersion = *($(SplitVersionList), 3)
  692.  
  693.             Debug-OutPut "Windows NT current version is "$(VersionListData)
  694.             Debug-OutPut "Windows NT Major version is "$(NTMajorVersion)
  695.             Debug-OutPut "Windows NT Minor version is "$(NTMinorVersion)
  696.  
  697.             ifint $(NTMajorVersion) == "3"
  698.                 ifint $(NTMinorVersion) >= "51"
  699.                     set CanInstall = "YES"
  700.                 endif
  701.             else
  702.                 ifint $(NTMajorVersion) > "3"
  703.                     set CanInstall = "YES"
  704.                 endif
  705.             endif
  706.  
  707.         else
  708.             Debug-Output "OEMNPRNW.INF:  Error getting NT version"
  709.         endif
  710.       CloseRegKey $(CurrentVersionKey)
  711.     else
  712.         Debug-Output "OEMNPRNW.INF:  Error opening "$(CurrentVersion)
  713.     endif
  714.  
  715.     ifstr(i) $(CanInstall) == "NO"
  716.         Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(WrongNTVersionMessage)
  717.  
  718.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  719.             goto ShellCodeError
  720.         endif
  721.         goto end
  722.     endif
  723.  
  724.     ;
  725.     ; Is this an Advanced Server
  726.     ;
  727.  
  728.     Debug-Output "OEMNPRNW.INF:  Checking to see if advanced server"
  729.     set AdvancedServer = "NO"
  730.     Set TempKeyName = "SYSTEM\CurrentControlSet\Control\ProductOptions"
  731.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  732.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  733.         Set ValueName = "ProductType"
  734.         GetRegValue $(TempKey) $(ValueName) ValueList
  735.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  736.             set ValueListData = *($(ValueList), 4)
  737.             set AdvancedServer = "YES"
  738.             ifstr(i) $(ValueListData) == "WinNT"
  739.                 set AdvancedServer = "NO"
  740.                 Debug-Output "OEMNPRNW.INF:  AdvancedServer is "$(AdvancedServer)
  741.             endif
  742.         else
  743.             Debug-Output "OEMNPRNW.INF:  Failed to get ProductType"
  744.         endif
  745.         CloseRegKey $(TempKey)
  746.     else
  747.         Debug-Output "OEMNPRNW.INF:  Failed to open ProductOptions key"
  748.     endif
  749.  
  750.     ifstr(i) $(!InstallSAMRedir) == "YES"
  751.         ifstr(i) $(AdvancedServer) == "NO"
  752.  
  753.         Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(SAMServerMessage)
  754.  
  755.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  756.             goto ShellCodeError
  757.         endif
  758.  
  759.         set CommonStatus = STATUS_USERCANCEL
  760.         goto end
  761.  
  762.         endif
  763.     endif
  764.  
  765.     ;
  766.     ; This call checks the STF_ variables and sets the NWU variables.
  767.     ;
  768.  
  769.     Shell "" UnattendedInstallOption
  770.  
  771.     ;
  772.     ; Get the data from the Unattended file.
  773.     ;
  774.  
  775.     ifstr(i) $(!NWUnattendedFile) != ""
  776.         Shell $(!NWUnattendedFile) ReadDefaultData, $(!NWUnattendedSection)
  777.         ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
  778.             Debug-Output "Shell to read the NW Parameter values from an Unattend.txt file Failed."
  779.  
  780.             Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "Warning", $(UnattendFileReadFailed)
  781.  
  782.             ifstr(i) $($R1) == "CANCEL"
  783.                 set CommonStatus = STATUS_USERCANCEL
  784.                 goto end
  785.             endif
  786.         endif
  787.  
  788.         Shell "" WizardToManagerFix    ; make workstation manager parms bwd compatible with wizard
  789.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  790.             goto ShellCodeError
  791.         endif
  792.     endif
  793.  
  794.     ;
  795.     ;    Save the old language dir so we know if the language is changed
  796.     ;
  797.     set OldNLSDirName = ""
  798.     set NovellParameters = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\Parameters"
  799.     OpenRegKey $(!REG_H_LOCAL) "" $(NovellParameters) $(MAXIMUM_ALLOWED) KeyNovellParameters
  800.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  801.         GetRegValue $(KeyNovellParameters) "NWLanguage" NWLanguageList
  802.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  803.             set ValueType = *($(NWLanguageList), 3)
  804.             ifstr(i) $(ValueType) == $(!REG_VT_SZ)
  805.                 set OldNLSDirName = *($(NWLanguageList), 4)
  806.             else-ifstr(i) $(ValueType) == $(!REG_VT_MULTI_SZ)
  807.                 set LanguageList = *($(NWLanguageList), 4)
  808.                 set OldNLSDirName = *($(LanguageList), 1)
  809.             endif
  810.         endif
  811.         CloseRegKey $(KeyNovellParameters)
  812.     Endif
  813.  
  814.     ;
  815.     ;    Set new product title if SAM Redirection
  816.     ;
  817.     ifstr(i) $(AdvancedServer) == "YES"
  818.         ifstr(i) $(!InstallSAMRedir) == "YES"
  819.             set ProductNWFSDisplayName = $(ProductNWFSDisplayNameSAM)
  820.             set ProCaption = $(ProCaptionSAM)
  821.             set FunctionTitle = $(FunctionTitleSAM)
  822.         endif
  823.     endif
  824.  
  825.     detect date
  826.     set-title  $(FunctionTitle)
  827.  
  828.     set to  = Begin
  829.     set from = Begin
  830.  
  831.     ;
  832.     ;  Assume all is well.
  833.     ;
  834.  
  835.     set CommonStatus = STATUS_SUCCESSFUL
  836.  
  837. Begin = +
  838.     ;
  839.     ; Set the debug output level
  840.     ;
  841.  
  842.     Set OEM_ABANDON_SERVICES    = {}
  843.     Set OEM_ABANDON_COMPONENTS    = {}
  844.  
  845.     Ifstr(i) $(!NTN_InstallMode)            == deinstall
  846.         set StartLabel = removenetware
  847.     else-Ifstr(i) $(!NTN_InstallMode)    == update
  848.         set StartLabel = updatenetware
  849.     else-Ifstr(i) $(!NTN_InstallMode)    == bind
  850.         set StartLabel = bindnetware
  851.     else-Ifstr(i) $(!NTN_InstallMode)    == configure
  852.         Set StartLabel = configurenetware
  853.     else
  854.         set StartLabel = installnetware
  855.  
  856.         ;
  857.         ;  Turn on all the options.
  858.         ;
  859.  
  860.         ForListDo $(ServiceNameList)
  861.             Set Do$($) = TRUE
  862.         EndForListDo
  863.     endif
  864.  
  865.     set from    = $(fatal)
  866.     set to    = $(fatal)
  867.  
  868.     goto $(StartLabel)
  869.  
  870.  
  871. ;-----------------------------------------------
  872. ; Installation Section
  873. ;-----------------------------------------------
  874.  
  875. installnetware = +
  876.  
  877.     ;
  878.     ;    Check whether the same version of the software exists
  879.     ;
  880.  
  881.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NetWareWorkStation" $(MAXIMUM_ALLOWED) KeyProduct
  882.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  883.  
  884.         ;
  885.         ; Same version already existed in the local machine
  886.         ;
  887.  
  888.         CloseRegKey $(KeyProduct)
  889.  
  890.         Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(NetWareClientInstalledMessage)
  891.  
  892.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  893.             goto ShellCodeError
  894.         endif
  895.  
  896.         set CommonStatus = STATUS_USERCANCEL
  897.         goto end
  898.     endif
  899.  
  900.     ;
  901.     ; Ask user to agree to license
  902.     ;
  903.  
  904.  
  905. ; Error checking data in the Variables
  906.         ifstr(i) $(!AcceptLicenseAgreement) != ""
  907.             ifstr(i) $(!AcceptLicenseAgreement) == "yes"
  908.                 goto AcceptLicenseAgreementValid
  909.             else-ifstr(i) $(!AcceptLicenseAgreement) == "no"
  910.                 goto AcceptLicenseAgreementValid
  911.             else
  912.                 ; Error case the Variable AcceptLicenseAgreement does not contains valid YES or NO but does contain something.
  913.                 set DlgType            = "MessageBox"
  914.                 set STF_MB_TITLE    = $(FunctionTitle)
  915.                 set STF_MB_TEXT    = "AcceptLicenseAgreement"$(ClientParamError)
  916.                 set STF_MB_TYPE    = 3
  917.                 set STF_MB_ICON    = 4
  918.                 set STF_MB_DEF        = 1
  919.                 ui start "NoAdapter"
  920.  
  921.                 Ifstr(i) $(DLGEVENT) == "NO"
  922.                     set CommonStatus = STATUS_USERCANCEL
  923.                     goto end
  924.                 else
  925.                 ; set variable to blank
  926.                     set !AcceptLicenseAgreement = ""
  927.                 endif
  928.             endif
  929. AcceptLicenseAgreementValid = +
  930.         endif
  931.  
  932.  
  933.     ifstr(i) $(!AcceptLicenseAgreement) != "yes"
  934.          shell "" AgreeToLicense $(SrcDir)
  935.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  936.             goto ShellCodeError
  937.         else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  938.  
  939.             ;
  940.             ; Set common status and exit
  941.             ;
  942.  
  943.             set CommonStatus    = $($R0)
  944.             goto end
  945.         endif
  946.      endif
  947.  
  948.     ;
  949.     ; Check free disk space on system drive
  950.     ;
  951.  
  952.     shell "" CheckSystemDriveSpace
  953.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  954.         goto ShellCodeError
  955.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  956.         set CommonStatus = STATUS_USERCANCEL
  957.         goto end
  958.     endif
  959.  
  960.     ;
  961.     ;    Check for Microsoft's redirector
  962.     ;
  963.  
  964.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NWCWorkstation\CurrentVersion" $(MAXIMUM_ALLOWED) KeyProduct
  965.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  966.  
  967.         ;
  968.         ; Microsoft redirector found
  969.         ; Tell the user that we are going to remove the MS Client for them
  970.         ; and Add our Client then reboot
  971.         ;
  972.  
  973.         Debug-Output "Found Microsoft Redirector."
  974.         CloseRegKey $(KeyProduct)
  975.  
  976.         ;
  977.         ; Check the NWUnattend variables before displaying the dialog to the user.
  978.         ;
  979.  
  980. ; Error checking data in the Variables
  981.         ifstr(i) $(!AskRemoveMSNetWareClient) != ""
  982.             ifstr(i) $(!AskRemoveMSNetWareClient) == "yes"
  983.                 goto AskRemoveMSNetWareClientValid
  984.             else-ifstr(i) $(!AskRemoveMSNetWareClient) == "no"
  985.                 goto AskRemoveMSNetWareClientValid
  986.             else
  987.                 ; Error case the Variable AskRemoveMSNetWareClient does not contains valid YES or NO but does contain something.
  988.                 set DlgType            = "MessageBox"
  989.                 set STF_MB_TITLE    = $(FunctionTitle)
  990.                 set STF_MB_TEXT    = "AskRemoveMSNetWareClient"$(ClientParamError)
  991.                 set STF_MB_TYPE    = 3
  992.                 set STF_MB_ICON    = 4
  993.                 set STF_MB_DEF        = 1
  994.                 ui start "NoAdapter"
  995.  
  996.                 Ifstr(i) $(DLGEVENT) == "NO"
  997.                     set CommonStatus = STATUS_USERCANCEL
  998.                     goto end
  999.                 else
  1000.                 ; set variable to blank
  1001.                     set !AskRemoveMSNetWareClient = ""
  1002.                 endif
  1003.             endif
  1004. AskRemoveMSNetWareClientValid = +
  1005.         endif
  1006.  
  1007. ; Error checking data in the Variables
  1008.         ifstr(i) $(!RemoveMSNetWareClient) != ""
  1009.             ifstr(i) $(!RemoveMSNetWareClient) == "yes"
  1010.                 goto RemoveMSNetWareClientValid
  1011.             else-ifstr(i) $(!RemoveMSNetWareClient) == "no"
  1012.                 goto RemoveMSNetWareClientValid
  1013.             else
  1014.                 ; Error case the Variable RemoveMSNetWareClient does not contains valid YES or NO but does contain something.
  1015.                 set DlgType            = "MessageBox"
  1016.                 set STF_MB_TITLE    = $(FunctionTitle)
  1017.                 set STF_MB_TEXT    = "RemoveMSNetWareClient"$(ClientParamError)
  1018.                 set STF_MB_TYPE    = 3
  1019.                 set STF_MB_ICON    = 4
  1020.                 set STF_MB_DEF        = 1
  1021.                 ui start "NoAdapter"
  1022.  
  1023.                 Ifstr(i) $(DLGEVENT) == "NO"
  1024.                     set CommonStatus = STATUS_USERCANCEL
  1025.                     goto end
  1026.                 else
  1027.                     set !RemoveMSNetWareClient = ""
  1028.                 endif
  1029.             endif
  1030. RemoveMSNetWareClientValid = +
  1031.         endif
  1032.  
  1033.     ; Check the ACU variable
  1034.  
  1035.         ifstr(i) $(!NWACU) == "YES"
  1036.             ifstr(i) $(!AskRemoveMSNetWareClient) == ""
  1037.                 set !AskRemoveMSNetWareClient = "no"
  1038.             endif
  1039.         else-ifstr(i) $(!NWACU) == "NO"
  1040.             ifstr(i) $(!AskRemoveMSNetWareClient) == ""
  1041.                 set !AskRemoveMSNetWareClient = "yes"
  1042.             endif
  1043.         endif
  1044.  
  1045.  
  1046.         ifstr(i) $(!AskRemoveMSNetWareClient) == "no"
  1047.             ifstr(i) $(!RemoveMSNetWareClient) != ""
  1048.                 ifstr(i) $(!RemoveMSNetWareClient) == "no"
  1049.                     set CommonStatus = STATUS_USERCANCEL
  1050.                     goto end
  1051.                 else-ifstr(i) $(!RemoveMSNetWareClient) == "yes"
  1052.                     ;
  1053.                     ; Remove the MS Client for NetWare and install Novell's Client
  1054.                     ;
  1055.                     goto RemoveMSClient
  1056.                 endif
  1057.             else
  1058.                 ; $(!RemoveMSNetWareClient) is empty so default to remove and continue
  1059.                 goto RemoveMSClient
  1060.             endif
  1061.  
  1062.         else
  1063.  
  1064. askToRemoveMSClient = +
  1065.             ;
  1066.             ; Ask the user if they want to remove the MS Client for NetWare
  1067.             ;
  1068.               ifstr(i) $(!RemoveMSNetWareClient) == "NO"
  1069.                   set STF_MB_DEF    = 2
  1070.               else
  1071.                  set STF_MB_DEF    = 1
  1072.               endif
  1073.  
  1074.             set DlgType            = "MessageBox"
  1075.             set STF_MB_TITLE    = $(FunctionTitle)
  1076.             set STF_MB_TEXT    = $(RemoveMSClientMessageText)
  1077.             set STF_MB_TYPE    = 3
  1078.             set STF_MB_ICON    = 4
  1079.             ui start "NoAdapter"
  1080.  
  1081.             Ifstr(i) $(DLGEVENT) == "NO"
  1082.                 set CommonStatus = STATUS_USERCANCEL
  1083.                 goto end
  1084.             endif
  1085.         endif
  1086.  
  1087. RemoveMSClient = +
  1088.         ;
  1089.         ; Save the install value before we call the deinstall section of the MS inf.
  1090.         ;
  1091.  
  1092.         set saveValue = $(!NTN_InstallMode)
  1093.         set !NTN_InstallMode = deinstall
  1094.  
  1095.         Shell "oemnsvnw.inf" InstallOption, $(!STF_LANGUAGE), "NWWKSTA", "A:\", "YES", "YES", "NO"
  1096.  
  1097.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1098.             Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(RemoveMSClientFailedMessage)
  1099.             goto ShellCodeError
  1100.         endif
  1101.  
  1102.         set !NTN_InstallMode = $(saveValue)
  1103.     Endif
  1104.  
  1105.     LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(!STF_WINDOWSSYSPATH)"\netware.drv"
  1106.     ifstr(i) $(Status1) == "YES"
  1107.         LibraryProcedure Status1, $(!LIBHANDLE), DelFile, $(!STF_WINDOWSSYSPATH)"\netware.drv"
  1108.     endif
  1109.  
  1110.     EndWait
  1111.  
  1112.     ;
  1113.     ; Install NWLINK if not already installed.  Our client now depends
  1114.     ; on NWLINK.
  1115.     ;
  1116.  
  1117.     shell "" Install-NWLINK
  1118.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1119.         goto ShellCodeError
  1120.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1121.         goto fatal
  1122.     endif
  1123.  
  1124.     ifstr(i) $(!NWACU) == "YES"
  1125.         set DoCopy        = "YES"
  1126.         Debug-Output "OEMNPRNW.INF:  InstallOption:  DoCopy = "$(DoCopy)
  1127.     endif
  1128.  
  1129.     Ifstr(i) $(DoCopy) == "YES"
  1130.  
  1131.         ;
  1132.         ;  Get source location
  1133.         ;
  1134.  
  1135.         Shell "", DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  1136.     
  1137.         Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1138.             Goto ShellCodeError
  1139.         Else-Ifstr(i) $($R0) == STATUS_FAILED
  1140.             Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  1141.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1142.                 goto ShellCodeError
  1143.             endif
  1144.             set Error = $($R0)
  1145.             Goto fatal
  1146.         Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  1147.             Goto successful
  1148.         Endif
  1149.     
  1150.         Set SrcDir = $($R1)
  1151.     
  1152.         LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(SrcDir)
  1153.     
  1154.         ifstr(i) $(STATUS) != "ERROR"
  1155.             set SrcDir = $(STATUS)
  1156.         Endif
  1157.     Endif
  1158.  
  1159.     set OEM_ABANDON_ON  = TRUE
  1160.  
  1161.     StartWait
  1162.  
  1163.     install "Install-NetWare-Dir"
  1164.  
  1165.     ;
  1166.     ; Copy all files to destination
  1167.     ;
  1168.  
  1169.     install "Install-Files"
  1170.     ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  1171.         Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  1172.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1173.             goto ShellCodeError
  1174.         endif
  1175.         set Error = $($R0)
  1176.         goto fatal
  1177.     endif
  1178.  
  1179.     StartWait
  1180.  
  1181.     ;
  1182.     ;  Install all enabled services mentioned in the ServiceNameList
  1183.     ;
  1184.  
  1185. InstallEnabledServices = +
  1186.  
  1187.     ForListDo  $(ServiceNameList)
  1188.         Set SvcOpt = $($)
  1189.  
  1190.         ;
  1191.         ; Check to see if the product to be installed is already installed
  1192.         ;
  1193.  
  1194.         Set TempProductKeyName = $(!NTN_ServiceBase)"\"$(Product$(SvcOpt)Name)
  1195.         OpenRegKey $(!REG_H_LOCAL) "" $(TempProductKeyName) $(MAXIMUM_ALLOWED) TempKey
  1196.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1197.             Debug-Output "OMENPRNW.INF:  "$(SvcOpt)" is already installed"
  1198.             Set Do$(SvcOpt) = FALSE
  1199.         Endif
  1200.     
  1201.         Ifstr(i) $(Do$(SvcOpt)) == TRUE
  1202.             Ifstr(i) $(Product$(SvcOpt)Control) == component
  1203.                 Debug-Output "OEMNPRNW.INF: install component: "$(SvcOpt)
  1204.                 Shell $(UtilityInf), AddSoftwareComponent +
  1205.                     $(Manufacturer), +
  1206.                     $(Product$(SvcOpt)Name), +
  1207.                     $(Product$(SvcOpt)Name), +
  1208.                     $(Product$(SvcOpt)DisplayName), +
  1209.                     "oemnprnw.inf", +
  1210.                     $(Product$(SvcOpt)ImagePath), +
  1211.                     $(Product$(SvcOpt)SvcType), +
  1212.                     $(Product$(SvcOpt)Group), +
  1213.                     $(Product$(SvcOpt)DependList), "" +
  1214.                     $(Product$(SvcOpt)EventFile), "", "", 1
  1215.     
  1216.                 Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1217.                     Debug-Output "OEMNPRNW.INF: AddSoftwareComponent ShellCode error "$($ShellCode)" installing "$(SvcOpt)
  1218.                     EndWait
  1219.                     goto ShellCodeError
  1220.                 Endif
  1221.                 StartWait
  1222.     
  1223.                 Set RegistryErrorIndex = $($R0)
  1224.     
  1225.                 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1226.                     EndWait
  1227.                     CloseRegKey $($R1)
  1228.                     CloseRegKey $($R2)
  1229.                     CloseRegKey $($R3)
  1230.                     Debug-Output "OEMNPRNW.INF: Registry error "$(RegistryErrorIndex)" installing "$(SvcOpt)
  1231.                     EndWait
  1232.                     goto fatalregistry
  1233.                 Endif
  1234.     
  1235.                 Set SvcVersion        = $($R1)
  1236.                 Set SvcNetRules    = $($R2)
  1237.                 Set SvcSvcKey        = $($R3)
  1238.                 Set SvcParamKey    = $($R4)
  1239.                 Set SvcLinkKey        = $($R5)
  1240.  
  1241.                 ifint $(Product$(SvcOpt)ReviewBindings) == 1
  1242.                     Set ReviewBindingsValue = 1
  1243.                 else
  1244.                     Set ReviewBindingsValue = 0
  1245.                 Endif
  1246.  
  1247.                 Set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)SoftType)},+
  1248.                         {Hidden,$(NoTitle),$(!REG_VT_DWORD),$(Product$(SvcOpt)Hidden)},+
  1249.                         {Review,$(NoTitle),$(!REG_VT_DWORD),$(ReviewBindingsValue)},+
  1250.                         {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(MajorVersion)},+
  1251.                         {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(MinorVersion)},+
  1252.                         {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)DisplayName)},+
  1253.                         {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)DisplayName)},+
  1254.                         {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Name)},+
  1255.                         {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  1256.         
  1257.                 Shell  $(UtilityInf), AddValueList, $(SvcVersion), $(NewValueList)
  1258.                 StartWait
  1259.                 Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1260.                     Debug-Output "OEMNPRNW.INF: ShellCode error: AddValueList for version info for "$(SvcOpt)
  1261.                     EndWait
  1262.                     goto ShellCodeError
  1263.                 Endif
  1264.     
  1265.                 ;
  1266.                 ;  Add the NetRules info
  1267.                 ;
  1268.  
  1269.                 Set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareType)},+
  1270.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(SvcOpt)SoftwareClass)}, +
  1271.                         {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(SvcOpt)SoftwareBindable)}, +
  1272.                         {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareUse)}, +
  1273.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareBindForm)}, +
  1274.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(SvcOpt)}}
  1275.         
  1276.                 Shell  $(UtilityInf), AddValueList, $(SvcNetRules), $(NewValueList)
  1277.                 StartWait
  1278.                 Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1279.                     Debug-Output "OEMNPRNW.INF: AddValueList ShellCode error = "$($ShellCode)
  1280.                     EndWait
  1281.                     Goto ShellCodeError
  1282.                 Endif
  1283.                 Set RegistryErrorIndex = $($R0)
  1284.         
  1285.                 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1286.                     CloseRegKey $(SvcSvcKey)
  1287.                     CloseRegKey $(SvcParamKey)
  1288.                     CloseRegKey $(SvcLinkKey)
  1289.                     CloseRegKey $(SvcVersion)
  1290.                     CloseRegKey $(SvcNetRules)
  1291.                     Debug-Output "OEMNPRNW.INF: Registry error adding NetRules to "$(SvcOpt)
  1292.                     EndWait
  1293.                     goto fatalregistry
  1294.                 Endif
  1295.     
  1296.             Else
  1297.                 Debug-Output "OEMNPRNW.INF: install service: "$(SvcOpt)
  1298.     
  1299.                 Shell $(UtilityInf), CreateService, +
  1300.                     $(Product$(SvcOpt)Name), +
  1301.                     $(Product$(SvcOpt)DisplayName), +
  1302.                     $(Product$(SvcOpt)ImagePath), +
  1303.                     $(Product$(SvcOpt)SvcType), +
  1304.                     $(Product$(SvcOpt)Group), +
  1305.                     $(Product$(SvcOpt)DependList), "" +
  1306.                     $(Product$(SvcOpt)EventFile), "", "", 1
  1307.         
  1308.                 StartWait
  1309.                 Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1310.                     Debug-Output "OEMNPRNW.INF: ShellCode error installing "$(SvcOpt)
  1311.                     EndWait
  1312.                     goto ShellCodeError
  1313.                 Endif
  1314.     
  1315.                 Set RegistryErrorIndex = $($R0)
  1316.         
  1317.                 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1318.                     CloseRegKey $($R1)
  1319.                     CloseRegKey $($R2)
  1320.                     CloseRegKey $($R3)
  1321.                     Debug-Output "OEMNPRNW.INF: Registry error installing "$(SvcOpt)
  1322.                     EndWait
  1323.                     goto fatalregistry
  1324.                 Endif
  1325.         
  1326.                 Set SvcVersion        = ""
  1327.                 Set SvcNetRules    = ""
  1328.                 Set SvcSvcKey        = $($R1)
  1329.                 Set SvcParamKey    = $($R2)
  1330.                 Set SvcLinkKey        = $($R3)
  1331.             Endif
  1332.  
  1333.             ;
  1334.             ; Add the NetWare Instrumentation Level.
  1335.             ;
  1336.     
  1337.             Ifstr(i) $(Product$(SvcOpt)Instrumentation) == TRUE
  1338.                 SetRegValue $(SvcParamKey) {"Instrumentation Level",$(NoTitle),$(!REG_VT_SZ),"NONE"}
  1339.             Endif
  1340.  
  1341.             ;
  1342.             ;  Call the service-specific installation section
  1343.             ;
  1344.  
  1345.             Shell "" FinishInstalling-$(SvcOpt) +
  1346.                 $(SvcSvcKey) $(SvcParamKey) $(SvcLinkKey) +
  1347.                 $(SvcVersion) $(SvcNetRules) $(TransportSelected)
  1348.     
  1349.             StartWait
  1350.     
  1351.             Ifstr(i) $(SvcVersion) != ""
  1352.                 CloseRegKey $(SvcVersion)
  1353.             Endif
  1354.             Ifstr(i) $(SvcNetRules) != ""
  1355.                 CloseRegKey $(SvcNetRules)
  1356.             Endif
  1357.     
  1358.             CloseRegKey $(SvcSvcKey)
  1359.             CloseRegKey $(SvcParamKey)
  1360.             CloseRegKey $(SvcLinkKey)
  1361.  
  1362.             ;
  1363.             ;  Add this service to the list of "undoable" things in case of failure
  1364.             ;
  1365.  
  1366.             Set OEM_ABANDON_SERVICES = >($(OEM_ABANDON_SERVICES), $(Product$(SvcOpt)Name))
  1367.         Endif
  1368.     EndForListDo
  1369.  
  1370.     Ifstr(i) $(CalledFromUpdate) == "YES"
  1371.         goto ReturnToUpdate
  1372.     endif
  1373.  
  1374.     ;
  1375.     ; Add different various parameters to the system
  1376.     ;
  1377.  
  1378.     Install "Install-Parameters"
  1379.  
  1380.     ;
  1381.     ; Install the NetWare Gina dll.
  1382.     ;
  1383.  
  1384.     shell "" Install-Gina
  1385.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1386.         goto ShellCodeError
  1387.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1388.  
  1389.         ;
  1390.         ; Set common status and exit
  1391.         ;
  1392.  
  1393.         set CommonStatus    = $($R0)
  1394.         goto setfailed
  1395.     endif
  1396.  
  1397.     ;
  1398.     ; Install our help files in the NT help
  1399.     ;
  1400.  
  1401.     Install "Install-Help"
  1402.  
  1403.     ;
  1404.     ; Install the NetWare Performance Counters.
  1405.     ;
  1406.  
  1407.     Install "Install-PerformanceCounters"
  1408.  
  1409.     ;
  1410.     ; Add the NetWare group and icons to desktop
  1411.     ;
  1412.  
  1413.     install "Install-NetWare-Group"
  1414.  
  1415.     Debug-Output "OEMNPRNW.INF:  adding ODINSUP"
  1416.  
  1417.     ;
  1418.     ;  Add ODINSUP hidden
  1419.     ;
  1420.  
  1421.     Set OldInstallMode = $(!NTN_InstallMode)
  1422.     Set !NTN_InstallMode = install
  1423.     Shell "ODINSUP.INF" InstallOption $(!STF_LANGUAGE) "ODINSUP" "" NO NO NO
  1424.     Set !NTN_InstallMode = $(OldInstallMode)
  1425.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1426.         goto ShellCodeError
  1427.     Endif
  1428.  
  1429.     Debug-Output "OEMNPRNW.INF:  adding NetWareIP"
  1430.  
  1431.     ;
  1432.     ;  Add NetWareIP if the user wants
  1433.     ;
  1434.  
  1435.     shell "" Install-NetWareIP
  1436.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1437.         goto ShellCodeError
  1438.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1439.         goto fatal
  1440.     endif
  1441.  
  1442.     ;
  1443.     ; Add the extended function stuff
  1444.     ;
  1445.  
  1446.     ForListDo $(ExtendedFunctionList)
  1447.         Shell "" InstallEx-$($)
  1448.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1449.             goto ShellCodeError
  1450.         else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1451.             Debug-Output "OEMNPRNW.INF:  ExtendedFunctionFailedMessage is "$(ExtendedFunctionFailedMessage)
  1452.             set Error = $(ExtendedFunctionFailedMessage)
  1453.             goto fatal
  1454.         endif
  1455.         StartWait
  1456.     EndForListDo
  1457.  
  1458.     ;
  1459.     ;    Set SAM Redirection info
  1460.     ;
  1461.     Debug-Output "OEMNPRNW.INF:  adding SAM Redirection"
  1462.  
  1463.     ifstr(i) $(AdvancedServer) == "YES"
  1464.         ifstr(i) $(!InstallSAMRedir) == "YES"
  1465.             LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  1466.             LibraryProcedure GUIResult $(NwLibHandle) NWCheckSAMMigrated
  1467.  
  1468.             ifstr(i) $(GUIResult) != "TRUE"
  1469.                 ;
  1470.                 ;    If not migrated, then auto launch the migrate
  1471.                 ;
  1472.                 ifint $(NTMajorVersion) < "4"
  1473.                     set TempRegKeyName = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" 
  1474.                     OpenRegKey $(!REG_H_CUSER) ""  $(TempRegKeyName) $(MAXIMUM_ALLOWED) TempKey
  1475.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                ; if no new key
  1476.                         CreateRegKey $(!REG_H_CUSER) {$(TempRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey
  1477.                         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                            ; create new key
  1478.                             Debug-Output "OEMNPRNW.INF: Failed to create 3.51 Windows key for SAM Migration utility"
  1479.                             goto migerror1                                                            ; if error, then done
  1480.                         endif
  1481.                     endif                
  1482.                     Set CommandLine = $(!STF_WINDOWSSYSPATH)"\sammig.exe"
  1483.                     SetRegValue $(TempKey) {"run", $(NoTitle), $(!REG_VT_SZ), $(CommandLine)}
  1484.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1485.                         Debug-Output "OEMNPRNW.INF: Failed to add 3.51 Run for SAM Migration utility"
  1486.                     endif
  1487.                     CloseRegKey $(KeyNovellParameters)
  1488.                 else
  1489.                     set TempRegKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" 
  1490.                     OpenRegKey $(!REG_H_LOCAL) ""  $(TempRegKeyName) $(MAXIMUM_ALLOWED) TempKey
  1491.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                ; if no new key
  1492.                         CreateRegKey $(!REG_H_LOCAL) {$(TempRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey
  1493.                         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                            ; create new key
  1494.                             Debug-Output "OEMNPRNW.INF: Failed to create RunOnce for SAM Migration utility"
  1495.                             goto migerror1                                                            ; if error, then done
  1496.                         endif
  1497.                     endif                
  1498.                     Set CommandLine = $(!STF_WINDOWSSYSPATH)"\sammig.exe"
  1499.                     SetRegValue $(TempKey) {"SAM Migration", $(NoTitle), $(!REG_VT_SZ), $(CommandLine)}
  1500.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1501.                         Debug-Output "OEMNPRNW.INF: Failed to add RunOnce for SAM Migration utility"
  1502.                     endif
  1503.                     CloseRegKey $(KeyNovellParameters)
  1504.                 endif
  1505. migerror1 = +
  1506.             endif
  1507.  
  1508.             FreeLibrary $(NwLibHandle)       
  1509.             Shell "" AddServiceDependency "LanmanServer" "NetWareWorkstation"
  1510.         endif
  1511.     endif
  1512.  
  1513.     ;
  1514.     ; Write out the unattended variables to registry.  DO THIS LAST.
  1515.     ;
  1516.  
  1517. ;    Write the Workstation Manager parameter to the registry here because it is set by either Setupnw.exe /w or setupnw /u.
  1518. ;    !Workstation_Manager_Trusted_Trees =
  1519. ;    !Workstation_Manager_Trusted_Trees_OverWriteValue =
  1520.  
  1521.     ifstr(i) $(!NWSetup) == "yes"
  1522.         ; IF we are running from setup and not in unattended mode and the Trusted trees variable is set then turn on Manager in the key Workstation Manager/Enable.
  1523.         ifstr(i) $(!NWUnattendedFile) == ""
  1524.             ifstr(i) $(!Workstation_Manager_Trusted_Trees) != ""
  1525.                 set !Enable_Workstation_Manager = "on"
  1526.                 set !Enable_Workstation_Manager_OverWriteValue = "yes"
  1527.             endif
  1528.         endif
  1529.  
  1530.         ifstr(i) $(!Workstation_Manager_Trusted_Trees_OverWriteValue) == ""
  1531.             set !Workstation_Manager_Trusted_Trees_OverWriteValue = "yes"
  1532.         endif
  1533.     endif
  1534.  
  1535.  
  1536. ; Workstation Manager Parameters
  1537.  
  1538.     ;    !Enable_Workstation_Manager = on
  1539.     ;    !Enable_Workstation_Manager_OverWriteValue = yes
  1540.     ifstr(i) $(!Enable_Workstation_Manager) != ""
  1541.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Workstation Manager"
  1542.         ifstr(i) $(!Enable_Workstation_Manager) == "on"
  1543.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Enabled" 1 $(!REG_VT_DWORD) $(!Enable_Workstation_Manager_OverWriteValue)
  1544.         else-ifstr(i) $(!Enable_Workstation_Manager) == "off"
  1545.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Enabled" 0 $(!REG_VT_DWORD) $(!Enable_Workstation_Manager_OverWriteValue)
  1546.         else
  1547.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Enable_Workstation_Manager = "$(!Enable_Workstation_Manager)$(UnattendParameterError)
  1548.             ifstr(i) $($R1) == "CANCEL"
  1549.                 set CommonStatus = STATUS_USERCANCEL
  1550.                 goto setfailed
  1551.             endif
  1552.         endif
  1553.     endif
  1554.  
  1555.     ifstr(i) $(!Workstation_Manager_Trusted_Trees) != ""
  1556.           set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Workstation Manager"
  1557.           shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Trusted Trees" $(!Workstation_Manager_Trusted_Trees) $(!REG_VT_SZ) $(!Workstation_Manager_Trusted_Trees_OverWriteValue)
  1558.     endif
  1559.  
  1560.     shell "" Write-Unattended-Variables
  1561.  
  1562.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1563.         goto ShellCodeError
  1564.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1565.         Debug-Output "OEMNPRNW.INF:  User Canceled due to a error processing the Unattended Variables."
  1566.         set CommonStatus = STATUS_USERCANCEL
  1567.         goto setfailed
  1568.     endif
  1569.  
  1570.  
  1571. ;    ;
  1572. ;    ;  Try to detect the ndis driver that the lan man services are using
  1573. ;    ;
  1574. ;
  1575. ;    Shell $(NwSubsInf) NwDetectNdisAdapter $(SrcDir)
  1576. ;    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1577. ;        Debug-Output "OEMNPRNW.INF: NwDetectNdisAdapter ShellCode error "$($ShellCOde)
  1578. ;        goto ShellCodeError
  1579. ;    endif
  1580.  
  1581.     goto successful
  1582.  
  1583.  
  1584. ;-----------------------------------------------
  1585. ; Configure Browser section
  1586. ;-----------------------------------------------
  1587. configurenetware = +
  1588.     Debug-Output "OEMNPRNW.INF: Configure NetWare "$(!NTN_RegBase)
  1589.     set CommonStatus = STATUS_USERCANCEL
  1590.  
  1591.     LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  1592.     SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.hlp" $(!MinimumID) $(!MaximumID)
  1593.     ifint $(NTMajorVersion) < "4"
  1594.         SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.hlp" $(!MinimumID) $(!MaximumID)
  1595.     endif
  1596.  
  1597.     Ifstr(i) $(!NTN_RegBase) == $(ProductNWFSKeySoftware)
  1598.  
  1599.         ;
  1600.         ; Configure the NetWare Workstation.
  1601.         ;
  1602.  
  1603.         StartWait
  1604.         set HelpContext = $(IDH_NETWAREWRKSTATIONPARMS)
  1605.         LibraryProcedure LibResult $(NwLibHandle) NetWareWorkstationDialog
  1606.  
  1607.         ifstr(i) $(LibResult) == "CONTINUE"
  1608.             Set CommonStatus = STATUS_REBOOT
  1609.         endif
  1610.  
  1611.     else-ifstr(i) $(!NTN_RegBase) == $(ProductODILOADKeySoftware)
  1612.  
  1613.         ;
  1614.         ; Configure OdiLoad.
  1615.         ;
  1616.  
  1617. ;    else-ifstr(i) $(!NTN_RegBase) == $(ProductRESMGRKeySoftware)
  1618. ;
  1619. ;        ;
  1620. ;        ; Configure Resmgr.
  1621. ;        ;
  1622. ;
  1623. ;        Set KeyName = "SYSTEM\CurrentControlSet\Services\"$(Product$(Option)Name)"\Parameters"
  1624. ;        OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(MAXIMUM_ALLOWED) KeyParameters
  1625. ;        Ifstr(i) $(KeyParameters) != ""
  1626. ;            set KeyValueList = ""
  1627. ;            GetRegValue $(KeyParameters) "Communication Buffers" KeyValueList
  1628. ;            set CommunicationBuffers = *($(KeyValueList), 4)
  1629. ;
  1630. ;            read-syms "ResMgrDlg"$(!STF_LANGUAGE)
  1631. ;            ui start "ResMgrDLG" $(NwLibHandle)
  1632. ;            StartWait
  1633. ;
  1634. ;            ifstr(i) $(DLGEVENT) == "CONTINUE"
  1635. ;                set CommunicationBuffers = *($(EditTextOut), 1)
  1636. ;                ifint $(CommunicationBuffers) < 1
  1637. ;                    set CommunicationBuffers = 1
  1638. ;                else-ifint $(CommunicationBuffers) > 128
  1639. ;                    set CommunicationBuffers = 128
  1640. ;                endif
  1641. ;                set KeyValueList = {"Communication Buffers",$(NoTitle),$(!REG_VT_DWORD),$(CommunicationBuffers)}
  1642. ;                SetRegValue $(KeyParameters) $(KeyValueList)
  1643. ;
  1644. ;                FlushRegKey $(KeyParameters)
  1645. ;                Set CommonStatus = STATUS_REBOOT
  1646. ;            endif
  1647. ;
  1648. ;            CloseRegKey $(KeyParameters)
  1649. ;            ui pop 1
  1650. ;            EndWait
  1651. ;        endif
  1652.  
  1653.     Endif
  1654.  
  1655.     FreeLibrary $(NwLibHandle)
  1656.     goto successful
  1657.  
  1658. ;-----------------------------------------------
  1659. ; Binding section
  1660. ;-----------------------------------------------
  1661. bindnetware =+
  1662.     ;
  1663.     ; Find what NLS directory is being used
  1664.     ;
  1665.  
  1666.     set NovellParameters = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\Parameters"
  1667.     OpenRegKey $(!REG_H_LOCAL) "" $(NovellParameters) $(MAXIMUM_ALLOWED) KeyNovellParameters
  1668.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1669.         GetRegValue $(KeyNovellParameters) "NWLanguage" NWLanguageList
  1670.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1671.             set ValueType = *($(NWLanguageList), 3)
  1672.             ifstr(i) $(ValueType) == $(!REG_VT_SZ)
  1673.                 set NLSDirName = *($(NWLanguageList), 4)
  1674.             else-ifstr(i) $(ValueType) == $(!REG_VT_MULTI_SZ)
  1675.                 set LanguageList = *($(NWLanguageList), 4)
  1676.                 set NLSDirName = *($(LanguageList), 1)
  1677.                 SetRegValue $(KeyNovellParameters) {"NWLanguage", $(NoTitle), $(!REG_VT_SZ), $(NLSDirName)}
  1678.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1679.                     Debug-Output "OEMNPRNW.INF: Failed to add NWLanguage value to "$(SoftwareNovell)"\Parameters"
  1680.                 endif
  1681.             endif
  1682.             LoadLibrary $(LoadDisk2Text) $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nwsetupr.dll" NwLibHandle
  1683.             SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.hlp" $(!MinimumID) $(!MaximumID)
  1684.             ifint $(NTMajorVersion) < "4"
  1685.                 SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.hlp" $(!MinimumID) $(!MaximumID)
  1686.             endif
  1687.         else
  1688.             goto fatalregistry
  1689.         endif
  1690.         CloseRegKey $(KeyNovellParameters)
  1691.     else
  1692.         goto fatalregistry
  1693.     Endif
  1694.  
  1695.     Shell $(NwSubsInf) GetTotalAdapterList
  1696.  
  1697.     Set OdiProductNameList            = $($R0)
  1698.     Set OdiTitleList                    = $($R1)
  1699.     Set OdiCardList                    = $($R2)
  1700.     Set NumberOdiAdapters            = $($R3)
  1701.     Set NdisProductNameList            = $($R4)
  1702.     Set NdisTitleList                    = $($R5)
  1703.     Set NdisCardList                    = $($R6)
  1704.     Set NumberNdisAdapters            = $($R7)
  1705.     Set ODINSUPCardNumber            = $($R8)
  1706.     Set NetWareIPCardNumList        = $($R9)
  1707.     Set NumberNetWareIPAdapters    = $($R10)
  1708.                                     
  1709.  
  1710.     ;
  1711.     ; Is there a ODI driver installed?
  1712.     ;
  1713.  
  1714.     ifint $(NumberOdiAdapters) > 0
  1715.         Debug-Output "Found Odi Adapters"
  1716.  
  1717.         ;
  1718.         ; Set the group order to follow
  1719.         ;
  1720.  
  1721.         Set GroupOrderToFollow = "file system"
  1722.  
  1723.         ;
  1724.         ; Turn on NBI
  1725.         ;
  1726.  
  1727.         Debug-Output "OEMNPRNW.INF:  Setting start value for "$(!NTN_ServiceBase)"\NBI"
  1728.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NBI" $(MAXIMUM_ALLOWED) KeyProduct
  1729.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1730.             SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 2}
  1731.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1732.                 Debug-Output "OEMNPRNW.INF:  Failed to set start value for "$(!NTN_ServiceBase)"\NBI"
  1733.             endif
  1734.             CloseRegKey $(KeyProduct)
  1735.         else
  1736.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\NBI"
  1737.         Endif
  1738.  
  1739.         ;
  1740.         ; Turn on LSL
  1741.         ;
  1742.  
  1743.         Debug-Output "OEMNPRNW.INF:  Setting start value for "$(!NTN_ServiceBase)"\LSL"
  1744.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\LSL" $(MAXIMUM_ALLOWED) KeyProduct
  1745.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1746.             SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 2}
  1747.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1748.                 Debug-Output "OEMNPRNW.INF:  Failed to set start value for "$(!NTN_ServiceBase)"\LSL"
  1749.             endif
  1750.             CloseRegKey $(KeyProduct)
  1751.         else
  1752.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\LSL"
  1753.         Endif
  1754.  
  1755.         ;
  1756.         ; Turn on OdiLoad
  1757.         ;
  1758.  
  1759.         Debug-Output "OEMNPRNW.INF:  Setting start value for "$(!NTN_ServiceBase)"\OdiLoad"
  1760.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiLoad" $(MAXIMUM_ALLOWED) KeyProduct
  1761.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1762.             SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 2}
  1763.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1764.                 Debug-Output "OEMNPRNW.INF:  Failed to set start value for "$(!NTN_ServiceBase)"\OdiLoad"
  1765.             endif
  1766.             CloseRegKey $(KeyProduct)
  1767.         else
  1768.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\OdiLoad"
  1769.         Endif
  1770.  
  1771.         ;
  1772.         ; Turn on ODINSUP
  1773.         ;
  1774.  
  1775.         Debug-Output "OEMNPRNW.INF:  Setting start value for "$(!NTN_ServiceBase)"\Odinsup"
  1776.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Odinsup" $(MAXIMUM_ALLOWED) KeyProduct
  1777.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1778.             SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 2}
  1779.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1780.                 Debug-Output "OEMNPRNW.INF:  Failed to set start value for "$(!NTN_ServiceBase)"\Odinsup"
  1781.             endif
  1782.             CloseRegKey $(KeyProduct)
  1783.         else
  1784.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\Odinsup"
  1785.         Endif
  1786.  
  1787.         ;
  1788.         ; Set the card for ODINSUP to bind to
  1789.         ;
  1790.  
  1791.         read-syms OdiNSupVars
  1792.         read-syms OdiVars
  1793.  
  1794.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\ODINSUP"$(ODINSUPCardNumber)"\Parameters" $(MAXIMUM_ALLOWED) KeyOdiNSupParameters
  1795.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1796.     
  1797.             Ifint $(NumberOdiAdapters) > 1
  1798.  
  1799.                 ;
  1800.                 ; More than one ODI adapter is installed so allow
  1801.                 ; the user to select which one to bind to.
  1802.                 ;
  1803.         
  1804.                 Ifstr(i) $(OdiCurBindCardName) != ""
  1805.                     Debug-Output "OEMNPRNW.INF: OdiCurBindCardName = "$(OdiCurBindCardName)
  1806.                     Set DefaultOdiTitle = *($(OdiTitleList), ~($(OdiCardList), $(OdiCurBindCardName)))
  1807.                 Endif
  1808.         
  1809.                 Ifstr(i) $(DefaultOdiTitle) == ""
  1810.                     Set DefaultOdiTitle = *($(OdiTitleList), 1)
  1811.                 Endif
  1812.         
  1813.                 Debug-Output "OEMNPRNW.INF: DefaultOdiTitle = "$(DefaultOdiTitle)
  1814.     
  1815.                 read-syms OdinsupDlg$(!STF_LANGUAGE)
  1816.                 ui start "ODINSUP" $(NwLibHandle)
  1817.                 ui pop 1
  1818.         
  1819.                 ifstr(i) $(DLGEVENT) == "BACK"
  1820.                     set AdapterSelected = ""
  1821.                 else
  1822.                     Set AdapterSelected = *($(DefaultOdiTitle), 1)
  1823.                 endif
  1824.     
  1825.                 Debug-Output "OEMNPRNW.INF: ODINSUP AdapterSelected = "$(AdapterSelected)
  1826.     
  1827.                 Ifstr(i) $(AdapterSelected) == ""
  1828.                     Debug-Output "OEMNPRNW.INF: Cancel Selected"
  1829.                     Set CardToBindTo = *($(OdiProductNameList), 1)
  1830.                     Set OdiCardInstance = 1
  1831.                 Else
  1832.                     Set CardToBindTo = *($(OdiProductNameList), ~($(OdiTitleList), $(AdapterSelected)))
  1833.                     Debug-Output "CardToBindTo = "$(CardToBindTo)
  1834.  
  1835.                     Set NtAdapterNumber = *($(OdiCardList), ~($(OdiTitleList), $(AdapterSelected)))
  1836.                     Debug-Output "NtAdapterNumber = "$(NtAdapterNumber)
  1837.         
  1838.                     Set NtAdapterKeyName = $(NetworkCardsKeyName)"\"$(NtAdapterNumber)
  1839.                     OpenRegKey $(!REG_H_LOCAL) "" $(NtAdapterKeyName) $(MAXIMUM_ALLOWED) KeyNtAdapter
  1840.                     Ifstr(i) $(KeyNtAdapter) != ""
  1841.         
  1842.                         GetRegValue $(KeyNtAdapter),"ServiceName", ServiceNameList
  1843.                         Set ServiceName = *($(ServiceNameList), 4)
  1844.                         CloseRegKey $(KeyNtAdapter)
  1845.  
  1846.                         ;
  1847.                         ; Open the lan man card's service\Parameters.
  1848.                         ;
  1849.  
  1850.                         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters" $(MAXIMUM_ALLOWED) KeyService
  1851.                         ifstr(i) $(KeyService) == ""
  1852.         
  1853.                             Debug-Output "OEMNPRNW.INF:  Can't open "$(ServiceName)
  1854.         
  1855.                         Else
  1856.  
  1857.                             ;
  1858.                             ; Get the OdiLoad link.
  1859.                             ;
  1860.  
  1861.                             GetRegValue $(KeyService) $(OdiLinkName) CardInstanceList
  1862.                             Set CardInstanceName = *($(CardInstanceList), 4)
  1863.                             CloseRegKey $(KeyService)
  1864.             
  1865.                             OpenRegKey $(!REG_H_LOCAL) "" $(OdiModuleName)"\"$(CardInstanceName) $(MAXIMUM_ALLOWED) KeyOdiCard
  1866.                             Ifstr(i) $(KeyOdiCard) != ""
  1867.                                 GetRegValue $(KeyOdiCard) "BoardInstance" BoardInstanceList
  1868.                                 Set OdiCardInstance = *($(BoardInstanceList), 4)
  1869.                                 Debug-Output "OEMNPRNW.INF: Selected OdiCardInstance = "$(OdiCardInstance)
  1870.                                 CloseRegKey $(KeyOdiCard)
  1871.                             Endif
  1872.                         Endif
  1873.                     Else
  1874.                         Debug-Output "Can't open "$(NtAdapterKeyName)
  1875.                     Endif
  1876.                 Endif
  1877.             Else
  1878.  
  1879.                 ;
  1880.                 ; only one ODI adapter so use it.
  1881.                 ;
  1882.  
  1883.                 Set CardToBindTo = *($(OdiProductNameList), 1)
  1884.                 Set NtAdapterNumber = *($(OdiCardList), 1)
  1885.                 Debug-Output "OEMNPRNW.INF: ODISUP bound to "$(CardToBindTo)
  1886.  
  1887.             Endif
  1888.     
  1889.             SetRegValue $(KeyOdiNSupParameters) {$(OdiNSupCardName), $(NoTitle), $(!REG_VT_SZ), $(CardToBindTo)}
  1890.             Ifstr(i) $(OdiCardInstance) == ""
  1891.                 Debug-Output "OEMNPRNW.INF:  OdiCardInstance set to default."
  1892.                 Set OdiCardInstance = "1"
  1893.             Endif
  1894.             SetRegValue $(KeyOdiNSupParameters) {$(OdiNSupCardInstance),$(NoTitle),$(!REG_VT_DWORD),$(OdiCardInstance)}
  1895.     
  1896.             ;
  1897.             ; Get the adapter's media type and set odinsup the same.
  1898.             ;
  1899.  
  1900.             OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(CardToBindTo)$(NtAdapterNumber)"\Parameters" $(MAXIMUM_ALLOWED) KeyAdapterService
  1901.             ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1902.                 GetRegValue $(KeyAdapterService) "MediaType" MediaTypeList
  1903.                 ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1904.                     set MediaType = *($(MediaTypeList), 4)
  1905.                     SetRegValue $(KeyOdiNSupParameters) {"MediaType",$(NoTitle),$(!REG_VT_DWORD),$(MediaType)}
  1906.                 endif
  1907.  
  1908.                 CloseRegKey $(KeyAdapterService)
  1909.             endif
  1910.  
  1911.             CloseRegKey $(KeyOdiNSupParameters)
  1912.         Endif
  1913.  
  1914.     Else-ifint $(NumberNdisAdapters) > 0
  1915.         Debug-Output "Found NDIS Adapters"
  1916.  
  1917.         ;
  1918.         ; Set the group order to follow
  1919.         ;
  1920.  
  1921.         Set GroupOrderToFollow = "NDIS"
  1922.  
  1923.         ;
  1924.         ; Turn off NBI
  1925.         ;
  1926.  
  1927.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NBI" $(MAXIMUM_ALLOWED) KeyProduct
  1928.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1929.             SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 4}
  1930.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1931.                 Debug-Output "OEMNPRNW.INF:  Failed to set start value for "$(!NTN_ServiceBase)"\NBI"
  1932.             endif
  1933.             CloseRegKey $(KeyProduct)
  1934.         else
  1935.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\NBI"
  1936.         Endif
  1937.  
  1938.         ;
  1939.         ; Turn off LSL
  1940.         ;
  1941.  
  1942.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\LSL" $(MAXIMUM_ALLOWED) KeyProduct
  1943.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1944.             SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 4}
  1945.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1946.                 Debug-Output "OEMNPRNW.INF:  Failed to set start value for "$(!NTN_ServiceBase)"\LSL"
  1947.             endif
  1948.             CloseRegKey $(KeyProduct)
  1949.         else
  1950.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\LSL"
  1951.         Endif
  1952.  
  1953.         ;
  1954.         ; Turn off OdiLoad
  1955.         ;
  1956.  
  1957.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiLoad" $(MAXIMUM_ALLOWED) KeyProduct
  1958.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1959.             SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 4}
  1960.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1961.                 Debug-Output "OEMNPRNW.INF:  Failed to set start value for "$(!NTN_ServiceBase)"\OdiLoad"
  1962.             endif
  1963.             CloseRegKey $(KeyProduct)
  1964.         else
  1965.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\OdiLoad"
  1966.         Endif
  1967.  
  1968.         ;
  1969.         ; Turn off ODINSUP
  1970.         ;
  1971.  
  1972.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Odinsup" $(MAXIMUM_ALLOWED) KeyProduct
  1973.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1974.             SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 4}
  1975.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1976.                 Debug-Output "OEMNPRNW.INF:  Failed to set start value for "$(!NTN_ServiceBase)"\Odinsup"
  1977.             endif
  1978.             CloseRegKey $(KeyProduct)
  1979.         else
  1980.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\Odinsup"
  1981.         Endif
  1982.  
  1983.         ;
  1984.         ; Turn off ODI Source Routing
  1985.         ;
  1986.  
  1987.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiSourceRouting" $(MAXIMUM_ALLOWED) KeyProduct
  1988.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1989.             SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 4}
  1990.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1991.                 Debug-Output "OEMNPRNW.INF:  Failed to set start value for "$(!NTN_ServiceBase)"\OdiSourceRouting"
  1992.             endif
  1993.             CloseRegKey $(KeyProduct)
  1994.         else
  1995.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\OdiSourceRouting"
  1996.         Endif
  1997.  
  1998.     Else
  1999.         Debug-Output "Found no Adapters"
  2000.  
  2001.         ;
  2002.         ; Set the group order to follow
  2003.         ;
  2004.  
  2005.         Set GroupOrderToFollow = "file system"
  2006.  
  2007.         ;
  2008.         ; Checking to see if RAS is installed.
  2009.         ;
  2010.  
  2011.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\RemoteAccess" $(MAXIMUM_ALLOWED) TempKey
  2012.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2013.  
  2014.             ;
  2015.             ; Can't find RAS either.
  2016.             ; Let the user know that there are not any LAN or WAN adapters
  2017.             ;
  2018.  
  2019.             set DlgType            = "MessageBox"
  2020.             set STF_MB_TITLE    = $(NoLanAdapterInstalledTitle)
  2021.             set STF_MB_TEXT    = $(NoLanAdapterInstalledText)
  2022.             set STF_MB_TYPE    = 1
  2023.             set STF_MB_ICON    = 2
  2024.             set STF_MB_DEF        = 1
  2025.             ui start "NoAdapter"
  2026.  
  2027.         else
  2028.          CloseRegKey $(TempKey)
  2029.         Endif
  2030.    Endif
  2031.  
  2032.     ifint $(NTMajorVersion) == "4"
  2033.         ifint $(NumberNetWareIPAdapters) > 0
  2034.             Debug-Output "Found NetWareIP Adapters"
  2035.     
  2036.             ;
  2037.             ; Set the group order to follow
  2038.             ;
  2039.     
  2040.             Set GroupOrderToFollow = "file system"
  2041.         endif
  2042.     endif
  2043.  
  2044.     ;
  2045.     ; Check to see if mup has been marked for delete.
  2046.     ;
  2047.  
  2048.     Set TempKeyName = $(!NTN_ServiceBase)"\Mup"
  2049.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  2050.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2051.         Debug-Output "OEMNPRNW.INF:  Deleting the delete flag for mup"
  2052.  
  2053.         DeleteRegValue $(TempKey) "DeleteFlag"
  2054.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2055.             Debug-Output "OEMNPRNW.INF:  Failed to delete Mups Delete Flag"
  2056.         endif
  2057.  
  2058.         CloseRegKey $(TempKey)
  2059.     else
  2060.         Debug-Output "OEMNPRNW.INF:  Failed to open "$(TempKeyName)
  2061.     endif
  2062.  
  2063.  
  2064.     ;
  2065.     ; Set the group Order
  2066.     ;
  2067.  
  2068.     Shell $(NwSubsInf) InstallEx-ServiceGroupOrder $(GroupOrderToFollow) $(SvcList)
  2069.     Ifstr(i) $($R0) != NO_ERROR
  2070.         set CommonStatus = STATUS_NO_EFFECT
  2071.     Endif
  2072.  
  2073.     FreeLibrary $(NwLibHandle)
  2074.  
  2075.     goto end
  2076.  
  2077. ;-----------------------------------------------
  2078. ; Removenetware section
  2079. ;-----------------------------------------------
  2080. removenetware = +
  2081.  
  2082.     StartWait
  2083.  
  2084.     LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  2085.  
  2086.     ;
  2087.     ; Remove the SAM Redirection changes made to server
  2088.     ;
  2089.  
  2090.     ifstr(i) $(AdvancedServer) == "YES"
  2091.         Set TempKeyName = $(!NTN_ServiceBase)"\LanmanServer"    
  2092.         OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  2093.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2094.             GetRegValue $(TempKey) "DependOnService" ValueData
  2095.             Set ValueList = *($(ValueData), 4)
  2096.             CloseRegKey $(TempKey)
  2097.  
  2098.             ifcontains(i) "NetWareWorkstation" in $(ValueList)
  2099.  
  2100.  
  2101.                 ;
  2102.                 ;    if SAM has been migrated, warn the user
  2103.                 ;
  2104.                 LibraryProcedure GUIResult $(NwLibHandle) NWCheckSAMMigrated
  2105.                 ifstr(i) $(GUIResult) == "TRUE"
  2106.                       set DlgType            = "MessageBox"
  2107.                     set STF_MB_TITLE    = $(FunctionTitle)
  2108.                     set STF_MB_TEXT    = $(RemoveSAMMessageText)
  2109.                     set STF_MB_TYPE    = 3
  2110.                     set STF_MB_ICON    = 4
  2111.                     set STF_MB_DEF    = 2
  2112.                     ui start "NoAdapter"
  2113.  
  2114.                     Ifstr(i) $(DLGEVENT) == "NO"
  2115.                         set CommonStatus = STATUS_USERCANCEL
  2116.                         goto end
  2117.                     endif
  2118.  
  2119.                     LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(!STF_WINDOWSSYSPATH)"\mssamsrv.dll"
  2120.                     ifstr(i) $(Status1) == "YES"
  2121.                         Debug-Output "OEMNPRNW.INF:  renaming mssamsrv.dll to samsrv.dll"
  2122.                         LibraryProcedure GUIResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\samsrv.dll" $(!STF_WINDOWSSYSPATH)"\nwsamsrv.dll"
  2123.                         LibraryProcedure GUIResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\mssamsrv.dll" $(!STF_WINDOWSSYSPATH)"\samsrv.dll"
  2124.                     endif
  2125.                 endif
  2126.  
  2127.                 Shell "" RemoveServiceDependency "LanmanServer" "NetWareWorkstation"
  2128.             
  2129.                 Debug-Output "OEMNPRNW.INF:  deleting files for SAM redirection"
  2130.                 LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwsamsrv.dll"
  2131.                 LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\sammig.exe"
  2132.             Endif
  2133.         Endif
  2134.     Endif
  2135.  
  2136.     LibraryProcedure GUIResult $(NwLibHandle) NWCleanUpNetWare
  2137.  
  2138.  
  2139.     ;
  2140.     ; Remove the group that gets created on the desktop
  2141.     ;
  2142.  
  2143.     install Remove-NetWare-Group
  2144.  
  2145.     FreeLibrary $(NwLibHandle)
  2146.  
  2147.     goto end
  2148.  
  2149.  
  2150. ;-----------------------------------------------
  2151. ; Upgrade Software section
  2152. ;-----------------------------------------------
  2153.  
  2154. updatenetware = +
  2155.     StartWait
  2156.  
  2157.     ;
  2158.     ; Assume all is well
  2159.     ;
  2160.  
  2161.     set CommonStatus = STATUS_SUCCESSFUL
  2162.  
  2163.     ;
  2164.     ; Mark for no upgrade allowed by default
  2165.     ;
  2166.  
  2167.     Set CanUpgrade = "NO"
  2168.  
  2169.     ;
  2170.     ; Check the current version.  Allow upgrade if current version is equal
  2171.     ; to or greater than installed version.
  2172.     ;
  2173.  
  2174.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\"$(Manufacturer) $(MAXIMUM_ALLOWED) SoftwareNovell
  2175.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2176.         GetRegValue $(SoftwareNovell) "CurrentVersion" VersionList
  2177.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2178.             set VersionListData = *($(VersionList), 4)
  2179.             Split-string $(VersionListData) "." SplitVersionList
  2180.             Set NWMajorVersion = *($(SplitVersionList), 1)
  2181.             Set NWMinorVersion = *($(SplitVersionList), 3)
  2182.  
  2183.             Debug-OutPut "Installed NetWare Client version is "$(VersionListData)
  2184.             Debug-OutPut "Installed NetWare Client Major version is "$(NWMajorVersion)
  2185.             Debug-OutPut "Installed NetWare Client Minor version is "$(NWMinorVersion)
  2186.  
  2187.             ifint $(MajorVersion) == $(NWMajorVersion)
  2188.                 ifint $(MinorVersion) >= $(NWMinorVersion)
  2189.                     set CanUpgrade = "YES"
  2190.                 endif
  2191.             else
  2192.                 ifint $(MajorVersion) > $(NWMajorVersion)
  2193.                     set CanUpgrade = "YES"
  2194.                 endif
  2195.             endif
  2196.  
  2197.         else
  2198.             Debug-Output "OEMNPRNW.INF:  Error getting NetWare Client version"
  2199.         endif
  2200.         CloseRegKey $(SoftwareNovell)
  2201.     Endif
  2202.  
  2203.     ;
  2204.     ; Temporarily disable upgrade if needed
  2205.     ;
  2206.  
  2207.     ; set CanUpgrade = "NO"
  2208.  
  2209.     ;
  2210.     ; Check the upgrade flag to see if upgrade allowed.
  2211.     ;
  2212.  
  2213. ;    ifstr(i) $(CanUpgrade) == "NO"
  2214. ;        Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(UpgradeButtonMessage)
  2215. ;
  2216. ;        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2217. ;            goto ShellCodeError
  2218. ;        endif
  2219. ;        goto end
  2220. ;    endif
  2221.  
  2222.     ;
  2223.     ; Check free disk space on system drive                    DISABLED 1/23/96 FOR UPDATE MODE
  2224.     ;
  2225.  
  2226. ;    shell "" CheckSystemDriveSpace
  2227. ;    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2228. ;        goto ShellCodeError
  2229. ;    else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  2230. ;        set CommonStatus = STATUS_USERCANCEL
  2231. ;        goto end
  2232. ;    endif
  2233.  
  2234.     LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(SrcDir)
  2235.     ifstr(i) $(STATUS) != "ERROR"
  2236.         set SrcDir = $(STATUS)
  2237.     Endif
  2238.  
  2239.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductNWFSName)"\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) SoftwareNovell
  2240.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2241.         GetRegValue $(SoftwareNovell) "InfName" CurrentName
  2242.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2243.             set !UG_Filename = *($(CurrentName), 4)
  2244.         Endif
  2245.         CloseRegKey $(SoftwareNovell)
  2246.     Endif
  2247.  
  2248.     ;
  2249.     ; Check for ODI Drivers
  2250.     ;
  2251.  
  2252.     Shell $(NwSubsInf) GetTotalAdapterList
  2253.  
  2254.     Set OdiProductNameList            = $($R0)
  2255.     Set OdiTitleList                    = $($R1)
  2256.     Set OdiCardList                    = $($R2)
  2257.     Set NumberOdiAdapters            = $($R3)
  2258.     Set NdisProductNameList            = $($R4)
  2259.     Set NdisTitleList                    = $($R5)
  2260.     Set NdisCardList                    = $($R6)
  2261.     Set NumberNdisAdapters            = $($R7)
  2262.     Set ODINSUPCardNumber            = $($R8)
  2263.     Set NetWareIPCardNumList        = $($R9)
  2264.     Set NumberNetWareIPAdapters    = $($R10)
  2265.  
  2266.     ;
  2267.     ; If ODI adapters installed, check to see if they are using the
  2268.     ; old inf files to install and remove.
  2269.     ;
  2270.  
  2271.     set RemovedODIAdapters = 0
  2272.     set ODIInfOptionList = {}
  2273.     ifint $(NumberOdiAdapters) > 0
  2274.         LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(!STF_WINDOWSSYSPATH)"\oemnadna.inf"
  2275.         ifstr(i) $(Status1) == "YES"
  2276.             Debug-Output "OEMNPRNW.INF:  Old ODI drivers installed"
  2277.  
  2278.             set CardsKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
  2279.             ForListDo $(OdiCardList)
  2280.  
  2281.                 ;
  2282.                 ; Find the associated inf file name
  2283.                 ;
  2284.  
  2285.                 set ODICard = $($)
  2286.                 set TempKeyName = $(CardsKeyName)"\"$(ODICard)"\NetRules"
  2287.                 OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  2288.                 ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2289.                     GetRegValue $(TempKey) "InfName" ValueData
  2290.                     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2291.                         Set InfName = *($(ValueData), 4)
  2292.                         GetRegValue $(TempKey) "InfOption" ValueData
  2293.                         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2294.                             Set InfOption = *($(ValueData), 4)
  2295.  
  2296.                             ;
  2297.                             ; Add to option list so we can make an atempt at
  2298.                             ; readding the ODI Adapter later
  2299.                             ;
  2300.  
  2301.                             Set ODIInfOptionList = >($(ODIInfOptionList), $(InfOption))
  2302.  
  2303.                             ;
  2304.                             ; Call the inf to remove the ODI Adapter
  2305.                             ;
  2306.  
  2307.                             set OldInstallMode = $(!NTN_InstallMode)
  2308.                             set !NTN_InstallMode = deinstall
  2309.                             set OldNTN_RegBase = $(!NTN_RegBase)
  2310.                             set !NTN_RegBase = $(CardsKeyName)"\"$(ODICard)
  2311.                     
  2312.                             Shell $(InfName) InstallOption, $(!STF_LANGUAGE), $(InfOption), "", "YES", "YES", "NO"
  2313.                     
  2314.                             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2315.                                 goto ShellCodeError
  2316.                             endif
  2317.                     
  2318.                             set !NTN_RegBase = $(OldNTN_RegBase)
  2319.                             set !NTN_InstallMode = $(OldInstallMode)
  2320.  
  2321.                             ;
  2322.                             ; set flag so message will be displayed at end of upgrade
  2323.                             ;
  2324.  
  2325.                             set RemovedODIAdapters = 1
  2326.                         else
  2327.                             Debug-Output "OEMNPRNW.INF:  Failed to get InfOption value"
  2328.                             CloseRegKey $(TempKey)
  2329.                         endif
  2330.                     else
  2331.                         Debug-Output "OEMNPRNW.INF:  Failed to get InfName value"
  2332.                         CloseRegKey $(TempKey)
  2333.                     endif
  2334.                     CloseRegKey $(TempKey)
  2335.                 else
  2336.                     Debug-Output "OEMNPRNW.INF:  Failed to open key "$(TempKeyName)
  2337.                 endif
  2338.             EndForListDo
  2339.         endif
  2340.     endif
  2341.  
  2342.     Debug-Output "OEMNPRNW.INF:  ODIInfOptionList is "$(ODIInfOptionList)
  2343.  
  2344.     ;
  2345.     ; If NWIP is installed, check to see if they are using the
  2346.     ; old NWIP.SYS.
  2347.     ;
  2348.  
  2349.     set RemovedNWIP = 0
  2350.     Set TempKeyName = $(!NTN_ServiceBase)"\NWIP"
  2351.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  2352.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2353.           Debug-Output "OEMNPRNW.INF:  Old NWIP installed.  Must remove it."
  2354.         CloseRegKey $(TempKey)
  2355.  
  2356.         ;
  2357.         ; Save NWIP parameters
  2358.         ;
  2359.  
  2360.         Set TempKeyName = $(!NTN_ServiceBase)"\NWIP\Parameters"
  2361.         OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  2362.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2363.             set DomainName = ""
  2364.             set Compatibility = ""
  2365.             set AutoRetries = ""
  2366.             set AutoRetrySecs = ""
  2367.             set NSQBroadcast = ""
  2368.             set NearestIPServer = {}
  2369.             set PreferredDSS = {}
  2370.  
  2371.               GetRegValue $(TempKey) "NetWare/IP Domain" KeyValueList
  2372.               ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2373.                   set DomainName = *($(KeyValueList), 4)
  2374.               else
  2375.                   Debug-Output "OEMNPRNW.INF:  Failed to get NWIP DomainName"
  2376.               endif
  2377.  
  2378.               GetRegValue $(TempKey) "1.1Compatibility" KeyValueList
  2379.               ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2380.                   set Compatibility = *($(KeyValueList), 4)
  2381.               else
  2382.                   Debug-Output "OEMNPRNW.INF:  Failed to get NWIP 1.1 Compatibility"
  2383.               endif
  2384.  
  2385.               GetRegValue $(TempKey) "AutoRetries" KeyValueList
  2386.               ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2387.                   set AutoRetries = *($(KeyValueList), 4)
  2388.               else
  2389.                   Debug-Output "OEMNPRNW.INF:  Failed to get NWIP AutoRetries"
  2390.               endif
  2391.  
  2392.               GetRegValue $(TempKey) "AutoRetry Secs" KeyValueList
  2393.               ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2394.                   set AutoRetrySecs = *($(KeyValueList), 4)
  2395.               else
  2396.                   Debug-Output "OEMNPRNW.INF:  Failed to get NWIP AutoRetry Secs"
  2397.               endif
  2398.  
  2399.               GetRegValue $(TempKey) "NSQ Broadcast" KeyValueList
  2400.               ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2401.                   set NSQBroadcast = *($(KeyValueList), 4)
  2402.               else
  2403.                   Debug-Output "OEMNPRNW.INF:  Failed to get NWIP NSQ Broadcast"
  2404.               endif
  2405.  
  2406.               GetRegValue $(TempKey) "Nearest NetWare/IP Server" KeyValueList
  2407.               ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2408.                   set NearestIPServer = *($(KeyValueList), 4)
  2409.               else
  2410.                   Debug-Output "OEMNPRNW.INF:  Failed to get NWIP Nearest NetWare/IP Server"
  2411.               endif
  2412.  
  2413.               GetRegValue $(TempKey) "Preferred DSS" KeyValueList
  2414.               ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2415.                   set PreferredDSS = *($(KeyValueList), 4)
  2416.               else
  2417.                   Debug-Output "OEMNPRNW.INF:  Failed to get NWIP Preferred DSS"
  2418.               endif
  2419.  
  2420.             CloseRegKey $(TempKey)
  2421.  
  2422.             Debug-Output "OEMNPRNW.INF:  DomainName        = "$(DomainName)
  2423.             Debug-Output "OEMNPRNW.INF:  Compatibility    = "$(Compatibility)
  2424.             Debug-Output "OEMNPRNW.INF:  AutoRetries        = "$(AutoRetries)
  2425.             Debug-Output "OEMNPRNW.INF:  AutoRetrySecs    = "$(AutoRetrySecs)
  2426.             Debug-Output "OEMNPRNW.INF:  NSQBroadcast        = "$(NSQBroadcast)
  2427.             Debug-Output "OEMNPRNW.INF:  NearestIPServer    = "$(NearestIPServer)
  2428.             Debug-Output "OEMNPRNW.INF:  PreferredDSS        = "$(PreferredDSS)
  2429.  
  2430.             ;
  2431.             ; Set a global varible that the installation of NetWareIP can look
  2432.             ; at later to see if it needs to pop-up the property sheets to
  2433.             ; configure NetWareIP at that point.  Since we saved the parameters
  2434.             ; from the old installation of NWIP, set the variable.
  2435.             ;
  2436.  
  2437.             set !HaveNetWareIPParameters = "YES"
  2438.         else
  2439.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\NWIP\Parameters"
  2440.         endif
  2441.  
  2442.           ;
  2443.           ; Call old NWIP inf file to remove NWIP
  2444.           ;
  2445.  
  2446.           set OldInstallMode = $(!NTN_InstallMode)
  2447.           set !NTN_InstallMode = deinstall
  2448.           
  2449.           Shell "oemnsvip.inf" InstallOption, $(!STF_LANGUAGE), "NWIP", "", "YES", "YES", "NO"
  2450.           
  2451.           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2452.               goto ShellCodeError
  2453.           endif
  2454.           
  2455.           set !NTN_InstallMode = $(OldInstallMode)
  2456.  
  2457.           ;
  2458.           ; set flag so message will be displayed at end of upgrade
  2459.           ;
  2460.  
  2461.           set RemovedNWIP = 1
  2462.     endif
  2463.  
  2464.  
  2465.     ;
  2466.     ; Install NWLINK if not already installed.  Our client now depends
  2467.     ; on NWLINK.
  2468.     ;
  2469.  
  2470.     shell "" Install-NWLINK
  2471.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2472.         goto ShellCodeError
  2473.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  2474.         goto fatal
  2475.     endif
  2476.  
  2477.     ;
  2478.     ; Create directories for language dependent files
  2479.     ;
  2480.  
  2481.     install "Install-NetWare-Dir"
  2482.  
  2483.     ;
  2484.     ; Copy all files to destination
  2485.     ;
  2486.  
  2487.     set AddCopy    = "YES"
  2488.     set DoCopy    = "YES"
  2489.  
  2490.     Install "Install-Files"
  2491.     ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  2492.         Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  2493.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2494.             goto ShellCodeError
  2495.         endif
  2496.         set Error = $($R0)
  2497.         goto fatal
  2498.     endif
  2499.  
  2500.     set AddCopy = $(OriginalAddCopy)
  2501.     set DoCopy = $(OriginalDoCopy)
  2502.  
  2503.     StartWait
  2504.  
  2505.     ;
  2506.     ; Create the NetWare group and icons
  2507.     ;
  2508.  
  2509.     install "Install-NetWare-Group"
  2510.  
  2511.     ;
  2512.     ; Add different various parameters to the system
  2513.     ;
  2514.  
  2515.     Install "Install-Parameters"
  2516.  
  2517.     ;
  2518.     ; Install the NetWare Gina dll.
  2519.     ;
  2520.  
  2521.     shell "" Install-Gina
  2522.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2523.         goto ShellCodeError
  2524.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  2525.  
  2526.         ;
  2527.         ; Set common status and exit
  2528.         ;
  2529.  
  2530.         set CommonStatus    = $($R0)
  2531.         goto setfailed
  2532.     endif
  2533.  
  2534.     ;
  2535.     ; Install our help files in the NT help
  2536.     ;
  2537.  
  2538.     Install "Install-Help"
  2539.  
  2540.     ;
  2541.     ; Load our NWSETUP.DLL library
  2542.     ;
  2543.  
  2544.     LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  2545.  
  2546.       ;
  2547.     ; Novell.cpl changed to Nwcpl.cpl so delete old name.
  2548.     ;
  2549.  
  2550.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\novell.cpl"
  2551.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\novellr.dll"
  2552.     ifint $(NTMajorVersion) == "4"
  2553.         LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwcpl.cpl"
  2554.     endif
  2555.  
  2556.  
  2557.     ;
  2558.     ; Delete all old NT win16 library files.
  2559.     ; Real 16 bit windows libraries were copied with "Install-Files"
  2560.     ; These files are no longer used.
  2561.     ;
  2562.  
  2563.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSPATH)"\system\nwipxspx.dll"
  2564.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSPATH)"\system\netware.drv"
  2565.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwcalls.dll"
  2566.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwnet.dll"
  2567.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwclient.dll"
  2568.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwncp.dll"
  2569.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwlocale.dll"
  2570.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwcvdd.dll"
  2571.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwdrvvdd.dll"
  2572.  
  2573.     ;
  2574.     ; The 32 bit libraries have changed.  Supwin32.dll is no longer used as
  2575.     ; well as the temporary psapi32.dll and prtwinnt.dll.
  2576.     ;
  2577.  
  2578.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\supwin32.dll"
  2579.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\psapi32.dll"
  2580.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\prtwinnt.dll"
  2581.  
  2582.     ;
  2583.     ; These files were originally installed in the wrong directories.  New
  2584.     ; ones were copied to the correct directories so delete these.
  2585.     ;
  2586.  
  2587.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netx.msg"
  2588.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\vipx.msg"
  2589.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwevents.dll"
  2590.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\tli_win.dll"
  2591.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwelcome.bmp"
  2592.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\nwmsgsvc.exe"
  2593.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\reconsvc.exe"
  2594.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\readme.hlp"
  2595.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\nwip.sys"
  2596.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nwrights.dll"
  2597.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nwshlxnt.dll"
  2598.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nt3using.hlp"
  2599.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nt3using.cnt"
  2600.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nt4using.hlp"
  2601.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nt4using.cnt"
  2602.  
  2603.  
  2604.     ;
  2605.     ; These files are now obsolete so delete them if they exist
  2606.     ;
  2607.  
  2608.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\gdos.exe"
  2609.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\shellvdd.dll"
  2610.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\clean.exe"
  2611.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\vipx.msg"
  2612.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\netx.msg"
  2613.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\loginwnt.hlp"
  2614.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3admin.hlp"
  2615.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4admin.hlp"
  2616.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\reconsvc.exe"
  2617.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwconfig.nt"
  2618.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwauto.nt"
  2619.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netx.exe"
  2620.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSPATH)"\netware.pif"
  2621.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwchgpwd.exe"
  2622.  
  2623.     ;
  2624.     ; Changes made to the ODI team stuff include renaming route.sys to
  2625.     ; sroute.sys.  Delete old files and fix registry.
  2626.     ;
  2627.  
  2628.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\oemnadna.inf"
  2629.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\oemnadnb.inf"
  2630.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\oemnadnc.inf"
  2631.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\oemnadnd.inf"
  2632.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\route.sys"
  2633.  
  2634.     Set TempKeyName = $(!NTN_ServiceBase)"\"$(ProductSROUTEName)
  2635.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  2636.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2637.         Debug-Output "OEMNPRNW.INF:  Fixing OdiSourceRouting"
  2638.         SetRegValue $(TempKey) {"ImagePath", $(NoTitle), $(!REG_VT_EXPAND_SZ), "\SystemRoot\System32\NetWare\sroute.sys"}
  2639.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2640.             Debug-Output "OEMNPRNW.INF:  Failed to fix ODISourceRouting ImagePath"
  2641.         endif
  2642.         CloseRegKey $(TempKey)
  2643.     endif
  2644.  
  2645.     ;
  2646.     ; Set up to use NWLINK
  2647.     ;
  2648.     ; These files are now obsolete because we are running under
  2649.     ; NWLINK.  Delete them if they exist
  2650.     ;
  2651.  
  2652.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\ipxapi.sys"
  2653.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\ipxspx.sys"
  2654.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\spxapi.sys"
  2655.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\vmlid.sys"
  2656.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\ipxapi.dll"
  2657.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\spxapi.dll"
  2658.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\wshnw.dll"
  2659.  
  2660.     ;
  2661.     ; Reload lines in autoexec.nt and reload performance counters
  2662.     ;
  2663.  
  2664.     LibraryProcedure GUIResult $(NwLibHandle) NWCleanUpAutoexec
  2665.     LibraryProcedure GUIResult $(NwLibHandle) NWFixUpAutoexec
  2666.     LibraryProcedure GUIResult $(NwLibHandle) NWUnLoadPerformanceCounters
  2667.     LibraryProcedure GUIResult $(NwLibHandle) NWLoadPerformanceCounters
  2668.  
  2669.     ;
  2670.     ; Free the NWSETUP.DLL
  2671.     ;
  2672.  
  2673.     FreeLibrary $(NwLibHandle)
  2674.  
  2675.     ;
  2676.     ; Remove the old services from the registry and from eventlog.
  2677.     ; Also from software section of registry.
  2678.     ;
  2679.  
  2680.     Set TempKeyName = $(!NTN_ServiceBase)
  2681.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  2682.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2683.         Debug-Output "OEMNPRNW.INF:  Deleting all our IPXSPX services"
  2684.  
  2685.         DeleteRegTree $(TempKey) "IpxApi"
  2686.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2687.             Debug-Output "OEMNPRNW.INF:  Failed to delete IpxApi registry key"
  2688.         endif
  2689.  
  2690.         DeleteRegTree $(TempKey) "IpxSpx"
  2691.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2692.             Debug-Output "OEMNPRNW.INF:  Failed to delete IpxSpx registry key"
  2693.         endif
  2694.  
  2695.         DeleteRegTree $(TempKey) "OdiVMLID"
  2696.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2697.             Debug-Output "OEMNPRNW.INF:  Failed to delete OdiVMLID registry key"
  2698.         endif
  2699.  
  2700.         DeleteRegTree $(TempKey) "SpxApi"
  2701.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2702.             Debug-Output "OEMNPRNW.INF:  Failed to delete SpxApi registry key"
  2703.         endif
  2704.  
  2705.         DeleteRegTree $(TempKey) "NetWareAutoReconnect"
  2706.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2707.             Debug-Output "OEMNPRNW.INF:  Failed to delete NetWareAutoReconnect registry key"
  2708.         endif
  2709.  
  2710.         CloseRegKey $(TempKey)
  2711.     else
  2712.         Debug-Output "OEMNPRNW.INF:  Failed to open services key to delete old services"
  2713.     endif
  2714.  
  2715.     Set TempKeyName = $(!NTN_ServiceBase)"\EventLog\System"
  2716.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  2717.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2718.         Debug-Output "OEMNPRNW.INF:  Deleting all our IPXSPX services from EventLog"
  2719.  
  2720.         DeleteRegTree $(TempKey) "IpxApi"
  2721.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2722.             Debug-Output "OEMNPRNW.INF:  Failed to delete IpxApi registry key from EventLog"
  2723.         endif
  2724.  
  2725.         DeleteRegTree $(TempKey) "IpxSpx"
  2726.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2727.             Debug-Output "OEMNPRNW.INF:  Failed to delete IpxSpx registry key from EventLog"
  2728.         endif
  2729.  
  2730.         DeleteRegTree $(TempKey) "OdiVMLID"
  2731.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2732.             Debug-Output "OEMNPRNW.INF:  Failed to delete OdiVMLID registry key from EventLog"
  2733.         endif
  2734.  
  2735.         DeleteRegTree $(TempKey) "SpxApi"
  2736.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2737.             Debug-Output "OEMNPRNW.INF:  Failed to delete SpxApi registry key from EventLog"
  2738.         endif
  2739.  
  2740.         DeleteRegTree $(TempKey) "NetWareAutoReconnect"
  2741.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2742.             Debug-Output "OEMNPRNW.INF:  Failed to delete NetWareAutoReconnect registry key"
  2743.         endif
  2744.  
  2745.         CloseRegKey $(TempKey)
  2746.     else
  2747.         Debug-Output "OEMNPRNW.INF:  Failed to open services\eventlog key to delete old services"
  2748.     endif
  2749.  
  2750.     Set TempKeyName = $(!NTN_SoftwareBase)"\Novell"
  2751.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  2752.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2753.         Debug-Output "OEMNPRNW.INF:  Deleting all our IPXSPX services from Software"
  2754.  
  2755.         DeleteRegTree $(TempKey) "IpxSpx"
  2756.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2757.             Debug-Output "OEMNPRNW.INF:  Failed to delete IpxSpx registry key from Software"
  2758.         endif
  2759.  
  2760.         DeleteRegTree $(TempKey) "OdiVMLID"
  2761.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2762.             Debug-Output "OEMNPRNW.INF:  Failed to delete OdiVMLID registry key from Software"
  2763.         endif
  2764.  
  2765.         CloseRegKey $(TempKey)
  2766.     else
  2767.         Debug-Output "OEMNPRNW.INF:  Failed to open software key to delete old services"
  2768.     endif
  2769.  
  2770.  
  2771.     ;
  2772.     ;    Fix to change the \NWGINA\Auto Configuation key to \NWGINA\Workstation Manager
  2773.     ;
  2774.     Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Workstation Manager"
  2775.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey          ; open new key
  2776.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                      ; if have new key, then done
  2777.         Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Auto Configuration"
  2778.         OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey          ; open old key
  2779.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                      ; if no old, then done
  2780.                Debug-Output "OEMNPRNW.INF:  Found \NWGINA\Auto Configuration"
  2781.             EnumRegValue $(TempKey) TempValueList                                          ; get all values for old key
  2782.             CloseRegKey $(TempKey)                                                        ; close old key
  2783.             Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Workstation Manager"
  2784.             CreateRegKey $(!REG_H_LOCAL) {$(TempKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey
  2785.                ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                            ; create new key
  2786.                    Debug-Output "OEMNPRNW.INF:  Created \NWGINA\Workstation Manager"
  2787.                 ForListDo $(TempValueList)
  2788.                     SetRegValue $(TempKey) $($)                                          ; set values in new key
  2789.                     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                
  2790.                         Debug-Output "OEMNPRNW.INF:  Setting \NWGINA\Workstation Manager\"*($($), 1)
  2791.                     else
  2792.                         Debug-Output "OEMNPRNW.INF:  Error setting \NWGINA\Workstation Manager\"*($($), 1)
  2793.                     endif
  2794.                 EndForListDo
  2795.                else
  2796.                    Debug-Output "OEMNPRNW.INF:  Error creating \NWGINA\Workstation Manager"
  2797.             endif
  2798.             CloseRegKey $(TempKey)
  2799.         endif
  2800.     else
  2801.         CloseRegKey $(TempKey)
  2802.     endif
  2803.  
  2804.     ;
  2805.     ;    Delete "SOFTWARE\Novell\NWGINA\Auto Configuration" if it exists
  2806.     ;
  2807.     Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA"
  2808.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey          ; open old key base
  2809.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                  ; if no base, then done
  2810.         DeleteRegKey $(TempKey) "Auto Configuration"                                ; delete old key from base
  2811.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                  ; if no value, then done
  2812.                Debug-Output "OEMNPRNW.INF:  Deleting \NWGINA\Auto Configuration"
  2813.         endif
  2814.     endif
  2815.     
  2816.  
  2817.     ;
  2818.     ;    Move the Enabled parameter from the Dynamic Local User to the Workstation Manager key
  2819.     ;
  2820.     Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Dynamic Local User"
  2821.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey          ; open old parameter key
  2822.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                  ; if no old, then done
  2823.         GetRegValue $(TempKey) "Enabled" EnabledList                                  ; get old values
  2824.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                  ; if no value, then done
  2825.             Debug-Output "OEMNPRNW.INF:  Deleting old \NWGINA\Dynamic Local User\Enabled"
  2826.             DeleteRegValue $(TempKey) *($(EnabledList), 1)                        ; delete old value
  2827.             CloseRegKey $(TempKey)                                                          ; close old key
  2828.             Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Workstation Manager"
  2829.             OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey        ; open new key
  2830.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                ; if no new key
  2831.                 CreateRegKey $(!REG_H_LOCAL) {$(TempKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey
  2832.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                            ; create new key
  2833.                     Debug-Output "OEMNPRNW.INF:  Error creating \NWGINA\Workstation Manager"
  2834.                     goto EnabledError                                                    ; if error, then done
  2835.                 endif                
  2836.             endif
  2837.             GetRegValue $(TempKey) "Enabled" TempEnabledList                            ; get new value
  2838.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                ; if new value, then done
  2839.                 SetRegValue $(TempKey) $(EnabledList)                                        ; set new value
  2840.                 ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                
  2841.                     Debug-Output "OEMNPRNW.INF:  Moved Enabled to \NWGINA\Workstation Manager"
  2842.                 else
  2843.                     Debug-Output "OEMNPRNW.INF:  Error moving Enabled to \NWGINA\Workstation Manager"
  2844.                 endif
  2845.             endif
  2846.         endif                        ; end of get old value
  2847.         CloseRegKey $(TempKey)         ; closes either the old key or the new key (depending on how far we made it)
  2848.     endif                            ; end of open old key
  2849. EnabledError = +
  2850.  
  2851.     ;
  2852.     ;    Move the Trusted Trees parameter from the Dynamic Local User to the Workstation Manager key
  2853.     ;
  2854.     Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Dynamic Local User"
  2855.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey          ; open old parameter key
  2856.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                  ; if no old, then done
  2857.         GetRegValue $(TempKey) "Trusted Trees" TrustedTreesList                              ; get old values
  2858.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                      ; if no value, then done
  2859.             Debug-Output "OEMNPRNW.INF:  Deleting old \NWGINA\Dynamic Local User\Trusted Trees"
  2860.             DeleteRegValue $(TempKey) *($(TrustedTreesList), 1)                        ; delete old value
  2861.             CloseRegKey $(TempKey)                                                          ; close old key
  2862.             Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Workstation Manager"
  2863.             OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey        ; open new key
  2864.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                ; if no new key
  2865.                 CreateRegKey $(!REG_H_LOCAL) {$(TempKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey
  2866.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                            ; create new key
  2867.                     Debug-Output "OEMNPRNW.INF:  Error creating \NWGINA\Workstation Manager"
  2868.                     goto TrustedTreesError                                                ; if error, then done
  2869.                 endif                
  2870.             endif
  2871.             GetRegValue $(TempKey) "Trusted Trees" TempTrustedTreesList                     ; get new value
  2872.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                ; if new value, then done
  2873.                 SetRegValue $(TempKey) $(TrustedTreesList)                                    ; set new value
  2874.                 ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                
  2875.                     Debug-Output "OEMNPRNW.INF:  Moved Trusted Trees to \NWGINA\Workstation Manager"
  2876.                 else
  2877.                     Debug-Output "OEMNPRNW.INF:  Error moving Trusted Trees to \NWGINA\Workstation Manager"
  2878.                 endif
  2879.             endif
  2880.         endif                        ; end of get old value
  2881.         CloseRegKey $(TempKey)         ; closes either the old key or the new key (depending on how far we made it)
  2882.     endif                            ; end of open old key
  2883. TrustedTreesError = +
  2884.  
  2885.     ;
  2886.     ;    Move the LSL Max Buffer Size parameter from NetWareWorkstation\Parameters to LSL\Parameters
  2887.     ;
  2888.     Set TempKeyName = $(!NTN_ServiceBase)"\NetWareWorkstation\Parameters"
  2889.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey          ; open old parameter key
  2890.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                  ; if no old, then done
  2891.         GetRegValue $(TempKey) "Max Buffer Size" MaxBufferSizeList                       ; get old values
  2892.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                      ; if no value, then done
  2893.             Debug-Output "OEMNPRNW.INF:  Deleting old \NetWareWorkstation\Parameters\Max Buffer Size"
  2894.             DeleteRegValue $(TempKey) *($(MaxBufferSizeList), 1)                        ; delete old value
  2895.             CloseRegKey $(TempKey)                                                          ; close old key
  2896.             Set TempKeyName = $(!NTN_ServiceBase)"\LSL\Parameters"
  2897.             OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey        ; open new key
  2898.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                ; if no new key
  2899.                 CreateRegKey $(!REG_H_LOCAL) {$(TempKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey
  2900.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                            ; create new key
  2901.                     Debug-Output "OEMNPRNW.INF:  Error creating \LSL\Parameters"
  2902.                     goto MaxBufferSizeError                                                ; if error, then done
  2903.                 endif                
  2904.             endif
  2905.             GetRegValue $(TempKey) "Max Buffer Size" TempMaxBufferSizeList                 ; get new value
  2906.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                ; if new value, then done
  2907.                 SetRegValue $(TempKey) $(MaxBufferSizeList)                                   ; set new value
  2908.                 ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                                
  2909.                     Debug-Output "OEMNPRNW.INF:  Moved Max Buffer Size to \LSL\Parameters"
  2910.                 else
  2911.                     Debug-Output "OEMNPRNW.INF:  Error moving Max Buffer Size to \LSL\Parameters"
  2912.                 endif
  2913.             endif
  2914.         endif                        ; end of get old value
  2915.         CloseRegKey $(TempKey)         ; closes either the old key or the new key (depending on how far we made it)
  2916.     endif                            ; end of open old key
  2917. MaxBufferSizeError = +
  2918.  
  2919.     ;
  2920.     ; If language changes, then delete the old GINA login script and profile scripts
  2921.     ;
  2922.     ifstr(i) $(OldNLSDirName) != $(NLSDirName)
  2923.         Debug-Output "OEMNPRNW.INF:  Language changed it was - "$(OldNLSDirName)" it is now - "$(NLSDirName)
  2924.  
  2925.         Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Login Screen"
  2926.         OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey          
  2927.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                    
  2928.             DeleteRegValue $(TempKey) "DefaultLoginScript"                    
  2929.             ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                    
  2930.                    Debug-Output "OEMNPRNW.INF:  Deleted \NWGINA\Login Screen\DefaultLoginScript"
  2931.             else
  2932.                    Debug-Output "OEMNPRNW.INF:  Error Deleting \NWGINA\Login Screen\DefaultLoginScript"
  2933.             endif
  2934.             DeleteRegValue $(TempKey) "DefaultProfileScript"                    
  2935.             ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)                    
  2936.                    Debug-Output "OEMNPRNW.INF:  Deleted \NWGINA\Login Screen\DefaultProfileScript"
  2937.             else
  2938.                    Debug-Output "OEMNPRNW.INF:  Error Deleting \NWGINA\Login Screen\DefaultProfileScript"
  2939.             endif
  2940.         endif
  2941.     endif
  2942.  
  2943.     ;
  2944.     ; Remove IpxSpx from the transports value in Winsock
  2945.     ;
  2946.  
  2947.     Set TempKeyName = $(!NTN_ServiceBase)"\WinSock\Parameters"
  2948.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  2949.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2950.         GetRegValue $(TempKey) "Transports" ValueData
  2951.     
  2952.         Set ValueList = *($(ValueData), 4)
  2953.         Set NewList = {}
  2954.     
  2955.         ForListDo $(ValueList)
  2956.             Set Item = $($)
  2957.             Ifstr(i) $(Item) != "IpxSpx"
  2958.                 Set NewList = >($(NewList), $(Item))
  2959.             Endif
  2960.         EndForListDo
  2961.     
  2962.         SetRegValue $(TempKey) {"Transports", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
  2963.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2964.             Debug-Output "OEMNPRNW.INF: Cant update Winsock Transports value"
  2965.         Endif
  2966.         CloseRegKey $(TempKey)
  2967.     else
  2968.         Debug-Output "OEMNPRNW.INF:  Can't open key "$(TempKeyName)
  2969.     Endif
  2970.  
  2971.     ;
  2972.     ; Set up registry for new explorer.  This is done with a call
  2973.     ; to the dll.  The provider for NT 3.51 will also need to call
  2974.     ; this function if it detects an upgrade from NT 3.51 to 4.0
  2975.     ; has occured.
  2976.     ;
  2977.     
  2978.     Shell "" InstallEx-NetworkProvider
  2979.  
  2980.     ;
  2981.     ; Remove the VipxVDD key from HKEY_LOCAL_MACHINE\Software\Novell
  2982.     ; if it exists
  2983.     ;
  2984.  
  2985.     set ProductName                = "VipxVDD"
  2986.     set VIPXVDDManufactureBase    = $(!NTN_SoftwareBase)"\"$(Manufacturer)
  2987.  
  2988.     OpenRegKey $(!REG_H_LOCAL) "" $(VIPXVDDManufactureBase) $(!REG_KEY_ALL_ACCESS) MFBaseKey
  2989.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  2990.         DeleteRegTree $(MFBaseKey) $(ProductName)
  2991.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  2992.             Debug-Output "FATAL Registry Error:  Error Deleting Key $(ProductName)"
  2993.         endif
  2994.         CloseRegKey $(MFBaseKey)
  2995.     else
  2996.         Debug-Output "FATAL Registry Error:  Error Opening Key $(VIPXVDDManufactureBase)"
  2997.     endif
  2998.  
  2999.     ;
  3000.     ; Update the CurrentVersion value in SOFTWARE\NOVELL
  3001.     ;
  3002.  
  3003.     set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)
  3004.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  3005.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3006.         SetRegValue $(TempKey) {"CurrentVersion", $(NoTitle), $(!REG_VT_SZ), $(ProductVersion)}
  3007.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3008.             Debug-Output "OEMNPRNW.INF:  Unable to update CurrentVersion value in "$(TempKeyName)
  3009.         endif
  3010.     
  3011.         CloseRegKey $(TempKey)
  3012.     Endif
  3013.  
  3014.     ;
  3015.     ; The following is stuff that relates to installed services that
  3016.     ; need to change because of new requirements and so forth.
  3017.     ;
  3018.  
  3019.     ;
  3020.     ; Special case for ODINSUP cause he is not installed from this inf,
  3021.     ; therfore, he is not listed in the UpdateServiceNameList.
  3022.     ;
  3023.  
  3024.       Set ProductKeyName = $(!NTN_ServiceBase)"\ODINSUP"
  3025.       OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) ProductKey
  3026.       ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3027.           Debug-Output "OEMNPRNW.INF:  ODINSUP is installed, fix it up"
  3028.  
  3029.           ;
  3030.           ; Set the correct path in the registry for the events file.  The
  3031.           ; NWEVENTS.DLL file was moved to a new location.  Must reflect this
  3032.           ; in the registry for all things that use it.
  3033.           ;
  3034.           ; Open key to the appropriate system eventlog service
  3035.           ;
  3036.  
  3037.           Set TempKeyName = $(!NTN_ServiceBase)"\EventLog\System\ODINSUP"
  3038.           OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  3039.           ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3040.  
  3041.               ;
  3042.               ; Set the new events log value same as LSL event log file
  3043.               ;
  3044.  
  3045.               SetRegValue $(TempKey) {"EventMessageFile", $(NoTitle), $(!REG_VT_EXPAND_SZ), $(ProductLSLEventFile)}
  3046.               ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3047.                   Debug-Output "OEMNPRNW.INF: Failed to fix EventMessageFile for ODINSUP"
  3048.               endif
  3049.  
  3050.               ;
  3051.               ; Close the key
  3052.               ;
  3053.  
  3054.               CloseRegKey $(TempKey)
  3055.           else
  3056.               Debug-Output "OEMNPRNW.INF:  Failed to open key "$(TempKeyName)
  3057.           endif
  3058.  
  3059.         ;
  3060.         ; Update the product software information
  3061.         ;
  3062.  
  3063.         Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\ODINSUP\CurrentVersion"
  3064.         OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  3065.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3066.  
  3067.             ;
  3068.             ; Set the new major version number
  3069.             ;
  3070.  
  3071.             SetRegValue $(TempKey) {"MajorVersion", $(NoTitle), $(!REG_VT_DWORD), $(MajorVersion)}
  3072.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3073.                 Debug-Output "OEMNPRNW.INF:  Failed to set new major version info for ODINSUP"
  3074.             endif
  3075.  
  3076.             ;
  3077.             ; Set the new minor version number
  3078.             ;
  3079.  
  3080.             SetRegValue $(TempKey) {"MinorVersion", $(NoTitle), $(!REG_VT_DWORD), $(MinorVersion)}
  3081.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3082.                 Debug-Output "OEMNPRNW.INF:  Failed to set new minor version info for ODINSUP"
  3083.             endif
  3084.  
  3085.             ;
  3086.             ; Set the new description and title
  3087.             ;
  3088.  
  3089.             SetRegValue $(TempKey) {"Description", $(NoTitle), $(!REG_VT_SZ), $(ProductODINSUPDisplayName)}
  3090.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3091.                 Debug-Output "OEMNPRNW.INF:  Failed to set Description for ODINSUP"
  3092.             endif
  3093.  
  3094.             SetRegValue $(TempKey) {"Title", $(NoTitle), $(!REG_VT_SZ), $(ProductODINSUPDisplayName)}
  3095.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3096.                 Debug-Output "OEMNPRNW.INF:  Failed to set Title for ODINSUP"
  3097.             endif
  3098.  
  3099.             ;
  3100.             ; Close the key
  3101.             ;
  3102.  
  3103.             CloseRegKey $(TempKey)
  3104.         else
  3105.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(TempKeyName)
  3106.         endif
  3107.  
  3108.         ;
  3109.         ; Fix the display name
  3110.         ;
  3111.  
  3112.         SetRegValue $(ProductKey) {"DisplayName", $(NoTitle), $(!REG_VT_SZ), $(ProductODINSUPDisplayName)}
  3113.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3114.             Debug-Output "OEMNPRNW.INF:  Failed to update DisplayName for "$(UpdateSvcOpt)
  3115.         endif
  3116.  
  3117.         ;
  3118.         ; Close the first key
  3119.         ;
  3120.  
  3121.         CloseRegKey $(ProductKey)
  3122.     endif
  3123.  
  3124.     ForListDo $(UpdateServiceNameList)
  3125.         Set UpdateSvcOpt = $($)
  3126.  
  3127.         ;
  3128.         ; Check to see if the product to be fixed is there
  3129.         ;
  3130.  
  3131.         Set ProductKeyName = $(!NTN_ServiceBase)"\"$(Product$(UpdateSvcOpt)Name)
  3132.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) ProductKey
  3133.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3134.             Debug-Output "OEMNPRNW.INF:  "$(UpdateSvcOpt)" is installed, fix it up"
  3135.  
  3136.             ;
  3137.             ; Set the correct path in the registry for the events file.  The
  3138.             ; NWEVENTS.DLL file was moved to a new location.  Must reflect this
  3139.             ; in the registry for all things that use it.
  3140.             ;
  3141.             ; Open key to the appropriate system eventlog service
  3142.             ;
  3143.  
  3144.             Set TempKeyName = $(!NTN_ServiceBase)"\EventLog\System\"$(Product$(UpdateSvcOpt)Name)
  3145.             OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  3146.             ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3147.  
  3148.                 ;
  3149.                 ; Set the new events log value
  3150.                 ;
  3151.  
  3152.                 SetRegValue $(TempKey) {"EventMessageFile", $(NoTitle), $(!REG_VT_EXPAND_SZ), $(Product$(UpdateSvcOpt)EventFile)}
  3153.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3154.                     Debug-Output "OEMNPRNW.INF: Failed to fix EventMessageFile for "$(UpdateSvcOpt)
  3155.                 endif
  3156.  
  3157.                 ;
  3158.                 ; Close the key
  3159.                 ;
  3160.  
  3161.                 CloseRegKey $(TempKey)
  3162.             else
  3163.                 Debug-Output "OEMNPRNW.INF:  Failed to open key "$(TempKeyName)
  3164.             endif
  3165.  
  3166.             ;
  3167.             ; Update the product software information
  3168.             ;
  3169.  
  3170.             Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(Product$(UpdateSvcOpt)Name)"\CurrentVersion"
  3171.             OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  3172.             ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3173.  
  3174.                 ;
  3175.                 ; Set the new major version number
  3176.                 ;
  3177.  
  3178.                 SetRegValue $(TempKey) {"MajorVersion", $(NoTitle), $(!REG_VT_DWORD), $(MajorVersion)}
  3179.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3180.                     Debug-Output "OEMNPRNW.INF:  Failed to set new major version info for "$(UpdateSvcOpt)
  3181.                 endif
  3182.  
  3183.                 ;
  3184.                 ; Set the new minor version number
  3185.                 ;
  3186.  
  3187.                 SetRegValue $(TempKey) {"MinorVersion", $(NoTitle), $(!REG_VT_DWORD), $(MinorVersion)}
  3188.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3189.                     Debug-Output "OEMNPRNW.INF:  Failed to set new minor version info for "$(UpdateSvcOpt)
  3190.                 endif
  3191.  
  3192.                 ;
  3193.                 ; Set the new description and title
  3194.                 ;
  3195.  
  3196.                 SetRegValue $(TempKey) {"Description", $(NoTitle), $(!REG_VT_SZ), $(Product$(UpdateSvcOpt)DisplayName)}
  3197.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3198.                     Debug-Output "OEMNPRNW.INF:  Failed to update Description for "$(UpdateSvcOpt)
  3199.                 endif
  3200.  
  3201.                 SetRegValue $(TempKey) {"Title", $(NoTitle), $(!REG_VT_SZ), $(Product$(UpdateSvcOpt)DisplayName)}
  3202.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3203.                     Debug-Output "OEMNPRNW.INF:  Failed to update Title for "$(UpdateSvcOpt)
  3204.                 endif
  3205.  
  3206.                 ;
  3207.                 ; Close the key
  3208.                 ;
  3209.  
  3210.                 CloseRegKey $(TempKey)
  3211.             else
  3212.                 Debug-Output "OEMNPRNW.INF:  Failed to open key "$(TempKeyName)
  3213.             endif
  3214.  
  3215.             ;
  3216.             ; Fix the display name
  3217.             ;
  3218.  
  3219.             SetRegValue $(ProductKey) {"DisplayName", $(NoTitle), $(!REG_VT_SZ), $(Product$(UpdateSvcOpt)DisplayName)}
  3220.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3221.                 Debug-Output "OEMNPRNW.INF:  Failed to update DisplayName for "$(UpdateSvcOpt)
  3222.             endif
  3223.  
  3224.             ;
  3225.             ; Add new values to Netware Workstation if needed.
  3226.             ; Open the parameters key
  3227.             ;
  3228.  
  3229.             ifstr(i) $(UpdateSvcOpt) == "NWFS"
  3230.  
  3231.                 ;
  3232.                 ; Set up redirector to be of group NetworkProvider
  3233.                 ;
  3234.  
  3235.                 SetRegValue $(ProductKey) {"Group", $(NoTitle), $(!REG_VT_SZ), "NetworkProvider"}
  3236.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3237.                     Debug-Output "OEMNPRNW.INF:  Failed to update group for "$(UpdateSvcOpt)
  3238.                 endif
  3239.  
  3240.                 ;
  3241.                 ; Update the parameters for redirector
  3242.                 ;
  3243.  
  3244.                 Set TempKeyName = $(!NTN_ServiceBase)"\"$(Product$(UpdateSvcOpt)Name)"\Parameters"
  3245.                 OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  3246.                 ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3247.     
  3248.                     ;
  3249.                     ; The name of the packet signature value changed.  Read old
  3250.                     ; value name and set the new signature level value if needed.
  3251.                     ;
  3252.  
  3253.                     GetRegValue $(TempKey) "Packet Signature" SignatureList
  3254.                     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3255.                         set SignatureListData = *($(SignatureList), 4)
  3256.                         SetRegValue $(TempKey) {"Signature Level", $(NoTitle), $(!REG_VT_DWORD), $(SignatureListData)}
  3257.                         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3258.                             Debug-Output "OEMNPRNW.INF: Failed to update signature level for "$(UpdateSvcOpt)
  3259.                         endif
  3260.                         DeleteRegValue $(TempKey) "Packet Signature"
  3261.                         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3262.                             Debug-Output "OEMNPRNW.INF:  Failed to delete the Packet Signature for NWGINA.DLL"
  3263.                         endif
  3264.                     else
  3265.                         GetRegValue $(TempKey) "Signature Level" SignatureList
  3266.                         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3267.                             SetRegValue $(TempKey) {"Signature Level", $(NoTitle), $(!REG_VT_DWORD), 1}
  3268.                             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3269.                                 Debug-Output "OEMNPRNW.INF: Failed to add signature level value for "$(UpdateSvcOpt)
  3270.                             endif
  3271.                         else
  3272.                             Debug-Output "OEMNPRNW.INF:  Signature level value for "$(UpdateSvcOpt)" is already set"
  3273.                         endif
  3274.                     endif
  3275.  
  3276.                     ;
  3277.                     ; Preferred tree and context values have changed.  Read old
  3278.                     ; values and transfer to the new Tree, context pair values.
  3279.                     ;
  3280.  
  3281.                     GetRegValue $(TempKey) "Preferred Tree" TreeList
  3282.                     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3283.                         set TreeListData = *($(TreeList), 4)
  3284.                         GetRegValue $(TempKey) "Name Context" ContextList
  3285.                         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3286.                             set ContextListData = *($(ContextList), 4)
  3287.                             CreateRegKey $(TempKey) {"Trees", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TreesKey
  3288.                             ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3289.                                 SetRegValue $(TreesKey) {$(TreeListData), $(NoTitle), $(!REG_VT_SZ), $(ContextListData)}
  3290.                                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3291.                                     Debug-Output "OEMNPRNW.INF:  Failed to update tree and context pair value for "$(UpdateSvcOpt)
  3292.                                 endif
  3293.                                 CloseRegKey $(TreesKey)
  3294.                             else
  3295.                                 Debug-Output "OEMNPRNW.INF:  Failed to create Trees key for "$(UpdateSvcOpt)
  3296.                             endif
  3297.                         else
  3298.                             Debug-Output "OEMNPRNW.INF:  Failed to get Name Context value for "$(UpdateSvcOpt)
  3299.                         endif
  3300.                     else
  3301.                         Debug-Output "OEMNPRNW.INF:  Failed to get Preferred Tree value for "$(UpdateSvcOpt)
  3302.                     endif
  3303.                     DeleteRegValue $(TempKey) "Name Context"
  3304.  
  3305.                     ;
  3306.                     ; Set up redirector to use NWLINK
  3307.                     ;
  3308.                 
  3309.                     SetRegValue $(TempKey) {"IPX TDI Provider", $(NoTitle), $(!REG_VT_SZ), "\Device\NwLnkIpx"}
  3310.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3311.                         Debug-Output "OEMNPRNW.INF:  Failed to set up redirector to use NWLINK"
  3312.                     endif
  3313.  
  3314.                     ;
  3315.                     ; Close the key
  3316.                     ;
  3317.         
  3318.                     CloseRegKey $(TempKey)
  3319.                 else
  3320.                     Debug-Output "OEMNPRNW.INF:  Failed to open key "$(TempKeyName)
  3321.                 endif
  3322.  
  3323.                 ;
  3324.                 ; Set the new service dependencies for NWFS
  3325.                 ;
  3326.  
  3327.                 Set TempKeyName = $(!NTN_ServiceBase)"\"$(Product$(UpdateSvcOpt)Name)"\Linkage"
  3328.                 OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  3329.                 ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3330.     
  3331.                     ;
  3332.                     ; Set the new service dependencies for NWFS
  3333.                     ;
  3334.  
  3335.                     SetRegValue $(TempKey) {"OtherDependencies", $(NoTitle), $(!REG_VT_MULTI_SZ), {"Mup", "NwlnkIpx", "+NetWare Services", "+TDI"}}
  3336.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3337.                         Debug-Output "OEMNPRNW.INF:  Failed to update service dependencies for "$(UpdateSvcOpt)
  3338.                     endif
  3339.  
  3340.                     ;
  3341.                     ; Close the key
  3342.                     ;
  3343.         
  3344.                     CloseRegKey $(TempKey)
  3345.                 else
  3346.                     Debug-Output "OEMNPRNW.INF:  Failed to open key "$(TempKeyName)
  3347.                 endif
  3348.  
  3349.                 ;
  3350.                 ; On 3.5 or 3.5b clients, the inf file "oemnprnw.inf" did not
  3351.                 ; exist, therefore, the InfName value was set to oemsetup.inf
  3352.                 ; (or the munged file name).  This is not the correct file to
  3353.                 ; run when doing bindings reviews now that the client has been
  3354.                 ; upgraded.  We need to set the InfName so NT runs the correct
  3355.                 ; Inf file during bindings reviews.
  3356.                 ;
  3357.  
  3358.                 Set TempKeyName = $(ProductNWFSKeySoftware)"\NetRules"
  3359.                 OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  3360.                 ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3361.     
  3362.                     ;
  3363.                     ; Get the old InfName for NWFS
  3364.                     ;
  3365.  
  3366.                     GetRegValue $(TempKey) "InfName" KeyValueList
  3367.                     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3368.                         set InfName = *($(KeyValueList), 4)
  3369.                         ifstr(i) $(InfName) != "oemnprnw.inf"
  3370.  
  3371.                             ;
  3372.                             ; Delete the old inf file
  3373.                             ;
  3374.     
  3375.                             LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  3376.                             LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\"$(InfName)
  3377.                             FreeLibrary $(NwLibHandle)
  3378.     
  3379.                             ;
  3380.                             ; Set the InfName for the inf file to run at review time
  3381.                             ;
  3382.     
  3383.                             SetRegValue $(TempKey) {"InfName", $(NoTitle), $(!REG_VT_SZ), "oemnprnw.inf"}
  3384.                             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3385.                                 Debug-Output "OEMNPRNW.INF:  Failed to update InfName for "$(UpdateSvcOpt)
  3386.                             endif
  3387.                         else
  3388.                             Debug-Output "OEMNPRNW.INF:  InfName for "$(UpdateSvcOpt)" is already correct"
  3389.                         endif
  3390.                     else
  3391.                         Debug-Output "OEMNPRNW.INF:  Failed to get InfName for "$(UpdateSvcOpt)
  3392.                     endif
  3393.  
  3394.                     ;
  3395.                     ; Fix up the bindable value so we will show up in the bindings
  3396.                     ;
  3397.  
  3398.                     SetRegValue $(TempKey) {"Bindable", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NetRule$(UpdateSvcOpt)SoftwareBindable)}
  3399.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3400.                         Debug-Output "OEMNPRNW.INF:  Failed to update InfName for "$(UpdateSvcOpt)
  3401.                     endif
  3402.  
  3403.                     ;
  3404.                     ; Close the key
  3405.                     ;
  3406.         
  3407.                     CloseRegKey $(TempKey)
  3408.                 else
  3409.                     Debug-Output "OEMNPRNW.INF:  Failed to open key "$(TempKeyName)
  3410.                 endif
  3411.  
  3412.             endif
  3413.  
  3414.             ;
  3415.             ; Set the correct path in the registry for the two services that
  3416.             ; got moved.  RECONSVC.EXE and NWMSGSVC.EXE were moved from
  3417.             ; system32\netware to system32 where all the other non driver
  3418.             ; executables are located.
  3419.             ;
  3420.  
  3421.             ifstr(i) $(UpdateSvcOpt) == "RECONNECT"
  3422.  
  3423.                 ;
  3424.                 ; Set the new Image Paths
  3425.                 ;
  3426.  
  3427.                 SetRegValue $(ProductKey) {"ImagePath", $(NoTitle), $(!REG_VT_EXPAND_SZ), $(Product$(UpdateSvcOpt)ImagePath)}
  3428.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3429.                     Debug-Output "OEMNPRNW.INF:  Failed to fix ImagePath for "$(UpdateSvcOpt)
  3430.                 endif
  3431.  
  3432.             endif
  3433.  
  3434.  
  3435.             ifstr(i) $(UpdateSvcOpt) == "NWPOPUP"
  3436.  
  3437.                 ;
  3438.                 ; Set the new Image Paths
  3439.                 ;
  3440.  
  3441.                 SetRegValue $(ProductKey) {"ImagePath", $(NoTitle), $(!REG_VT_EXPAND_SZ), $(Product$(UpdateSvcOpt)ImagePath)}
  3442.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3443.                     Debug-Output "OEMNPRNW.INF:  Failed to fix ImagePath for "$(UpdateSvcOpt)
  3444.                 endif
  3445.  
  3446.             endif
  3447.  
  3448.             ;
  3449.             ; Close the first key
  3450.             ;
  3451.  
  3452.             CloseRegKey $(ProductKey)
  3453.  
  3454.         endif
  3455.  
  3456.     EndForListDo
  3457.  
  3458.     ;
  3459.     ; Set up to install any services that were not part of a previous client.
  3460.     ;
  3461.  
  3462.     ForListDo $(ServiceNameList)
  3463.         Set Do$($) = TRUE
  3464.     EndForListDo
  3465.  
  3466.     set CalledFromUpdate = "YES"
  3467.     goto InstallEnabledServices
  3468.  
  3469.  
  3470. ReturnToUpdate = +
  3471.  
  3472.     ifint $(RemovedODIAdapters) == 1
  3473.         Debug-Output "OEMNPRNW.INF:  Attempting to readd ODI LAN drivers"
  3474.         ForListDo $(ODIInfOptionList)
  3475.  
  3476.             set OdiDriverName = $($)
  3477.             Debug-Output "OEMNPRNW.INF:  OdiDriverName to install is "$(OdiDriverName)
  3478.  
  3479.             ;
  3480.             ; get a list of all possible adapters
  3481.             ;
  3482.  
  3483.             Debug-Output "Shelling to OTHER.INF ReturnOemOptions"
  3484.             Shell "OTHER.INF" ReturnOemOptions $(!STF_LANGUAGE) NetAdapter TRUE
  3485.             Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3486.                 Debug-Output "OEMNPRNW.INF:  OTHER.INF ReturnOemOptions ShellCode error "$($ShellCode)
  3487.             Endif
  3488.             Debug-Output "Return from shelling to OTHER.INF ReturnOemOptions"
  3489.  
  3490.             Ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  3491.                 set AdapterOurINFOptions = $($R1)
  3492.                 Debug-Output "OEMNPRNW.INF: AdapterOurINFOptions = "$(AdapterOurINFOptions)
  3493.  
  3494.                 ;
  3495.                 ; get the INF filename the ODI adapter is in
  3496.                 ;
  3497.  
  3498.                 Debug-Output "Shelling to HARDWARE.INF GetOptionFile"
  3499.                 Shell "HARDWARE.INF" GetOptionFile $(OdiDriverName) $(AdapterOurINFOptions)
  3500.                 Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3501.                     Debug-Output "OEMNPRNW.INF:  HARDWARE.INF GetOptionFile ShellCode error "$($ShellCode)
  3502.                 Endif
  3503.                 Debug-Output "Return from shelling to HARDWARE.INF GetOptionFile"
  3504.  
  3505.                 ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  3506.                     set AdapterINF = $($R1)
  3507.                     Debug-Output "AdapterINF is "$(AdapterINF)
  3508.  
  3509.                       ;
  3510.                       ; run the INF file to install the ODI driver
  3511.                       ;
  3512.     
  3513.                       set NwAddCopy = "NO"
  3514.                       set NwDoCopy = "NO"
  3515.                       set NwDoConfig = "NO"
  3516.                       Set OldInstallMode = $(!NTN_InstallMode)
  3517.                       Set !NTN_InstallMode = install
  3518.                       Shell $(AdapterINF) InstallOption $(!STF_LANGUAGE) $(OdiDriverName) +
  3519.                           $(SrcDir) $(NwAddCopy) $(NwDoCopy) $(NwDoConfig)
  3520.                       Set !NTN_InstallMode = $(OldInstallMode)
  3521.                       set Status = $($R0)
  3522.                       Debug-Output "OEMNPRNW.INF: InstallOption Status = "$(Status)
  3523.                 else
  3524.                     Debug-Output "Error in HARDWARE.INF GetOptionFile "$($R0)
  3525.                 endif
  3526.             else
  3527.                 Debug-Output "Error in HARDWARE.INF InitOptionVars "$($R0)
  3528.             Endif
  3529.  
  3530.         EndForListDo
  3531.     else
  3532.         Debug-Output "OEMNPRNW.INF:  Checking to see in ODI LAN drivers are installed"
  3533.  
  3534.         ;
  3535.         ; Flush NCPA.CPL cache on our inf file.  The inf file was updated
  3536.         ; and we want it to run the new file.
  3537.         ;
  3538.  
  3539.         FlushInf "NWSUBS.INF"
  3540.  
  3541.         ;
  3542.         ; Check for ODI Drivers
  3543.         ;
  3544.     
  3545.         Shell $(NwSubsInf) GetTotalAdapterList
  3546.     
  3547.         Set OdiProductNameList            = $($R0)
  3548.         Set OdiTitleList                    = $($R1)
  3549.         Set OdiCardList                    = $($R2)
  3550.         Set NumberOdiAdapters            = $($R3)
  3551.         Set NdisProductNameList            = $($R4)
  3552.         Set NdisTitleList                    = $($R5)
  3553.         Set NdisCardList                    = $($R6)
  3554.         Set NumberNdisAdapters            = $($R7)
  3555.         Set ODINSUPCardNumber            = $($R8)
  3556.         Set NetWareIPCardNumList        = $($R9)
  3557.         Set NumberNetWareIPAdapters    = $($R10)
  3558.     
  3559.         ;
  3560.         ; If ODI adapters installed, call appropriate inf to update the driver
  3561.         ;
  3562.     
  3563.         ifint $(NumberOdiAdapters) > 0
  3564.             Debug-Output "OEMNPRNW.INF:  Updating ODI LAN drivers"
  3565.               set CardsKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
  3566.               ForListDo $(OdiCardList)
  3567.  
  3568.                   ;
  3569.                   ; Find the associated inf file name
  3570.                   ;
  3571.  
  3572.                   set ODICard = $($)
  3573.                   set TempKeyName = $(CardsKeyName)"\"$(ODICard)"\NetRules"
  3574.                   OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  3575.                   ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3576.                       GetRegValue $(TempKey) "InfName" ValueData
  3577.                       ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3578.                           Set InfName = *($(ValueData), 4)
  3579.                           GetRegValue $(TempKey) "InfOption" ValueData
  3580.                           ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3581.                               Set InfOption = *($(ValueData), 4)
  3582.  
  3583.                             ;
  3584.                             ; Check to see if it is an inf file that we shiped.
  3585.                             ; It may or may not be compressed so must check for both
  3586.                             ;
  3587.  
  3588.                             Split-String $(InfName) "." InfTempList
  3589.                             QueryListSize InfTempListSize $(InfTempList)
  3590.                             set InfTempName = *($(InfTempList), 1)
  3591.  
  3592.                             set DoODIUpdate = "NO"
  3593.                             LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(SrcDir)"\nls\"$(NLSDirName)"\"$(InfTempName)".in_"
  3594.                             ifstr(i) $(Status1) == "YES"
  3595.                                 set DoODIUpdate = "YES"
  3596.                             else
  3597.                                 LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(SrcDir)"\nls\"$(NLSDirName)"\"$(InfTempName)".inf"
  3598.                                 ifstr(i) $(Status1) == "YES"
  3599.                                     set DoODIUpdate = "YES"
  3600.                                 endif
  3601.                             endif
  3602.  
  3603.                             ifstr(i) $(DoODIUpdate) == "YES"
  3604.                                 Debug-Output "OEMNPRNW.INF:  Found driver Inf "$(InfName)" on distribution media"
  3605.  
  3606.                                 ;
  3607.                                 ; Call the inf to update the ODI Adapter
  3608.                                 ;
  3609.  
  3610.                                 set NwAddCopy = "YES"
  3611.                                 set NwDoCopy = "YES"
  3612.                                 set NwDoConfig = "NO"
  3613.                                 set OldInstallMode = $(!NTN_InstallMode)
  3614.                                 set !NTN_InstallMode = update
  3615.                                 set OldNTN_RegBase = $(!NTN_RegBase)
  3616.                                 set !NTN_RegBase = $(CardsKeyName)"\"$(ODICard)
  3617.  
  3618.                                 Shell $(InfName) InstallOption $(!STF_LANGUAGE) $(InfOption) +
  3619.                                     $(SrcDir) $(NwAddCopy) $(NwDoCopy) $(NwDoConfig)
  3620.                                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3621.                                     goto ShellCodeError
  3622.                                 endif
  3623.                       
  3624.                                 set !NTN_RegBase = $(OldNTN_RegBase)
  3625.                                 set !NTN_InstallMode = $(OldInstallMode)
  3626.                             endif
  3627.                           else
  3628.                               Debug-Output "OEMNPRNW.INF:  Failed to get InfOption value"
  3629.                               CloseRegKey $(TempKey)
  3630.                           endif
  3631.                       else
  3632.                           Debug-Output "OEMNPRNW.INF:  Failed to get InfName value"
  3633.                           CloseRegKey $(TempKey)
  3634.                       endif
  3635.                     CloseRegKey $(TempKey)
  3636.                   else
  3637.                       Debug-Output "OEMNPRNW.INF:  Failed to open key "$(TempKeyName)
  3638.                   endif
  3639.               EndForListDo
  3640.         endif
  3641.     Endif
  3642.  
  3643.     ifint $(RemovedNWIP) == 1
  3644.         Debug-Output "OEMNPRNW.INF:  Attempting to readd NetWareIP"
  3645.  
  3646.         ;
  3647.         ; Flush NCPA.CPL cache on our inf file.  The inf file was updated
  3648.         ; and we want it to run the new file.
  3649.         ;
  3650.  
  3651.         FlushInf "OEMNSVIP.INF"
  3652.  
  3653.         ;
  3654.         ; Try to readd NetWareIP
  3655.         ;
  3656.  
  3657.         Set OldInstallMode = $(!NTN_InstallMode)
  3658.         Set !NTN_InstallMode = install
  3659.         Shell "OEMNSVIP.INF" InstallOption $(!STF_LANGUAGE) "NetWareIP" "" NO NO NO
  3660.         Set !NTN_InstallMode = $(OldInstallMode)
  3661.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3662.             goto ShellCodeError
  3663.         Endif
  3664.  
  3665.         ;
  3666.         ; Restore NetWareIP parameters
  3667.         ;
  3668.  
  3669.         Set TempKeyName = $(!NTN_ServiceBase)"\NetWareIP\Parameters"
  3670.         OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  3671.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  3672.  
  3673.             ifstr(i) $(DomainName) != ""
  3674.                 SetRegValue $(TempKey) {"NWIP Domain Name", $(NoTitle), $(!REG_VT_SZ), $(DomainName)}
  3675.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3676.                     Debug-Output "OEMNPRNW.INF:  Failed to set NetWareIP NWIP Domain Name"
  3677.                 endif
  3678.             endif
  3679.  
  3680.             ifstr(i) $(Compatibility) != ""
  3681.                 SetRegValue $(TempKey) {"NWIP1_1 Compatibility", $(NoTitle), $(!REG_VT_DWORD), $(Compatibility)}
  3682.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3683.                     Debug-Output "OEMNPRNW.INF:  Failed to set NetWareIP NWIP1_1 Compatibility"
  3684.                 endif
  3685.             endif
  3686.  
  3687.             ifstr(i) $(AutoRetries) != ""
  3688.                 SetRegValue $(TempKey) {"AutoRetries", $(NoTitle), $(!REG_VT_DWORD), $(AutoRetries)}
  3689.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3690.                     Debug-Output "OEMNPRNW.INF:  Failed to set NetWareIP AutoRetries"
  3691.                 endif
  3692.             endif
  3693.  
  3694.             ifstr(i) $(AutoRetrySecs) != ""
  3695.                 SetRegValue $(TempKey) {"AutoRetry Secs", $(NoTitle), $(!REG_VT_DWORD), $(AutoRetrySecs)}
  3696.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3697.                     Debug-Output "OEMNPRNW.INF:  Failed to set NetWareIP AutoRetry Secs"
  3698.                 endif
  3699.             endif
  3700.  
  3701.             ifstr(i) $(NSQBroadcast) != ""
  3702.                 SetRegValue $(TempKey) {"NSQ Broadcast", $(NoTitle), $(!REG_VT_DWORD), $(NSQBroadcast)}
  3703.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3704.                     Debug-Output "OEMNPRNW.INF:  Failed to set NetWareIP NSQ Broadcast"
  3705.                 endif
  3706.             endif
  3707.  
  3708.             ifstr(i) $(NearestIPServer) != {}
  3709.                 CreateRegKey $(TempKey) {"Nearest NWIP Server", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NearestServerKey
  3710.                 set Index = 0
  3711.                 ForListDo $(NearestIPServer)
  3712.                     SetRegValue $(NearestServerKey) {$(Index), $(NoTitle), $(!REG_VT_SZ), $($)}
  3713.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3714.                         Debug-Output "OEMNPRNW.INF:  Failed to set NetWareIP Nearest NWIP Server"
  3715.                     endif
  3716.                     set-add Index = $(Index), 1
  3717.                 EndForListDo
  3718.             endif
  3719.             CloseRegKey $(NearestServerKey)
  3720.  
  3721.             ifstr(i) $(PreferredDSS) != {}
  3722.                 CreateRegKey $(TempKey) {"Preferred DSS", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" PreferredDSSKey
  3723.                 set Index = 0
  3724.                 ForListDo $(PreferredDSS)
  3725.                     SetRegValue $(PreferredDSSKey) {$(Index), $(NoTitle), $(!REG_VT_SZ), $($)}
  3726.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3727.                         Debug-Output "OEMNPRNW.INF:  Failed to set NetWareIP Nearest NWIP Server"
  3728.                     endif
  3729.                     set-add Index = $(Index), 1
  3730.                 EndForListDo
  3731.             endif
  3732.             CloseRegKey $(PreferredDSSKey)
  3733.  
  3734.             CloseRegKey $(TempKey)
  3735.  
  3736.         else
  3737.             Debug-Output "OEMNPRNW.INF:  Failed to open key "$(!NTN_ServiceBase)"\NWIP\Parameters"
  3738.         endif
  3739.  
  3740.     else
  3741.         Debug-Output "OEMNPRNW.INF:  Checking to see in NetWareIP is installed"
  3742.  
  3743.         ;
  3744.         ; Flush NCPA.CPL cache on our inf file.  The inf file was updated
  3745.         ; and we want it to run the new file.
  3746.         ;
  3747.  
  3748.         FlushInf "NWSUBS.INF"
  3749.  
  3750.         ;
  3751.         ; Check for NetWareIP Drivers
  3752.         ;
  3753.     
  3754.         Shell $(NwSubsInf) GetTotalAdapterList
  3755.     
  3756.         Set OdiProductNameList            = $($R0)
  3757.         Set OdiTitleList                    = $($R1)
  3758.         Set OdiCardList                    = $($R2)
  3759.         Set NumberOdiAdapters            = $($R3)
  3760.         Set NdisProductNameList            = $($R4)
  3761.         Set NdisTitleList                    = $($R5)
  3762.         Set NdisCardList                    = $($R6)
  3763.         Set NumberNdisAdapters            = $($R7)
  3764.         Set ODINSUPCardNumber            = $($R8)
  3765.         Set NetWareIPCardNumList        = $($R9)
  3766.         Set NumberNetWareIPAdapters    = $($R10)
  3767.  
  3768.         ifint $(NumberNetWareIPAdapters) > 0
  3769.             Debug-Output "OEMNPRNW.INF:  Updating NetWareIP"
  3770.  
  3771.             ;
  3772.             ; Call NetWareIP inf file to update NetWareIP
  3773.             ;
  3774.     
  3775.             Set OldInstallMode = $(!NTN_InstallMode)
  3776.             Set !NTN_InstallMode = update
  3777.             Shell "oemnsvip.inf" InstallOption, $(!STF_LANGUAGE), "NetWareIP", "", "YES", "YES", "NO"
  3778.             Set !NTN_InstallMode = $(OldInstallMode)
  3779.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3780.                 goto ShellCodeError
  3781.             endif
  3782.         else
  3783.  
  3784.             ;
  3785.             ;  Add NetWareIP if the user wants
  3786.             ;
  3787.  
  3788.             shell "" Install-NetWareIP
  3789.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3790.                 goto ShellCodeError
  3791.             else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  3792.                 goto fatal
  3793.             endif
  3794.  
  3795.         endif
  3796.     Endif
  3797.  
  3798.     ;
  3799.     ;    Set SAM Redirection info
  3800.     ;
  3801.     ifstr(i) $(AdvancedServer) == "YES"
  3802.         ifstr(i) $(!InstallSAMRedir) == "YES"
  3803.             LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  3804.             LibraryProcedure GUIResult $(NwLibHandle) NWCheckSAMMigrated
  3805.  
  3806.             ifstr(i) $(GUIResult) != "TRUE"
  3807.                 ifint $(NTMajorVersion) < "4"
  3808.                     set TempRegKeyName = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" 
  3809.                     OpenRegKey $(!REG_H_CUSER) ""  $(TempRegKeyName) $(MAXIMUM_ALLOWED) TempKey
  3810.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                ; if no new key
  3811.                         CreateRegKey $(!REG_H_CUSER) {$(TempRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey
  3812.                         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                            ; create new key
  3813.                             Debug-Output "OEMNPRNW.INF: Failed to create 3.51 Windows key for SAM Migration utility"
  3814.                             goto migerror2                                                            ; if error, then done
  3815.                         endif
  3816.                     endif                
  3817.                     Set CommandLine = $(!STF_WINDOWSSYSPATH)"\sammig.exe"
  3818.                     SetRegValue $(TempKey) {"run", $(NoTitle), $(!REG_VT_SZ), $(CommandLine)}
  3819.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3820.                         Debug-Output "OEMNPRNW.INF: Failed to add 3.51 Run for SAM Migration utility"
  3821.                     endif
  3822.                     CloseRegKey $(KeyNovellParameters)
  3823.                 else
  3824.                     set TempRegKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" 
  3825.                     OpenRegKey $(!REG_H_LOCAL) ""  $(TempRegKeyName) $(MAXIMUM_ALLOWED) TempKey
  3826.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                                ; if no new key
  3827.                         CreateRegKey $(!REG_H_LOCAL) {$(TempRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey
  3828.                         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)                            ; create new key
  3829.                             Debug-Output "OEMNPRNW.INF: Failed to create RunOnce for SAM Migration utility"
  3830.                             goto migerror2                                                            ; if error, then done
  3831.                         endif
  3832.                     endif                
  3833.                     Set CommandLine = $(!STF_WINDOWSSYSPATH)"\sammig.exe"
  3834.                     SetRegValue $(TempKey) {"SAM Migration", $(NoTitle), $(!REG_VT_SZ), $(CommandLine)}
  3835.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  3836.                         Debug-Output "OEMNPRNW.INF: Failed to add RunOnce for SAM Migration utility"
  3837.                     endif
  3838.                     CloseRegKey $(KeyNovellParameters)
  3839.                 endif
  3840. migerror2 = +
  3841.             endif
  3842.  
  3843.             FreeLibrary $(NwLibHandle)       
  3844.             Shell "" AddServiceDependency "LanmanServer" "NetWareWorkstation"
  3845.         endif
  3846.     endif
  3847.  
  3848.     ;
  3849.     ; Write out the unattended variables to registry
  3850.     ;
  3851.  
  3852. ;    Write the Workstation Manager parameter to the registry here because it is set by either Setupnw.exe /w or setupnw /u.
  3853. ;    !Workstation_Manager_Trusted_Trees =
  3854. ;    !Workstation_Manager_Trusted_Trees_OverWriteValue =
  3855.  
  3856.     ifstr(i) $(!NWSetup) == "yes"
  3857.         ; IF we are running from setup and not in unattended mode and the Trusted trees variable is set then turn on Manager in the key Workstation Manager/Enable.
  3858.         ifstr(i) $(!NWUnattendedFile) == ""
  3859.             ifstr(i) $(!Workstation_Manager_Trusted_Trees) != ""
  3860.                 set !Enable_Workstation_Manager = "on"
  3861.                 set !Enable_Workstation_Manager_OverWriteValue = "yes"
  3862.             endif
  3863.         endif
  3864.  
  3865.         ifstr(i) $(!Workstation_Manager_Trusted_Trees_OverWriteValue) == ""
  3866.             set !Workstation_Manager_Trusted_Trees_OverWriteValue = "yes"
  3867.         endif
  3868.     endif
  3869.  
  3870. ; Workstation Manager Parameters
  3871.  
  3872.     ;    !Enable_Workstation_Manager = on
  3873.     ;    !Enable_Workstation_Manager_OverWriteValue = yes
  3874.     ifstr(i) $(!Enable_Workstation_Manager) != ""
  3875.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Workstation Manager"
  3876.         ifstr(i) $(!Enable_Workstation_Manager) == "on"
  3877.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Enabled" 1 $(!REG_VT_DWORD) $(!Enable_Workstation_Manager_OverWriteValue)
  3878.         else-ifstr(i) $(!Enable_Workstation_Manager) == "off"
  3879.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Enabled" 0 $(!REG_VT_DWORD) $(!Enable_Workstation_Manager_OverWriteValue)
  3880.         else
  3881.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Enable_Workstation_Manager = "$(!Enable_Workstation_Manager)$(UnattendParameterError)
  3882.             ifstr(i) $($R1) == "CANCEL"
  3883.                 set CommonStatus = STATUS_USERCANCEL
  3884.                 goto setfailed
  3885.             endif
  3886.         endif
  3887.     endif
  3888.  
  3889.     ifstr(i) $(!Workstation_Manager_Trusted_Trees) != ""
  3890.           set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Workstation Manager"
  3891.           shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Trusted Trees" $(!Workstation_Manager_Trusted_Trees) $(!REG_VT_SZ) $(!Workstation_Manager_Trusted_Trees_OverWriteValue)
  3892.     endif
  3893.  
  3894.     shell "" Write-Unattended-Variables
  3895.  
  3896.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3897.         goto ShellCodeError
  3898.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  3899.         Debug-Output "OEMNPRNW.INF:  User Canceled due to a error processing the Unattended Variables."
  3900.         set CommonStatus = STATUS_USERCANCEL
  3901.         goto setfailed
  3902.     endif
  3903.  
  3904.     ;
  3905.     ; Set the reboot flag
  3906.     ;
  3907.  
  3908.     Set CommonStatus = STATUS_SUCCESSFUL
  3909.  
  3910. ;
  3911. ;  Escape hatches
  3912. ;
  3913.  
  3914. successful = +
  3915.     goto end
  3916.  
  3917. ;
  3918. ; warning display
  3919. ;
  3920.  
  3921. warning = +
  3922.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  3923.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3924.         goto ShellCodeError
  3925.     endif
  3926.     ifstr(i) $($R1) == "OK"
  3927.         goto $(to)
  3928.     else-ifstr(i) $($R1) == "CANCEL"
  3929.         goto $(from)
  3930.     else
  3931.         goto end
  3932.     endif
  3933.  
  3934.  
  3935. ;
  3936. ; non fatal error display
  3937. ;
  3938.  
  3939. nonfatalinfo = +
  3940.     Set CommonStatus = STATUS_USERCANCEL
  3941.     Set Severity = STATUS
  3942.     goto nonfatalmsg
  3943.  
  3944. nonfatal = +
  3945.     Set Severity = NONFATAL
  3946.     goto nonfatalmsg
  3947.  
  3948. nonfatalmsg = +
  3949.     ifstr(i) $(Error) == ""
  3950.         Set Severity = NONFATAL
  3951.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  3952.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3953.             goto ShellCodeError
  3954.         endif
  3955.         set Error = $($R0)
  3956.     endif
  3957.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  3958.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3959.         goto ShellCodeError
  3960.     endif
  3961.     ifstr(i) $($R1) == "OK"
  3962.         goto $(from)
  3963.     else
  3964.         goto "end"
  3965.     endif
  3966.  
  3967. ;
  3968. ;  Registry is broken
  3969. ;
  3970.  
  3971. fatalregistry = +
  3972.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  3973.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3974.         goto ShellCodeError
  3975.     endif
  3976.     set Error = $($R0)
  3977.     goto fatal
  3978.  
  3979. ;
  3980. ; fatal error display
  3981. ;
  3982.  
  3983. fatal = +
  3984.     ifstr(i) $(Error) == ""
  3985.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  3986.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3987.             goto ShellCodeError
  3988.         endif
  3989.         set Error = $($R0)
  3990.     endif
  3991.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  3992.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  3993.         goto ShellCodeError
  3994.     endif
  3995.  
  3996.     goto setfailed
  3997.  
  3998. ;
  3999. ;  Shelling error
  4000. ;
  4001.  
  4002. ShellCodeError = +
  4003.     set DlgType            = "MessageBox"
  4004.     set STF_MB_TITLE    = $(ShellCodeErrorTitle)
  4005.     set STF_MB_TEXT    = $(ShellCodeErrorText)
  4006.     set STF_MB_TYPE    = 1
  4007.     set STF_MB_ICON    = 3
  4008.     set STF_MB_DEF        = 1
  4009.     ui start "ShellCodeError"
  4010.     goto setfailed
  4011.  
  4012. setfailed = +
  4013.     set CommonStatus = STATUS_FAILED
  4014.     ;
  4015.     ; If OEM_ABANDON_ON, we need to clean up the registry
  4016.     ;
  4017.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  4018.         set OEM_ABANDON_ON = FALSE
  4019.         Debug-Output "OEMNPRNW.INF:  About to start removing netware"
  4020.         goto removenetware
  4021.     endif
  4022.     goto end
  4023.  
  4024. end = +
  4025.  
  4026.     EndWait
  4027.     goto term
  4028.  
  4029. term = +
  4030.  
  4031.     Return $(CommonStatus)
  4032.  
  4033.  
  4034. ;*************************************************************************
  4035. ;  SHELL SECTIONS
  4036. ;*************************************************************************
  4037. ;*************************************************************************
  4038. ;----------WizardToManagerFix----------------------------------------
  4039. ;
  4040. ;
  4041. ;        SECTION:    WizardToManagerFix
  4042. ;
  4043. ;        PURPOSE:    This section is shelled to just after the unattended variables are loaded.
  4044. ;                               The parameters for Workstation_Wizard have been changed to Workstation_Manager.
  4045. ;                        If the UNATTEND.TXT is using the old (Wizard) vaiables, this function will use them.
  4046. ;
  4047. ;        ARGUMENTS:    None
  4048. ;
  4049. ;        RETURNS:    None
  4050. ;
  4051. ;        REFERENCES:    None
  4052. ;
  4053. ;        MODIFIES:    None
  4054. ;
  4055. ;*************************************************************************
  4056. [WizardToManagerFix]
  4057.  
  4058.     ifstr(i) $(!Enable_Workstation_Manager) == ""        ; if manager set then use it
  4059.         ifstr(i) $(!Enable_Workstation_Wizard) != ""        ; else if wizard set then use it
  4060.             set !Enable_Workstation_Manager = $(!Enable_Workstation_Wizard)
  4061.             Debug-Output "OEMNPRNW.INF:  (wizard fix) !Enable_Workstation_Manager = "$(!Enable_Workstation_Manager)
  4062.         endif
  4063.     endif
  4064.  
  4065.     ifstr(i) $(!Enable_Workstation_Manager_OverWriteValue) == ""
  4066.         ifstr(i) $(!Enable_Workstation_Wizard_OverWriteValue) != ""
  4067.             set !Enable_Workstation_Manager_OverWriteValue = $(!Enable_Workstation_Wizard_OverWriteValue)
  4068.             Debug-Output "OEMNPRNW.INF:  (wizard fix) !Enable_Workstation_Manager_OverWriteValue = "$(!Enable_Workstation_Manager_OverWriteValue)
  4069.         endif
  4070.     endif
  4071.  
  4072.     ifstr(i) $(!Workstation_Manager_Trusted_Trees) == ""        
  4073.         ifstr(i) $(!Workstation_Wizard_Trusted_Trees) != ""    
  4074.             set !Workstation_Manager_Trusted_Trees = $(!Workstation_Wizard_Trusted_Trees)
  4075.             Debug-Output "OEMNPRNW.INF:  (wizard fix) !Workstation_Manager_Trusted_Trees = "$(!Workstation_Manager_Trusted_Trees)
  4076.         endif
  4077.     endif
  4078.  
  4079.     ifstr(i) $(!Workstation_Manager_Trusted_Trees_OverWriteValue) == ""
  4080.         ifstr(i) $(!Workstation_Wizard_Trusted_Trees_OverWriteValue) != ""
  4081.             set !Workstation_Manager_Trusted_Trees_OverWriteValue = $(!Workstation_Wizard_Trusted_Trees_OverWriteValue)
  4082.             Debug-Output "OEMNPRNW.INF:  (wizard fix) !Workstation_Manager_Trusted_Trees_OverWriteValue = "$(!Workstation_Manager_Trusted_Trees_OverWriteValue)
  4083.         endif
  4084.     endif
  4085.  
  4086.     Return
  4087.  
  4088.  
  4089. ;----------UnattendedInstallOption----------------------------------------
  4090. ;
  4091. ;
  4092. ;        SECTION:        UnattendedInstallOption:
  4093. ;
  4094. ;        PURPOSE:        This section is shelled to by the Install Option.  It looks at the three MS Unattended variables and then
  4095. ;        sets the Novell specific variable for NWACU and the NWUnattended file.
  4096. ;        Our install for both setup.exe /ACU and Unattended install from MS then uses NWACU and the NWUnattended variables.
  4097. ;
  4098. ;        ARGUMENTS:    None
  4099. ;
  4100. ;        RETURNS:        None
  4101. ;
  4102. ;        REFERENCES:    None
  4103. ;
  4104. ;        MODIFIES:    None
  4105. ;
  4106. ;*************************************************************************
  4107. [UnattendedInstallOption]
  4108.  
  4109.     read-syms GeneralConstants
  4110.     read-syms FileConstants
  4111.  
  4112.         ifstr(i) $(!STF_GUI_UNATTENDED) == "NO"
  4113.             ifstr(i) $(!STF_UNATTENDED) == "YES"
  4114.                 set !NWACU = "YES"
  4115.             endif
  4116.         else-ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  4117.             ifstr(i) $(!NWUnattendedFile) == ""
  4118.                 set !NWACU = "YES"
  4119.                 set !NWUnattendedFile = $(!STF_UNATTENDED)
  4120.                 set !NWUnattendedSection = $(!STF_UNATTENDED_SECTION)
  4121.             endif
  4122.         endif
  4123.  
  4124. Return
  4125.  
  4126.  
  4127. ;*************************************************************************
  4128. ;----------Write-Unattended-Variables-----------------------------------
  4129. ;
  4130. ;
  4131. ;        SECTION:        Write-Unattended-Variables:
  4132. ;
  4133. ;        PURPOSE:        This section writes the unattended variables to the
  4134. ;                        registry.
  4135. ;
  4136. ;        ARGUMENTS:    None
  4137. ;
  4138. ;        RETURNS:        None
  4139. ;
  4140. ;        REFERENCES:    Called at end of install section and the update section
  4141. ;
  4142. ;        MODIFIES:    None
  4143. ;
  4144. ;*************************************************************************
  4145. [Write-Unattended-Variables]
  4146.     ;    If the /U parameter is passed from Setupnw.exe then call this section to set the defaults.
  4147.     ;    Add the values in the unattended file to the registry.
  4148.     set UnattendReturnStatus = STATUS_SUCCESSFUL
  4149.  
  4150.     ifstr(i) $(!NWUnattendedFile) != ""
  4151.         Shell "" NetWareParameterValues
  4152.         ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
  4153.             set UnattendReturnStatus = STATUS_USERCANCEL
  4154.         endif
  4155.     endif
  4156.  
  4157. Return $(UnattendReturnStatus)
  4158.  
  4159.  
  4160. ;----------NetWareParameterValues-------------------------------------------------
  4161. ;
  4162. ; NetWareParameterValues
  4163. ;
  4164. ; It sets all of the Client Values to the data specified in the Unattend.txt file.
  4165. ;
  4166. ;------------------------------------------------------------------------
  4167. [NetWareParameterValues]
  4168.     read-syms GeneralConstants
  4169.     read-syms FileConstants
  4170.     read-syms InstallOption$(!STF_LANGUAGE)
  4171.  
  4172.     set UnattendReturnStatus = STATUS_SUCCESSFUL
  4173.  
  4174.     ifstr(i) $(!MajorInternalVersion) != ""
  4175.         Split-String $(!MajorInternalVersion) "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\/<>~!%^()[]{}." MajorVersionList
  4176.         QueryListSize ListSize $(MajorVersionList)
  4177.         ifint $(ListSize) == 1
  4178.             ifint $(!MajorInternalVersion) >= "0"
  4179.                     set ParamRegKeyName = "SOFTWARE\Novell\NetWareWorkstation\CurrentVersion"
  4180.                     shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "MajorInternalVersion" $(!MajorInternalVersion) $(!REG_VT_DWORD) "YES"
  4181.             else
  4182.                     goto MajorVersionInvalid
  4183.             endif
  4184.         else
  4185. MajorVersionInvalid = +
  4186.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "MajorInternalVersion = "$(!MajorInternalVersion)$(UnattendParameterError)
  4187.             ifstr(i) $($R1) == "CANCEL"
  4188.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4189.                 goto endOfUnattend
  4190.             endif
  4191.         endif
  4192.     endif
  4193.  
  4194.     ifstr(i) $(!MinorInternalVersion) != ""
  4195.         Split-String $(!MinorInternalVersion) "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\/<>~!%^()[]{}." MinorVersionList
  4196.         QueryListSize ListSize $(MinorVersionList)
  4197.         ifint $(ListSize) == 1
  4198.             ifint $(!MinorInternalVersion) >= "0"
  4199.                 set ParamRegKeyName = "SOFTWARE\Novell\NetWareWorkstation\CurrentVersion"
  4200.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "MinorInternalVersion" $(!MinorInternalVersion) $(!REG_VT_DWORD) "YES"
  4201.             else
  4202.                 goto MinorVersionInvalid
  4203.             endif
  4204.         else
  4205. MinorVersionInvalid = +
  4206.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "MinorInternalVersion = "$(!MinorInternalVersion)$(UnattendParameterError)
  4207.             ifstr(i) $($R1) == "CANCEL"
  4208.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4209.                 goto endOfUnattend
  4210.             endif
  4211.         endif
  4212.     endif
  4213.  
  4214.  
  4215. ; NWGINA Parameters
  4216. ; "DefaultBinderyServer" parameter.
  4217.     ifstr(i) $(!Preferred_Bindery_Server) != ""
  4218.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update"
  4219.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "DefaultBinderyServer" $(!Preferred_Bindery_Server) $(!REG_VT_SZ) $(!Preferred_Bindery_Server_OverWriteValue)
  4220.     endif
  4221.  
  4222.  
  4223. ; Client Page
  4224.  
  4225.     ifstr(i) $(!Preferred_Server) != ""
  4226.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4227.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Preferred Server" $(!Preferred_Server) $(!REG_VT_SZ) $(!Preferred_Server_OverWriteValue)
  4228.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update"
  4229.         OpenRegKey $(!REG_H_LOCAL) "" $(ParamRegKeyName) $(MAXIMUM_ALLOWED) KeyParamNovell
  4230.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  4231.                 Debug-Output "OEMNPRNW.INF: Error opening Key Error Code =  "$(RegLastError)
  4232.                 Debug-Output "OEMNPRNW.INF: Error opening key so create it  "$(ParamRegKeyName)
  4233.                 CreateRegKey $(!REG_H_LOCAL) {$(ParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyParamNovell
  4234.         endif
  4235.         CloseRegKey $(KeyParamNovell)
  4236.     endif
  4237.  
  4238.     ifstr(i) $(!Preferred_Tree) != ""
  4239.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4240.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Preferred Tree" $(!Preferred_Tree) $(!REG_VT_SZ) $(!Preferred_Tree_OverWriteValue)
  4241.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update"
  4242.         OpenRegKey $(!REG_H_LOCAL) "" $(ParamRegKeyName) $(MAXIMUM_ALLOWED) KeyParamNovell
  4243.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  4244.                 Debug-Output "OEMNPRNW.INF: Error opening Key Error Code =  "$(RegLastError)
  4245.                 Debug-Output "OEMNPRNW.INF: Error opening key so create it  "$(ParamRegKeyName)
  4246.                 CreateRegKey $(!REG_H_LOCAL) {$(ParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyParamNovell
  4247.         endif
  4248.         CloseRegKey $(KeyParamNovell)
  4249.     endif
  4250.  
  4251.  
  4252. ;    Loop through all of the possible Tree and Name Context pairs.
  4253.     set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters\Trees"
  4254.     set Index = 1
  4255.  
  4256. topOfLoop = +
  4257.     ifstr(i) $(!Tree_List$(Index)) != ""
  4258.         ifstr(i) $(!Default_Context_List$(Index)) != ""
  4259.     
  4260. ;             Read the registry and see if the key exists, duplicate trees are not allowed.
  4261.             OpenRegKey $(!REG_H_LOCAL) "" $(ParamRegKeyName) $(MAXIMUM_ALLOWED) SoftwareNovellKey
  4262.             Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  4263.                 GetRegValue $(SoftwareNovellKey) $(!Tree_List$(Index)) ContextValue
  4264.                 Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  4265.                     ; The tree they are trying to add in already in the list. If overwrite is yes add the value else goto next
  4266.                     ifstr(i) $(!Tree_List_OverWriteValue$(Index)) != "YES"
  4267.                         CloseRegKey $(SoftwareNovellKey)
  4268.                         goto nextTreePair
  4269.                     endif
  4270.                 endif
  4271.                 CloseRegKey $(SoftwareNovellKey)
  4272.             endif
  4273. ;            Write the pair to the registry
  4274.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) $(!Tree_List$(Index)) $(!Default_Context_List$(Index)) $(!REG_VT_SZ) $(!Tree_List_OverWriteValue$(Index))
  4275.         endif
  4276.     endif
  4277.  
  4278. nextTreePair = +
  4279.     set-add Index = $(Index), 1
  4280.     ifstr(i) $(!Tree_List$(Index)) != ""
  4281.         goto topOfLoop
  4282.     endif
  4283.  
  4284.  
  4285. ;    This loop is to translate from a letter into the coresponding number a=1 b=2 c=3 ... to store in the registry.
  4286.     ifstr(i) $(!First_Network_Drive) != ""
  4287.         set AlphabetList = { a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z }
  4288.         ForListDo $(AlphabetList)
  4289.             ifstr(i) $(!First_Network_Drive) == $($)
  4290.                 set FoundValidValue = "yes"
  4291.                 set ParamRegKeyName = "SOFTWARE\Novell\Parameters"
  4292.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "First Network Drive" $(#) $(!REG_VT_DWORD) $(!First_Network_Drive_OverWriteValue)
  4293.             endif
  4294.         EndForListDo
  4295.         ifstr(i) $(FoundValidValue) != "yes"
  4296.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "First Network Drive = "$(!First_Network_Drive)$(UnattendParameterError)
  4297.             ifstr(i) $($R1) == "CANCEL"
  4298.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4299.                 goto endOfUnattend
  4300.             endif
  4301.         endif
  4302.     endif
  4303.  
  4304.  
  4305. ; Advanced Setting Parameters.
  4306.  
  4307.     ;    !Receive_Broadcast_Messages = All | Server Only | None
  4308.     ;    !Receive_Broadcast_Messages_OverWriteValue = yes
  4309.     ifstr(i) $(!Receive_Broadcast_Messages) != ""
  4310.         set ParamRegKeyName = "SOFTWARE\Novell\Broadcast"
  4311.         ifstr(i) $(!Receive_Broadcast_Messages) == "All"
  4312.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Mode" 0 $(!REG_VT_DWORD) $(!Receive_Broadcast_Messages_OverWriteValue)
  4313.         else-ifstr(i) $(!Receive_Broadcast_Messages) == "Server Only"
  4314.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Mode" 1 $(!REG_VT_DWORD) $(!Receive_Broadcast_Messages_OverWriteValue)
  4315.         else-ifstr(i) $(!Receive_Broadcast_Messages) == "None"
  4316.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Mode" 2 $(!REG_VT_DWORD) $(!Receive_Broadcast_Messages_OverWriteValue)
  4317.         else
  4318.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Receive_Broadcast_Messages = "$(!Receive_Broadcast_Messages)$(UnattendParameterError)
  4319.             ifstr(i) $($R1) == "CANCEL"
  4320.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4321.                 goto endOfUnattend
  4322.             endif
  4323.         endif
  4324.     endif
  4325.  
  4326.     ifstr(i) $(!DOS_Name) != ""
  4327.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4328.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "DOS Name" $(!DOS_Name) $(!REG_VT_SZ) $(!DOS_Name_OverWriteValue)
  4329.     endif
  4330.  
  4331.     ;    !Large_Internet_Packets = on
  4332.     ;    !Large_Internet_Packets_OverWriteValue = yes
  4333.     ifstr(i) $(!Large_Internet_Packets) != ""
  4334.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4335.         ifstr(i) $(!Large_Internet_Packets) == "on"
  4336.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Large Internet Packets" 1 $(!REG_VT_DWORD) $(!Large_Internet_Packets_OverWriteValue)
  4337.         else-ifstr(i) $(!Large_Internet_Packets) == "off"
  4338.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Large Internet Packets" 0 $(!REG_VT_DWORD) $(!Large_Internet_Packets_OverWriteValue)
  4339.         else
  4340.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Large_Internet_Packets = "$(!Large_Internet_Packets)$(UnattendParameterError)
  4341.             ifstr(i) $($R1) == "CANCEL"
  4342.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4343.                 goto endOfUnattend
  4344.             endif
  4345.         endif
  4346.     endif
  4347.  
  4348.  
  4349.     ;    !LIP_Start_Size = 65535
  4350.     ;    !LIP_Start_Size_OverRightValue = yes
  4351.     ifstr(i) $(!LIP_Start_Size) != ""
  4352.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4353.         ifint $(!LIP_Start_Size) >= "1"
  4354.             ifint $(!LIP_Start_Size) <= "65535"
  4355.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "LIP Start Size" $(!LIP_Start_Size) $(!REG_VT_DWORD) $(!LIP_Start_Size_OverWriteValue)
  4356.             else
  4357.                 ;    error case greater than max
  4358.                 goto LIP_Start_SizeError
  4359.             endif
  4360.         else
  4361. LIP_Start_SizeError = +
  4362.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "LIP_Start_Size = "$(!LIP_Start_Size)$(UnattendParameterError)
  4363.             ifstr(i) $($R1) == "CANCEL"
  4364.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4365.                 goto endOfUnattend
  4366.             endif
  4367.         endif
  4368.     endif
  4369.  
  4370.  
  4371.     ;!Long_Machine_Type = IBM_PC
  4372.     ;!Long_Machine_Type_OverWriteValue = yes
  4373.     ifstr(i) $(!Long_Machine_Type) != ""
  4374.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4375.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Long Machine Type" $(!Long_Machine_Type) $(!REG_VT_SZ) $(!Long_Machine_Type_OverWriteValue)
  4376.     endif
  4377.  
  4378.     ;    !LSL_Max_Buffer_Size = 4736
  4379.     ;    !LSL_MAX_Buffer_Size_OverWriteValue = yes
  4380.     ifstr(i) $(!LSL_Max_Buffer_Size) != ""
  4381.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\LSL\Parameters"
  4382.         ifint $(!LSL_Max_Buffer_Size) >= "100"
  4383.             ifint $(!LSL_Max_Buffer_Size) <= "24682"
  4384.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Max Buffer Size" $(!LSL_Max_Buffer_Size) $(!REG_VT_DWORD) $(!LSL_Max_Buffer_Size_OverWriteValue)
  4385.             else
  4386.                 ;    error case greater than max
  4387.                 goto LSL_Max_Buffer_SizeError
  4388.             endif
  4389.         else
  4390. LSL_Max_Buffer_SizeError = +
  4391.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "LSL_Max_Buffer_Size = "$(!LSL_Max_Buffer_Size)$(UnattendParameterError)
  4392.             ifstr(i) $($R1) == "CANCEL"
  4393.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4394.                 goto endOfUnattend
  4395.             endif
  4396.         endif
  4397.     endif
  4398.  
  4399.     ;    !Minimum_Time_To_Net = 0
  4400.     ;    !Minimum_Time_To_Net_OverWriteValue = yes
  4401.     ifstr(i) $(!Minimum_Time_To_Net) != ""
  4402.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4403.         ifint $(!Minimum_Time_To_Net) >= "0"
  4404.             ifint $(!Minimum_Time_To_Net) <= "65535"
  4405.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Minimum Time To Net" $(!Minimum_Time_To_Net) $(!REG_VT_DWORD) $(!Minimum_Time_To_Net_OverWriteValue)
  4406.             else
  4407.                 ;    error case greater than max
  4408.                 goto Minimum_Time_To_NetError
  4409.             endif
  4410.         else
  4411. Minimum_Time_To_NetError = +
  4412.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Minimum_Time_To_Net = "$(!Minimum_Time_To_Net)$(UnattendParameterError)
  4413.             ifstr(i) $($R1) == "CANCEL"
  4414.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4415.                 goto endOfUnattend
  4416.             endif
  4417.         endif
  4418.     endif
  4419.  
  4420.     ;    !Opportunistic_Locking = on
  4421.     ;    !Opportunistic_Locking_OverWriteValue = yes
  4422.     ifstr(i) $(!Opportunistic_Locking) != ""
  4423.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4424.         ifstr(i) $(!Opportunistic_Locking) == "on"
  4425.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Opportunistic Locking" 1 $(!REG_VT_DWORD) $(!Opportunistic_Locking_OverWriteValue)
  4426.         else-ifstr(i) $(!Opportunistic_Locking) == "off"
  4427.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Opportunistic Locking" 0 $(!REG_VT_DWORD) $(!Opportunistic_Locking_OverWriteValue)
  4428.         else
  4429.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Opportunistic_Locking = "$(!Opportunistic_Locking)$(UnattendParameterError)
  4430.             ifstr(i) $($R1) == "CANCEL"
  4431.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4432.                 goto endOfUnattend
  4433.             endif
  4434.         endif
  4435.     endif
  4436.  
  4437.     ;    !Burst_Mode = on
  4438.     ;    !Burst_Mode_OverWriteValue = yes
  4439.     ifstr(i) $(!Burst_Mode) != ""
  4440.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4441.         ifstr(i) $(!Burst_Mode) == "on"
  4442.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Burst Mode" 1 $(!REG_VT_DWORD) $(!Burst_Mode_OverWriteValue)
  4443.         else-ifstr(i) $(!Burst_Mode) == "off"
  4444.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Burst Mode" 0 $(!REG_VT_DWORD) $(!Burst_Mode_OverWriteValue)
  4445.         else
  4446.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Burst_Mode = "$(!Burst_Mode)$(UnattendParameterError)
  4447.             ifstr(i) $($R1) == "CANCEL"
  4448.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4449.                 goto endOfUnattend
  4450.             endif
  4451.         endif
  4452.     endif
  4453.  
  4454.     ;    !Pburst_Read_Window_Size =24 or 255
  4455.     ;    !Pburst_Read_Window_Size_OverWriteValue = yes
  4456.     ifstr(i) $(!Pburst_Read_Window_Size) != ""
  4457.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4458.         ifint $(!Pburst_Read_Window_Size) >= "1"
  4459.             ifint $(!Pburst_Read_Window_Size) <= "65536"
  4460.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Max Read Burst Size" $(!Pburst_Read_Window_Size) $(!REG_VT_DWORD) $(!Pburst_Read_Window_Size_OverWriteValue)
  4461.             else
  4462.                 ;    error case greater than max
  4463.                 goto Pburst_Read_Window_SizeError
  4464.             endif
  4465.         else
  4466. Pburst_Read_Window_SizeError = +
  4467.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Pburst_Read_Window_Size = "$(!Pburst_Read_Window_Size)$(UnattendParameterError)
  4468.             ifstr(i) $($R1) == "CANCEL"
  4469.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4470.                 goto endOfUnattend
  4471.             endif
  4472.         endif
  4473.     endif
  4474.  
  4475.  
  4476.     ;    !Pburst_Write_Window_Size = 10 or 255
  4477.     ;    !Pburst_Write_Window_Size_OverWriteValue = yes
  4478.     ifstr(i) $(!Pburst_Write_Window_Size) != ""
  4479.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4480.         ifint $(!Pburst_Write_Window_Size) >= "1"
  4481.             ifint $(!Pburst_Write_Window_Size) <= "65536"
  4482.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Max Write Burst Size" $(!Pburst_Write_Window_Size) $(!REG_VT_DWORD) $(!Pburst_Write_Window_Size_OverWriteValue)
  4483.             else
  4484.                 ;    error case greater than max
  4485.                 goto Pburst_Write_Window_SizeError
  4486.             endif
  4487.         else
  4488. Pburst_Write_Window_SizeError = +
  4489.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Pburst_Write_Window_Size = "$(!Pburst_Write_Window_Size)$(UnattendParameterError)
  4490.             ifstr(i) $($R1) == "CANCEL"
  4491.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4492.                 goto endOfUnattend
  4493.             endif
  4494.         endif
  4495.     endif
  4496.  
  4497.  
  4498.     ;    !Short_Machine_Type =
  4499.     ;    !Short_Machine_Type_OverWriteValue = yes
  4500.     ifstr(i) $(!Short_Machine_Type) != ""
  4501.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4502.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Short Machine Type" $(!Short_Machine_Type) $(!REG_VT_SZ) $(!Short_Machine_Type_OverWriteValue)
  4503.     endif
  4504.  
  4505.  
  4506.     ;    !Signature_Level = 1
  4507.     ;    !Signature_Level_OverWriteValue = yes
  4508.     ifstr(i) $(!Signature_Level) != ""
  4509.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters"
  4510.         ifint $(!Signature_Level) >= "0"
  4511.             ifint $(!Signature_Level) <= "3"
  4512.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Signature Level" $(!Signature_Level) $(!REG_VT_DWORD) $(!Signature_Level_OverWriteValue)
  4513.             else
  4514.                 ;    error case greater than max
  4515.                 goto sigError
  4516.             endif
  4517.         else
  4518. sigError = +
  4519.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Signature_Level = "$(!Signature_Level)$(UnattendParameterError)
  4520.             ifstr(i) $($R1) == "CANCEL"
  4521.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4522.                 goto endOfUnattend
  4523.             endif
  4524.         endif
  4525.     endif
  4526.  
  4527.  
  4528. ; Graphical Login section.
  4529.  
  4530.     ;     !Display_Connection_Page = no
  4531.     ;    !Display_Connection_Page_OverWriteValue = yes
  4532.     ifstr(i) $(!Display_Connection_Page) != ""
  4533.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4534.         ifstr(i) $(!Display_Connection_Page) == "yes"
  4535.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Connection Tab" 1 $(!REG_VT_DWORD) $(!Display_Connection_Page_OverWriteValue)
  4536.         else-ifstr(i) $(!Display_Connection_Page) == "no"
  4537.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Connection Tab" 0 $(!REG_VT_DWORD) $(!Display_Connection_Page_OverWriteValue)
  4538.         else
  4539.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Display_Connection_Page = "$(!Display_Connection_Page)$(UnattendParameterError)
  4540.             ifstr(i) $($R1) == "CANCEL"
  4541.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4542.                 goto endOfUnattend
  4543.             endif
  4544.         endif
  4545.     endif
  4546.  
  4547.  
  4548.     ;     !Login_To_Tree = yes
  4549.     ;    !Login_To_Tree_OverWriteValue = yes
  4550.     ;     !Login_To_Server = no
  4551.     ;    !Login_To_Server_OverWriteValue = yes
  4552.     ;    Error checking for junk in the variable.
  4553.  
  4554.     ifstr(i) $(!Login_To_Tree) != ""
  4555.         ifstr(i) $(!Login_To_Tree) != "yes"
  4556.             ifstr(i) $(!Login_To_Tree) != "no"
  4557.                 shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Login_To_Tree = "$(!Login_To_Tree)$(UnattendParameterError)
  4558.                 set  !Login_To_Tree = ""
  4559.                 ifstr(i) $($R1) == "CANCEL"
  4560.                     set UnattendReturnStatus = STATUS_USERCANCEL
  4561.                     goto endOfUnattend
  4562.                 endif
  4563.             endif
  4564.         endif
  4565.     endif
  4566.  
  4567.     ;    Error checking for junk in the variable.
  4568.     ifstr(i) $(!Login_To_Server) != ""
  4569.         ifstr(i) $(!Login_To_Server) != "yes"
  4570.             ifstr(i) $(!Login_To_Server) != "no"
  4571.                 shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Login_To_Server = "$(!Login_To_Server)$(UnattendParameterError)
  4572.                 set  !Login_To_Server = ""
  4573.                 ifstr(i) $($R1) == "CANCEL"
  4574.                     set UnattendReturnStatus = STATUS_USERCANCEL
  4575.                     goto endOfUnattend
  4576.                 endif
  4577.             endif
  4578.         endif
  4579.     endif
  4580.         
  4581.  
  4582.     ;     !Login_To_Tree = yes
  4583.     ;    !Login_To_Tree_OverWriteValue = yes
  4584.     ;     !Login_To_Server = no
  4585.     ;    !Login_To_Server_OverWriteValue = yes
  4586.     set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4587.  
  4588.     ifstr(i) $(!Login_To_Tree) != ""
  4589.         ifstr(i) $(!Login_To_Server) != ""
  4590.             set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4591.             ifstr(i) $(!Login_To_Tree) == "yes"
  4592.                 ifstr(i) $(!Login_To_Server) == "no"
  4593.                     shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 1 $(!REG_VT_DWORD) $(!Login_To_Tree_OverWriteValue)
  4594.                     set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update"
  4595.                     OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell
  4596.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  4597.                         CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell
  4598.                     endif
  4599.                     CloseRegKey $(NWGinaKeyParamNovell)
  4600.                 else
  4601.                     shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Login_To_Tree = "$(!Login_To_Tree)" Login_To_Server = "$(!Login_To_Server)$(UnattendTreeServerParameterError)
  4602.                     ifstr(i) $($R1) == "CANCEL"
  4603.                         set UnattendReturnStatus = STATUS_USERCANCEL
  4604.                         goto endOfUnattend
  4605.                     endif
  4606.                 endif
  4607.             else-ifstr(i) $(!Login_To_Tree) == "no"
  4608.                 ifstr(i) $(!Login_To_Server) == "Yes"
  4609.                     shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 0 $(!REG_VT_DWORD) $(!Login_To_Tree_OverWriteValue)
  4610.                     set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update"
  4611.                     OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell
  4612.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  4613.                         CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell
  4614.                     endif
  4615.                     CloseRegKey $(NWGinaKeyParamNovell)
  4616.                 else
  4617.                     shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Login_To_Tree = "$(!Login_To_Tree)" Login_To_Server = "$(!Login_To_Server)$(UnattendTreeServerParameterError)
  4618.                     ifstr(i) $($R1) == "CANCEL"
  4619.                         set UnattendReturnStatus = STATUS_USERCANCEL
  4620.                         goto endOfUnattend
  4621.                     endif
  4622.                 endif
  4623.             endif
  4624.         else
  4625.             ; Server is blank and Tree has data.
  4626.             ifstr(i) $(!Login_To_Tree) == "yes"
  4627.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 1 $(!REG_VT_DWORD) $(!Login_To_Tree_OverWriteValue)
  4628.                 set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update"
  4629.                 OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell
  4630.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  4631.                     CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell
  4632.                 endif
  4633.                 CloseRegKey $(NWGinaKeyParamNovell)
  4634.             else-ifstr(i) $(!Login_To_Tree) == "no"
  4635.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 0 $(!REG_VT_DWORD) $(!Login_To_Tree_OverWriteValue)
  4636.                 set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update"
  4637.                 OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell
  4638.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  4639.                     CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell
  4640.                 endif
  4641.                 CloseRegKey $(NWGinaKeyParamNovell)
  4642.             endif
  4643.         endif
  4644.     else-ifstr(i) $(!Login_To_Server) != ""
  4645.     ; Tree is blank and Server has data
  4646.         ifstr(i) $(!Login_To_Server) == "yes"
  4647.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 0 $(!REG_VT_DWORD) $(!Login_To_Server_OverWriteValue)
  4648.             set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update"
  4649.             OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell
  4650.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  4651.                 CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell
  4652.             endif
  4653.             CloseRegKey $(NWGinaKeyParamNovell)
  4654.         else-ifstr(i) $(!Login_To_Server) == "no"
  4655.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 1 $(!REG_VT_DWORD) $(!Login_To_Server_OverWriteValue)
  4656.             set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update"
  4657.             OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell
  4658.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  4659.                 CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell
  4660.             endif
  4661.             CloseRegKey $(NWGinaKeyParamNovell)
  4662.         endif
  4663.     endif
  4664.  
  4665.  
  4666.     ;     !Bindery_Connections = yes
  4667.     ;    !Bindery_Connections_OverWriteValue = yes
  4668.     ifstr(i) $(!Bindery_Connections) != ""
  4669.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4670.         ifstr(i) $(!Bindery_Connections) == "yes"
  4671.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Bindery Connections" 1 $(!REG_VT_DWORD) $(!Bindery_Connections_OverWriteValue)
  4672.         else-ifstr(i) $(!Bindery_Connections) == "no"
  4673.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Bindery Connections" 0 $(!REG_VT_DWORD) $(!Bindery_Connections_OverWriteValue)
  4674.         else
  4675.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Bindery Connection = "$(!Bindery_Connections)$(UnattendParameterError)
  4676.             ifstr(i) $($R1) == "CANCEL"
  4677.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4678.                 goto endOfUnattend
  4679.             endif
  4680.         endif
  4681.     endif
  4682.  
  4683.  
  4684.     ;     !Clear_Current_Connections = yes
  4685.     ;    !Clear_Current_Connections_OverWriteValue = yes
  4686.     ifstr(i) $(!Clear_Current_Connections) != ""
  4687.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4688.         ifstr(i) $(!Clear_Current_Connections) == "yes"
  4689.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Clear Connections" 1 $(!REG_VT_DWORD) $(!Clear_Current_Connections_OverWriteValue)
  4690.         else-ifstr(i) $(!Clear_Current_Connections) == "no"
  4691.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Clear Connections" 0 $(!REG_VT_DWORD) $(!Clear_Current_Connections_OverWriteValue)
  4692.         else
  4693.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Clear_Current_Connections = "$(!Clear_Current_Connections)$(UnattendParameterError)
  4694.             ifstr(i) $($R1) == "CANCEL"
  4695.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4696.                 goto endOfUnattend
  4697.             endif
  4698.         endif
  4699.     endif
  4700.  
  4701.  
  4702.     ;    !Display_Script_Page =
  4703.     ;    !Display_Script_Page_OverWriteValue = yes
  4704.     ifstr(i) $(!Display_Script_Page) != ""
  4705.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4706.         ifstr(i) $(!Display_Script_Page) == "yes"
  4707.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Script Tab" 1 $(!REG_VT_DWORD) $(!Display_Script_Page_OverWriteValue)
  4708.         else-ifstr(i) $(!Display_Script_Page) == "no"
  4709.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Script Tab" 0 $(!REG_VT_DWORD) $(!Display_Script_Page_OverWriteValue)
  4710.         else
  4711.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Display_Script_Page = "$(!Display_Script_Page)$(UnattendParameterError)
  4712.             ifstr(i) $($R1) == "CANCEL"
  4713.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4714.                 goto endOfUnattend
  4715.             endif
  4716.         endif
  4717.     endif
  4718.  
  4719.  
  4720.     ;!Login_Script =
  4721.     ;!Login_Script_OverWriteValue = yes
  4722.     ifstr(i) $(!Login_Script) != ""
  4723.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Scripts\1"
  4724.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!Login_Script) $(!REG_VT_SZ) $(!Login_Script_OverWriteValue)
  4725.     endif
  4726.  
  4727.  
  4728.     ;!Profile_Script =
  4729.     ;!Profile_Script_OverWriteValue = yes
  4730.     ifstr(i) $(!Profile_Script) != ""
  4731.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Profiles\1"
  4732.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!Profile_Script) $(!REG_VT_SZ) $(!Profile_Script_OverWriteValue)
  4733.     endif
  4734.  
  4735.  
  4736.     ;!Display_Results = no
  4737.     ;!Display_Results_OverWriteValue = yes
  4738.     ifstr(i) $(!Display_Results) != ""
  4739.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4740.         ifstr(i) $(!Display_Results) == "yes"
  4741.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Display Results" 1 $(!REG_VT_DWORD) $(!Display_Results_OverWriteValue)
  4742.         else-ifstr(i) $(!Display_Results) == "no"
  4743.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Display Results" 0 $(!REG_VT_DWORD) $(!Display_Results_OverWriteValue)
  4744.         else
  4745.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Display_Results = "$(!Display_Results)$(UnattendParameterError)
  4746.             ifstr(i) $($R1) == "CANCEL"
  4747.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4748.                 goto endOfUnattend
  4749.             endif
  4750.         endif
  4751.     endif
  4752.  
  4753.  
  4754.     ;!Close_Script_Results_Automatically = yes
  4755.     ;!Close_Script_Results_Automatically_OverWriteValue = yes
  4756.     ifstr(i) $(!Close_Script_Results_Automatically) != ""
  4757.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4758.         ifstr(i) $(!Close_Script_Results_Automatically) == "yes"
  4759.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Close Results" 1 $(!REG_VT_DWORD) $(!Close_Script_Results_Automatically_OverWriteValue)
  4760.         else-ifstr(i) $(!Close_Script_Results_Automatically) == "no"
  4761.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Close Results" 0 $(!REG_VT_DWORD) $(!Close_Script_Results_Automatically_OverWriteValue)
  4762.         else
  4763.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Close_Script_Results_Automatically = "$(!Close_Script_Results_Automatically)$(UnattendParameterError)
  4764.             ifstr(i) $($R1) == "CANCEL"
  4765.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4766.                 goto endOfUnattend
  4767.             endif
  4768.         endif
  4769.     endif
  4770.  
  4771.     ;!Run_Scripts = no
  4772.     ;!Run_Scripts_OverWriteValue = yes
  4773.     ifstr(i) $(!Run_Scripts) != ""
  4774.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4775.         ifstr(i) $(!Run_Scripts) == "yes"
  4776.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Login Script" 1 $(!REG_VT_DWORD) $(!Run_Scripts_OverWriteValue)
  4777.         else-ifstr(i) $(!Run_Scripts) == "no"
  4778.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Login Script" 0 $(!REG_VT_DWORD) $(!Run_Scripts_OverWriteValue)
  4779.         else
  4780.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Run_Scripts = "$(!Run_Scripts)$(UnattendParameterError)
  4781.             ifstr(i) $($R1) == "CANCEL"
  4782.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4783.                 goto endOfUnattend
  4784.             endif
  4785.         endif
  4786.     endif
  4787.  
  4788.     ;!Display_Variables_Page = no
  4789.     ;!Display_Variables_Page_OverWriteValue = yes
  4790.     ifstr(i) $(!Display_Variables_Page) != ""
  4791.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4792.         ifstr(i) $(!Display_Variables_Page) == "yes"
  4793.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Script Variable Tab" 1 $(!REG_VT_DWORD) $(!Display_Variables_Page_OverWriteValue)
  4794.         else-ifstr(i) $(!Display_Variables_Page) == "no"
  4795.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Script Variable Tab" 0 $(!REG_VT_DWORD) $(!Display_Variables_Page_OverWriteValue)
  4796.         else
  4797.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Display_Variables_Page = "$(!Display_Variables_Page)$(UnattendParameterError)
  4798.             ifstr(i) $($R1) == "CANCEL"
  4799.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4800.                 goto endOfUnattend
  4801.             endif
  4802.         endif
  4803.     endif
  4804.  
  4805.  
  4806.     ;    %2 =
  4807.     ;    %2_OverWriteValue = yes
  4808.     ifstr(i) $(!%2) != ""
  4809.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Variables\2"
  4810.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!%2) $(!REG_VT_SZ) $(!%2_OverWriteValue)
  4811.     endif
  4812.  
  4813.     ;    %3 =
  4814.     ;    %3_OverWriteValue = yes
  4815.     ifstr(i) $(!%3) != ""
  4816.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Variables\3"
  4817.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!%3) $(!REG_VT_SZ) $(!%3_OverWriteValue)
  4818.     endif
  4819.  
  4820.     ;    %4 =
  4821.     ;    %4_OverWriteValue = yes
  4822.     ifstr(i) $(!%4) != ""
  4823.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Variables\4"
  4824.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!%4) $(!REG_VT_SZ) $(!%4_OverWriteValue)
  4825.     endif
  4826.  
  4827.     ;    %5 =
  4828.     ;    %5_OverWriteValue = yes
  4829.     ifstr(i) $(!%5) != ""
  4830.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Variables\5"
  4831.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!%5) $(!REG_VT_SZ) $(!%5_OverWriteValue)
  4832.     endif
  4833.  
  4834.     ;!Display_RAS_Page = no
  4835.     ;!Display_RAS_Page_OverWriteValue = yes
  4836.     ifstr(i) $(!Display_RAS_Page) != ""
  4837.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4838.         ifstr(i) $(!Display_RAS_Page) == "yes"
  4839.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Dialup Networking Tab" 1 $(!REG_VT_DWORD) $(!Display_RAS_Page_OverWriteValue)
  4840.         else-ifstr(i) $(!Display_RAS_Page) == "no"
  4841.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Dialup Networking Tab" 0 $(!REG_VT_DWORD) $(!Display_RAS_Page_OverWriteValue)
  4842.         else
  4843.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Display_RAS_Page = "$(!Display_RAS_Page)$(UnattendParameterError)
  4844.             ifstr(i) $($R1) == "CANCEL"
  4845.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4846.                 goto endOfUnattend
  4847.             endif
  4848.         endif
  4849.     endif
  4850.  
  4851.     ;    !Save_Settings_When_Exiting_Login = no
  4852.     ;    !Save_Settings_When_Exiting_Login_OverWriteValue = yes
  4853.     ifstr(i) $(!Save_Settings_When_Exiting_Login) != ""
  4854.         set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login"
  4855.         ifstr(i) $(!Save_Settings_When_Exiting_Login) == "yes"
  4856.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Save On Exit" 1 $(!REG_VT_DWORD) $(!Save_Settings_When_Exiting_Login_OverWriteValue)
  4857.         else-ifstr(i) $(!Save_Settings_When_Exiting_Login) == "no"
  4858.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Save On Exit" 0 $(!REG_VT_DWORD) $(!Save_Settings_When_Exiting_Login_OverWriteValue)
  4859.         else
  4860.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Save_Settings_When_Exiting_Login = "$(!Save_Settings_When_Exiting_Login)$(UnattendParameterError)
  4861.             ifstr(i) $($R1) == "CANCEL"
  4862.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4863.                 goto endOfUnattend
  4864.             endif
  4865.         endif
  4866.     endif
  4867.  
  4868.  
  4869. ;    Advanced Login Property Page Parameters
  4870.  
  4871.     ;    !Policy_Path =
  4872.     ;    !Policy_Path_OverWriteValue = yes
  4873.     ifstr(i) $(!Policy_Path) != ""
  4874.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Policy Support"
  4875.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Policy Path" $(!Policy_Path) $(!REG_VT_SZ) $(!Policy_Path_OverWriteValue)
  4876.     endif
  4877.  
  4878.     ;    !NetWare_Storage_Of_Roaming_Profiles = yes
  4879.     ;    !NetWare_Storage_Of_Roaming_Profiles_OverWriteValue = yes
  4880.     ifstr(i) $(!NetWare_Storage_Of_Roaming_Profiles) != ""
  4881.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Roaming Profiles"
  4882.         ifstr(i) $(!NetWare_Storage_Of_Roaming_Profiles) == "yes"
  4883.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NetWare Storage" 1 $(!REG_VT_DWORD) $(!NetWare_Storage_Of_Roaming_Profiles_OverWriteValue)
  4884.         else-ifstr(i) $(!NetWare_Storage_Of_Roaming_Profiles) == "no"
  4885.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NetWare Storage" 0 $(!REG_VT_DWORD) $(!NetWare_Storage_Of_Roaming_Profiles_OverWriteValue)
  4886.         else
  4887.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "NetWare_Storage_Of_Roaming_Profiles = "$(!NetWare_Storage_Of_Roaming_Profiles)$(UnattendParameterError)
  4888.             ifstr(i) $($R1) == "CANCEL"
  4889.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4890.                 goto endOfUnattend
  4891.             endif
  4892.         endif
  4893.     endif
  4894.  
  4895.  
  4896.     ;    !Storage_Type = "Home Directory" | "File System Pointer"
  4897.     ;    !Storage_Type_OverWriteValue = yes
  4898.     ifstr(i) $(!Storage_Type) != ""
  4899.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Roaming Profiles"
  4900.         ifstr(i) $(!Storage_Type) == "Home Directory"
  4901.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Storage Type" $(!Storage_Type) $(!REG_VT_SZ) $(!Storage_Type_OverWriteValue)
  4902.         else-ifstr(i) $(!Storage_Type) == "File System Pointer"
  4903.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Storage Type" $(!Storage_Type) $(!REG_VT_SZ) $(!Storage_Type_OverWriteValue)
  4904.         else
  4905.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Storage_Type = "$(!Storage_Type)$(UnattendParameterError)
  4906.             ifstr(i) $($R1) == "CANCEL"
  4907.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4908.                 goto endOfUnattend
  4909.             endif
  4910.         endif
  4911.     endif
  4912.  
  4913.  
  4914.     ;    !File_System_Pointer_Path =
  4915.     ;    !File_System_Pointer_Path_OverWriteValue = yes
  4916.     ifstr(i) $(!File_System_Pointer_Path) != ""
  4917.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Roaming Profiles"
  4918.          shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "File System Pointer Path" $(!File_System_Pointer_Path) $(!REG_VT_SZ) $(!File_System_Pointer_Path_OverWriteValue)
  4919.     endif
  4920.  
  4921.  
  4922.     ;    !Bitmap_Filename =
  4923.     ;    !Bitmap_Filename_OverWriteValue = yes
  4924.     ifstr(i) $(!Bitmap_Filename) != ""
  4925.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Welcome Screen"
  4926.          shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Bitmap" $(!Bitmap_Filename) $(!REG_VT_SZ) $(!Bitmap_Filename_OverWriteValue)
  4927.     endif
  4928.  
  4929.  
  4930.     ;    !Welcome_Screen_Caption =
  4931.     ;    !Welcome_Screen_Caption_OverWriteValue = yes
  4932.     ifstr(i) $(!Welcome_Screen_Caption) != ""
  4933.         set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Welcome Screen"
  4934.          shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Header Message" $(!Welcome_Screen_Caption) $(!REG_VT_SZ) $(!Welcome_Screen_Caption_OverWriteValue)
  4935.     endif
  4936.  
  4937.  
  4938. ;    NWIP Parameters
  4939.  
  4940.     ;    !Remote_Config = on
  4941.     ;    !Remote_Config_OverWriteValue = yes
  4942.     ifstr(i) $(!Remote_Config) != ""
  4943.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters"
  4944.         ifstr(i) $(!Remote_Config) == "on"
  4945.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Remote Config" 1 $(!REG_VT_DWORD) $(!Remote_Config_OverWriteValue)
  4946.         else-ifstr(i) $(!Remote_Config) == "off"
  4947.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Remote Config" 0 $(!REG_VT_DWORD) $(!Remote_Config_OverWriteValue)
  4948.         else
  4949.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Remote_Config = "$(!Remote_Config)$(UnattendParameterError)
  4950.             ifstr(i) $($R1) == "CANCEL"
  4951.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4952.                 goto endOfUnattend
  4953.             endif
  4954.         endif
  4955.     endif
  4956.  
  4957.     ;    !NWIP_Domain_Name =
  4958.     ;    !NWIP_Domain_Name_OverWriteValue = yes
  4959.     ifstr(i) $(!NWIP_Domain_Name) != ""
  4960.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters"
  4961.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NWIP Domain Name" $(!NWIP_Domain_Name) $(!REG_VT_SZ) $(!NWIP_Domain_Name_OverWriteValue)
  4962.     endif
  4963.  
  4964.     ;    !AutoRetries = 0
  4965.     ;    !AutoRetries_OverWriteValue = yes
  4966.     ifstr(i) $(!AutoRetries) != ""
  4967.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters"
  4968.         ifint $(!AutoRetries) >= "0"
  4969.             ifint $(!AutoRetries) <= "10"
  4970.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "AutoRetries" $(!AutoRetries) $(!REG_VT_DWORD) $(!AutoRetries_OverWriteValue)
  4971.             else
  4972.                 ;    error case greater than max
  4973.                 goto AutoRetriesError
  4974.             endif
  4975.         else
  4976. AutoRetriesError = +
  4977.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "AutoRetries = "$(!AutoRetries)$(UnattendParameterError)
  4978.             ifstr(i) $($R1) == "CANCEL"
  4979.                 set UnattendReturnStatus = STATUS_USERCANCEL
  4980.                 goto endOfUnattend
  4981.             endif
  4982.         endif
  4983.     endif
  4984.  
  4985.     ;    !AutoRetry_Secs = 10
  4986.     ;    !AutoRetry_Secs_OverWriteValue = yes
  4987.     ifstr(i) $(!AutoRetry_Secs) != ""
  4988.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters"
  4989.         ifint $(!AutoRetry_Secs) >= "5"
  4990.             ifint $(!AutoRetry_Secs) <= "99"
  4991.                 shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "AutoRetry Secs" $(!AutoRetry_Secs) $(!REG_VT_DWORD) $(!AutoRetry_Secs_OverWriteValue)
  4992.             else
  4993.                 ;    error case greater than max
  4994.                 goto AutoRetry_SecsError
  4995.             endif
  4996.         else
  4997. AutoRetry_SecsError = +
  4998.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "AutoRetry_Secs = "$(!AutoRetry_Secs)$(UnattendParameterError)
  4999.             ifstr(i) $($R1) == "CANCEL"
  5000.                 set UnattendReturnStatus = STATUS_USERCANCEL
  5001.                 goto endOfUnattend
  5002.             endif
  5003.         endif
  5004.     endif
  5005.  
  5006.     ;    !NSQ_Broadcast = on
  5007.     ;    !NSQ_Broadcast_OverWriteValue = yes
  5008.     ifstr(i) $(!NSQ_Broadcast) != ""
  5009.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters"
  5010.         ifstr(i) $(!NSQ_Broadcast) == "on"
  5011.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NSQ Broadcast" 1 $(!REG_VT_DWORD) $(!NSQ_Broadcast_OverWriteValue)
  5012.         else-ifstr(i) $(!NSQ_Broadcast) == "off"
  5013.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NSQ Broadcast" 0 $(!REG_VT_DWORD) $(!NSQ_Broadcast_OverWriteValue)
  5014.         else
  5015.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "NSQ_Broadcast = "$(!NSQ_Broadcast)$(UnattendParameterError)
  5016.             ifstr(i) $($R1) == "CANCEL"
  5017.                 set UnattendReturnStatus = STATUS_USERCANCEL
  5018.                 goto endOfUnattend
  5019.             endif
  5020.         endif
  5021.     endif
  5022.  
  5023.     ;    !NWIP1_1_Compatibility = off
  5024.     ;    !NWIP1_1_Compatibility_OverWriteValue = yes
  5025.     ifstr(i) $(!NWIP1_1_Compatibility) != ""
  5026.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters"
  5027.         ifstr(i) $(!NWIP1_1_Compatibility) == "on"
  5028.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NWIP1_1 Compatibility" 1 $(!REG_VT_DWORD) $(!NWIP1_1_Compatibility_OverWriteValue)
  5029.         else-ifstr(i) $(!NWIP1_1_Compatibility) == "off"
  5030.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NWIP1_1 Compatibility" 0 $(!REG_VT_DWORD) $(!NWIP1_1_Compatibility_OverWriteValue)
  5031.         else
  5032.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "NWIP1_1_Compatability = "$(!NWIP1_1_Compatibility)$(UnattendParameterError)
  5033.             ifstr(i) $($R1) == "CANCEL"
  5034.                 set UnattendReturnStatus = STATUS_USERCANCEL
  5035.                 goto endOfUnattend
  5036.             endif
  5037.         endif
  5038.     endif
  5039.  
  5040.     ;    !Use_Custom_Port = off
  5041.     ;    !Use_Custom_Port_OverWriteValue = yes
  5042.     ifstr(i) $(!Use_Custom_Port) != ""
  5043.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters"
  5044.         ifstr(i) $(!Use_Custom_Port) == "on"
  5045.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Use Custom Port" 1 $(!REG_VT_DWORD) $(!Use_Custom_Port_OverWriteValue)
  5046.         else-ifstr(i) $(!Use_Custom_Port) == "off"
  5047.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Use Custom Port" 0 $(!REG_VT_DWORD) $(!Use_Custom_Port_OverWriteValue)
  5048.         else
  5049.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Use_Custom_Port = "$(!Use_Custom_Port)$(UnattendParameterError)
  5050.             ifstr(i) $($R1) == "CANCEL"
  5051.                 set UnattendReturnStatus = STATUS_USERCANCEL
  5052.                 goto endOfUnattend
  5053.             endif
  5054.         endif
  5055.     endif
  5056.  
  5057.     ;    !Port_Number = ABCD
  5058.     ;    !Port_Number_OverWriteValue = yes
  5059.     ifstr(i) $(!Port_Number) != ""
  5060.         Split-String $(!Port_Number) "ghijklmnopqrstuvwxyzGHIJKLMNOPQRSTUVWXYZ\/<>~!%^()[]{}.-" PortNumberList
  5061.         QueryListSize ListSize $(PortNumberList)
  5062.         ifint $(ListSize) == 1
  5063.             set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters"
  5064.             shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Port Number" $(!Port_Number) $(!REG_VT_SZ) $(!Port_Number_OverWriteValue)
  5065.         else
  5066.             shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Port Number = "$(!Port_Number)$(UnattendParameterError)
  5067.             ifstr(i) $($R1) == "CANCEL"
  5068.                 set UnattendReturnStatus = STATUS_USERCANCEL
  5069.                 goto endOfUnattend
  5070.             endif
  5071.         endif
  5072.     endif
  5073.  
  5074.     ;    NWIP Servers Page
  5075.  
  5076.     ;    !Nearest_NWIP_Server1 =
  5077.     ;    !Nearest_NWIP_Server1_OverWriteValue = yes
  5078.     ifstr(i) $(!Nearest_NWIP_Server1) != ""
  5079.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Nearest NWIP Server"
  5080.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "0" $(!Nearest_NWIP_Server1) $(!REG_VT_SZ) $(!Nearest_NWIP_Server1_OverWriteValue)
  5081.     endif
  5082.  
  5083.     ;    !Nearest_NWIP_Server2 =
  5084.     ;    !Nearest_NWIP_Server2_OverWriteValue = yes
  5085.     ifstr(i) $(!Nearest_NWIP_Server2) != ""
  5086.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Nearest NWIP Server"
  5087.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "1" $(!Nearest_NWIP_Server2) $(!REG_VT_SZ) $(!Nearest_NWIP_Server2_OverWriteValue)
  5088.     endif
  5089.  
  5090.     ;    !Nearest_NWIP_Server3 =
  5091.     ;    !Nearest_NWIP_Server3_OverWriteValue = yes
  5092.     ifstr(i) $(!Nearest_NWIP_Server3) != ""
  5093.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Nearest NWIP Server"
  5094.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "2" $(!Nearest_NWIP_Server3) $(!REG_VT_SZ) $(!Nearest_NWIP_Server3_OverWriteValue)
  5095.     endif
  5096.  
  5097.     ;    !Nearest_NWIP_Server4 =
  5098.     ;    !Nearest_NWIP_Server4_OverWriteValue = yes
  5099.     ifstr(i) $(!Nearest_NWIP_Server4) != ""
  5100.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Nearest NWIP Server"
  5101.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "3" $(!Nearest_NWIP_Server4) $(!REG_VT_SZ) $(!Nearest_NWIP_Server4_OverWriteValue)
  5102.     endif
  5103.  
  5104.     ;    !Nearest_NWIP_Server5 =
  5105.     ;    !Nearest_NWIP_Server5_OverWriteValue = yes
  5106.     ifstr(i) $(!Nearest_NWIP_Server5) != ""
  5107.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Nearest NWIP Server"
  5108.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "4" $(!Nearest_NWIP_Server5) $(!REG_VT_SZ) $(!Nearest_NWIP_Server5_OverWriteValue)
  5109.     endif
  5110.  
  5111.     ;    !Preferred_DSS1 =
  5112.     ;    !Preferred_DSS1_OverWriteValue = yes
  5113.     ifstr(i) $(!Preferred_DSS1) != ""
  5114.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Preferred DSS"
  5115.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "0" $(!Preferred_DSS1) $(!REG_VT_SZ) $(!Preferred_DSS1_OverWriteValue)
  5116.     endif
  5117.  
  5118.     ;    !Preferred_DSS2 =
  5119.     ;    !Preferred_DSS2_OverWriteValue = yes
  5120.     ifstr(i) $(!Preferred_DSS2) != ""
  5121.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Preferred DSS"
  5122.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "1" $(!Preferred_DSS2) $(!REG_VT_SZ) $(!Preferred_DSS2_OverWriteValue)
  5123.     endif
  5124.  
  5125.     ;    !Preferred_DSS3 =
  5126.     ;    !Preferred_DSS3_OverWriteValue = yes
  5127.     ifstr(i) $(!Preferred_DSS3) != ""
  5128.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Preferred DSS"
  5129.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "2" $(!Preferred_DSS3) $(!REG_VT_SZ) $(!Preferred_DSS3_OverWriteValue)
  5130.     endif
  5131.  
  5132.     ;    !Preferred_DSS4 =
  5133.     ;    !Preferred_DSS4_OverWriteValue = yes
  5134.     ifstr(i) $(!Preferred_DSS4) != ""
  5135.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Preferred DSS"
  5136.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "3" $(!Preferred_DSS4) $(!REG_VT_SZ) $(!Preferred_DSS4_OverWriteValue)
  5137.     endif
  5138.  
  5139.     ;    !Preferred_DSS5 =
  5140.     ;    !Preferred_DSS5_OverWriteValue = yes
  5141.     ifstr(i) $(!Preferred_DSS5) != ""
  5142.         set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Preferred DSS"
  5143.         shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "4" $(!Preferred_DSS5) $(!REG_VT_SZ) $(!Preferred_DSS5_OverWriteValue)
  5144.     endif
  5145.  
  5146. endOfUnattend = +
  5147.  
  5148. Return $(UnattendReturnStatus)
  5149.  
  5150.  
  5151.  
  5152. ;----------NWParameterRegSet-------------------------------------------------
  5153. ;
  5154. ; NWParameterRegSet
  5155. ;
  5156. ; It sets all of the Client Values to the data specified in the Unattend.txt file.
  5157. ;
  5158. ;------------------------------------------------------------------------
  5159. [NWParameterRegSet]
  5160.  
  5161.     read-syms InitBaseVars
  5162.  
  5163.     set ParamRegHive = $($0)
  5164.     set ParamRegKeyName = $($1)
  5165.     set ParamValueName = $($2)
  5166.     set ParamValueData = $($3)
  5167.     set ParamValueDataType = $($4)        ; $(!REG_VT_SZ)
  5168.     set OverWriteValue = $($5)
  5169.  
  5170.         Debug-Output "OEMNPRNW.INF: NWParameterRegSet for "$(ParamValueName)" "$(ParamValueData)
  5171.  
  5172.         OpenRegKey $(ParamRegHive) "" $(ParamRegKeyName) $(MAXIMUM_ALLOWED) KeyParamNovell
  5173.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5174.                 Debug-Output "OEMNPRNW.INF: Error opening Key Error Code =  "$(RegLastError)
  5175.                 Debug-Output "OEMNPRNW.INF: Error opening key so create it  "$(ParamRegKeyName)
  5176.                 CreateRegKey $(!REG_H_LOCAL) {$(ParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyParamNovell
  5177.         endif
  5178.  
  5179.         ifstr(i) $(OverWriteValue) == "yes"              ;If OverWrite = yes, write the value in the registry.
  5180.             ; Now do a reg Slam.
  5181.             ifstr(i) $(KeyParamNovell) != ""
  5182.                 SetRegValue $(KeyParamNovell) {$(ParamValueName), 0 ,$(ParamValueDataType),$(ParamValueData)}
  5183.                 Debug-Output "OEMNPRNW.INF: Writing value, OverWrite = YES."
  5184.                 CloseRegKey $(KeyParamNovell)
  5185.             else
  5186.                 Debug-Output "OEMNPRNW.INF: Error the KeyParamNovell was blank ."
  5187.             endif    
  5188.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5189.                 Debug-Output "OEMNPRNW.INF: Error creating Software\Novell\Parameters"
  5190.             endif
  5191.         else
  5192.             ; If OverWrite is NO then check to see if the registry contains a value.  If the registry is blank then write the value.
  5193.             ; Now do a reg Read.
  5194.             ifstr(i) $(KeyParamNovell) != ""
  5195.                 GetRegValue $(KeyParamNovell) $(ParamValueName) ValList
  5196.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5197.                         Debug-Output "OEMNPRNW.INF: Error reading key "$(ParamRegKeyName)
  5198.                     endif
  5199.  
  5200.                 Debug-Output "OEMNPRNW.INF: GetRegValue = "*($(ValList), 4)
  5201.  
  5202.                 ifstr(i)  *($(ValList), 4) == ""
  5203.                     SetRegValue $(KeyParamNovell) {$(ParamValueName), 0 ,$(ParamValueDataType),$(ParamValueData)}
  5204.                     Debug-Output "OEMNPRNW.INF: Writing value, Overwrite = NO"
  5205.                 endif
  5206.                 CloseRegKey $(KeyParamNovell)
  5207.             else
  5208.                 Debug-Output "OEMNPRNW.INF: Error KeyParamNovell was blank ."
  5209.             endif    
  5210.        endif
  5211.    Return
  5212.  
  5213.  
  5214. ;*************************************************************************
  5215. ;
  5216. ;        SECTION:        GetInfFileNameFromRegistry
  5217. ;
  5218. ;        PURPOSE:        get the inf file name from the product' NetRules section.
  5219. ;
  5220. ;        ARGUMENTS:      $0      product key handle
  5221. ;                         (ie, system\software\Microsoft\Lance\CurrentVersion)
  5222. ;
  5223. ;        RETURNS:        $R0     Inf file name.
  5224. ;
  5225. ;        REFERENCES:  Nothing
  5226. ;
  5227. ;        MODIFIES:       Nothing
  5228. ;
  5229. ;
  5230. ;*************************************************************************
  5231. [GetInfFileNameFromRegistry]
  5232.     read-syms InitBaseVars
  5233.     set KeyProduct = $($0)
  5234.     set InfName = ""
  5235.  
  5236.     OpenRegKey $(KeyProduct) "" "NetRules" $(!REG_KEY_READ) NetRuleKey
  5237.     Ifstr(i) $(NetRuleKey) != $(KeyNull)
  5238.         GetRegValue $(NetRuleKey) "InfName" NetRuleInfNameList
  5239.         set NetRuleInfName = *($(NetRuleInfNameList), 4)
  5240.         Split-String $(NetRuleInfName), "\", FilenameList
  5241.         QueryListSize ListSize $(FilenameList)
  5242.         set InfName = *($(FilenameList), $(ListSize))
  5243.         CloseRegKey $(NetRuleKey)
  5244.     endif
  5245.  
  5246.     return $(InfName)
  5247.  
  5248.  
  5249. ;
  5250. ;  Helper sections:  service-specific installation and removal functions
  5251. ;
  5252.     
  5253.  
  5254. [CheckSystemDriveSpace]
  5255.     read-syms InstallOption$(!STF_LANGUAGE)
  5256.     detect DetectDiskSpace
  5257.     GetDriveInPath NtDrive $(!STF_WINDOWSSYSPATH)
  5258.  
  5259.     Debug-Output "NtDrive is "$(NtDrive)
  5260.     Debug-Output "VolumeList is "$(VolumeList)
  5261.     Debug-Output "VolumeFreeList is "$(VolumeFreeList)
  5262.     Debug-Output "VolumeFSList is "$(VolumeFSList)
  5263.  
  5264.     ;
  5265.     ; Set status failed by default until we find out otherwise
  5266.     ;
  5267.  
  5268.     set Status = STATUS_FAILED
  5269.  
  5270.     ForListDo $(VolumeList)
  5271.         set CurrentVolume = *($(VolumeList), $(#))
  5272.         set CurrentVolumeFree  = *($(VolumeFreeList), $(#))
  5273.         Ifstr(i) $(CurrentVolume) == $(NtDrive)
  5274.             Ifint $(CurrentVolumeFree) < 10
  5275.                 ;
  5276.                 ; Let the user know that there is not enough disk space
  5277.                 ;
  5278.         
  5279.                 set DlgType            = "MessageBox"
  5280.                 set STF_MB_TITLE    = $(NoDiskSpaceTitle)
  5281.                 set STF_MB_TEXT    = $(NoDiskSpaceText)
  5282.                 set STF_MB_TYPE    = 1
  5283.                 set STF_MB_ICON    = 2
  5284.                 set STF_MB_DEF        = 1
  5285.                 ui start "NoDiskSpace"
  5286.                 set Status = STATUS_FAILED
  5287.             else
  5288.                 set Status = STATUS_SUCCESSFUL
  5289.             endif
  5290.         EndIf
  5291.     EndForListDo
  5292.  
  5293.     Return $(Status)
  5294.  
  5295.  
  5296. [AgreeToLicense]
  5297.     set SourceDir    = $($0)
  5298.     set Status = STATUS_SUCCESSFUL
  5299.     read-syms InstallOption$(!STF_LANGUAGE)
  5300.     read-syms FileConstants
  5301.  
  5302.     Debug-Output "OEMNPRNW.INF:  Asking user to agree to license"
  5303.  
  5304.     ;
  5305.     ; Ask the user if they agree to license
  5306.     ;
  5307.     
  5308.     LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(SourceDir)
  5309.     Ifstr(i) $(STATUS) != "ERROR"
  5310.         set SourceDir = $(STATUS)
  5311.     Endif
  5312.  
  5313.     LoadLibrary $(LoadDisk1Text) $(SourceDir)$(NwLangIdDll) NwLibHandle
  5314.     LibraryProcedure LibResult $(NwLibHandle) NWLicenseAgreement
  5315.     FreeLibrary $(NwLibHandle)
  5316.  
  5317.     ifstr(i) $(LibResult) == "CONTINUE"
  5318.         set Status = STATUS_SUCCESSFUL
  5319.     else
  5320.         set Status = STATUS_FAILED
  5321.     endif
  5322.  
  5323.     Return $(Status)
  5324.  
  5325.  
  5326. [FinishInstalling-NWFS]
  5327.     read-syms GeneralConstants
  5328.     read-syms FileConstants
  5329.  
  5330.     Set KeyParameters = $($1)
  5331.     Set KeyLinkage = $($2)
  5332.     Set TransportSelected = $($5)
  5333.  
  5334.     ;
  5335.     ; Check for the pre-alpha nwfs key if it exists delete it we are now using
  5336.     ; the key NetWareWorkStation
  5337.     ;
  5338.  
  5339.     set NetWareFileSystem = "Nwfs"
  5340.     set PreAlphaWorkstation = $(!NTN_ServiceBase)"\"$(NetWareFileSystem)
  5341.  
  5342.     OpenRegKey $(!REG_H_LOCAL) "" $(PreAlphaWorkstation) $(MAXIMUM_ALLOWED) KeyWorkstation
  5343.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  5344.         CloseRegKey $(KeyWorkstation)
  5345.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices
  5346.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  5347.             DeleteRegTree $(KeyServices) $(NetWareFileSystem)
  5348.             CloseRegKey $(KeyServices)
  5349.         Else
  5350.             Debug-Output "OEMNPRNW.INF:  Delete Nwfs, Can't open "$(!NTN_ServiceBase)
  5351.         Endif
  5352.     Endif
  5353.  
  5354.  
  5355.     SetRegValue $(KeyLinkage) {"OtherDependencies", $(NoTitle), $(!REG_VT_MULTI_SZ), {"Mup", "NwlnkIpx", "+NetWare Services", "+TDI"}}
  5356.  
  5357.     SetRegValue $(KeyParameters) {"Retry Count", $(NoTitle), $(!REG_VT_DWORD), 16}
  5358.     SetRegValue $(KeyParameters) {"Burst Mode", $(NoTitle), $(!REG_VT_DWORD), 1}
  5359.     SetRegValue $(KeyParameters) {"Signature Level", $(NoTitle), $(!REG_VT_DWORD), 1}
  5360.     SetRegValue $(KeyParameters) {"First Time Install", $(NoTitle), $(!REG_VT_DWORD), 1}
  5361.     SetRegValue $(KeyParameters) {"Opportunistic Locking", $(NoTitle), $(!REG_VT_DWORD), 0}
  5362.  
  5363.     Debug-Output "Set registry for NWLINK, KeyParameters = "$(KeyParameters)
  5364.     SetRegValue $(KeyParameters) {"IPX TDI Provider",$(NoTitle),$(!REG_VT_SZ),"\Device\NwLnkIpx"}
  5365.  
  5366.  
  5367. FIN_NWFS_Return = +
  5368.     Return
  5369.  
  5370. [FinishInstalling-IPXSPX]
  5371.     read-syms GeneralConstants
  5372.     read-syms FileConstants
  5373.     read-syms IpxSpxConstants
  5374.  
  5375.     set ParmKey = $($1)
  5376.     set LinkageKey = $($2)
  5377.  
  5378.     ;
  5379.     ;  set Parameters
  5380.     ;
  5381.  
  5382.     SetRegValue $(ParmKey) {$(CardTypeName),$(NoTitle),$(!REG_VT_SZ),$(CardName)}
  5383.     SetRegValue $(ParmKey) {$(CardInstance),$(NoTitle),$(!REG_VT_DWORD),$(CardInstanceNum)}
  5384.     SetRegValue $(ParmKey) {"Session Count",$(NoTitle),$(!REG_VT_DWORD),48}
  5385.     SetRegValue $(ParmKey) {"Window Size",$(NoTitle),$(!REG_VT_DWORD),3}
  5386.     SetRegValue $(ParmKey) {"Retry Count",$(NoTitle),$(!REG_VT_DWORD),10}
  5387.     SetRegValue $(ParmKey) {"Retry Delay Timeout",$(NoTitle),$(!REG_VT_DWORD),0}
  5388.     SetRegValue $(ParmKey) {"Watchdog Abort Timeout",$(NoTitle),$(!REG_VT_DWORD),30}
  5389.     SetRegValue $(ParmKey) {"Watchdog Listen Timeout",$(NoTitle),$(!REG_VT_DWORD),6}
  5390.     SetRegValue $(ParmKey) {"Watchdog Verify Timeout",$(NoTitle),$(!REG_VT_DWORD),3}
  5391.  
  5392.     ;
  5393.     ; set Linkage
  5394.     ;
  5395.  
  5396.     SetRegValue $(LinkageKey) {$(BindValueName),$(NoTitle),$(!REG_VT_SZ),"\DEVICE\IPXSPX"}
  5397.  
  5398.     Shell $(UtilityInf) AddWinsockInfo $(ProductIPXSPXName) "wshnw.dll" "14" "14"
  5399.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  5400.         Debug-Output "OEMNPRNW.INF: AddWinsockInfo ShellCode error "$($ShellCode)
  5401.     endif
  5402.  
  5403.     ;
  5404.     ; Check for the pre-alpha Ipx service key if it exists delete it.  We are now
  5405.     ; using the key IpxSpx
  5406.     ;
  5407.  
  5408.     set PreAlphaIpxName        = "Ipx"
  5409.     set PreAlphaIpxService    = $(!NTN_ServiceBase)"\"$(PreAlphaIpxName)
  5410.  
  5411.     OpenRegKey $(!REG_H_LOCAL) "" $(PreAlphaIpxService) $(MAXIMUM_ALLOWED) KeyIpx
  5412.     Ifstr(i) $(KeyIpx) != ""
  5413.         CloseRegKey $(KeyIpx)
  5414.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices
  5415.         Ifstr(i) $(KeyServices) == ""
  5416.             Debug-Output "OEMNPRNW.INF: Delete Ipx, Can't open "$(!NTN_ServiceBase)
  5417.         Else
  5418.             DeleteRegTree $(KeyServices) $(PreAlphaIpxName)
  5419.             FlushRegKey $(KeyServices)
  5420.             CloseRegKey $(KeyServices)
  5421.         Endif
  5422.     Endif
  5423.  
  5424.     Return
  5425.  
  5426.  
  5427. [FinishInstalling-LSL]
  5428.     Return
  5429.  
  5430.  
  5431. [FinishInstalling-NBI]
  5432.     SetRegValue $($0) {"DependOnService",$(NoTitle),$(!REG_VT_MULTI_SZ),{"LSL"}}
  5433.     Return
  5434.  
  5435.  
  5436. [FinishInstalling-RESMGR]
  5437.     Return
  5438.  
  5439.  
  5440. [FinishInstalling-ODILOAD]
  5441.     Set KeyLinkage = $($2)
  5442.  
  5443.     SetRegValue $(KeyLinkage) {"OtherDependencies",$(NoTitle),$(!REG_VT_MULTI_SZ),{"+ODI"}}
  5444.  
  5445.     Return
  5446.  
  5447.  
  5448. [FinishInstalling-MUP]
  5449.     Return
  5450.  
  5451.  
  5452. [FinishInstalling-TDI]
  5453.     Return
  5454.  
  5455.  
  5456. [FinishInstalling-SPXAPI]
  5457.     Return
  5458.  
  5459. [FinishInstalling-IPXAPI]
  5460.     Return
  5461.  
  5462. [FinishInstalling-NWSIPX32]
  5463.     SetRegValue $(KeyLinkage) {"OtherDependencies", $(NoTitle), $(!REG_VT_MULTI_SZ), {"NwlnkIpx", "NwlnkSpx", "+NetWare Services", "+TDI"}}
  5464.     Return
  5465.  
  5466. [FinishInstalling-SROUTE]
  5467.     Return
  5468.  
  5469. [FinishInstalling-RECONNECT]
  5470.     Return
  5471.  
  5472. [FinishInstalling-VMLID]
  5473.     Return
  5474.  
  5475. [FinishInstalling-NWPOPUP]
  5476.     Debug-Output "FinishInstalling-NWPOPUP"
  5477.     set KeyNwPop = $($0)
  5478.  
  5479.     FlushRegKey $(KeyNwPop)
  5480.     Ifstr(i) $(KeyNwPop) != ""
  5481.         Debug-Output "Opened Key NWPOPUP"
  5482.         GetRegValue $(KeyNwPop) "Type" ValueTypeList
  5483.         Debug-Output "TypeList = "$(ValueTypeList)
  5484.         set ValueType = *($(ValueTypeList), 4)
  5485.         Debug-Output "Type = "$(ValueType)
  5486.         set-add ValueType = $(ValueType),256
  5487.         SetRegValue $(KeyNwPop) {"Type",$(NoTitle),$(!REG_VT_DWORD),$(ValueType)}
  5488.         Endif
  5489.     Endif
  5490.     Return
  5491.  
  5492. [FinishInstalling-ODINSUP]
  5493.     Return
  5494.  
  5495.  
  5496. [DoAskSource]
  5497.     read-syms DoAskSource$(!STF_LANGUAGE)
  5498.  
  5499.     Set DAS_CWDDIR        = $($0)
  5500.     Set DAS_SRCDIR        = $($1)
  5501.     Set DAS_BUILTIN    = $($2)
  5502.     Set DAS_Result        = STATUS_FAILED
  5503.     Ifstr(i) $(!STF_SRCDIR_OVERRIDE) != ""
  5504.         Set DAS_SRCDIR = $(!STF_SRCDIR_OVERRIDE)
  5505.         Set DAS_Result = STATUS_SUCCESSFUL
  5506.         Goto DAS_exit
  5507.     Endif
  5508.     Ifstr(i) $(DAS_BUILTIN) == YES
  5509.         Ifstr(i) $(!NTN_InstallPhase) == primary
  5510.             Ifstr(i) $(!STF_SRCDIR_WINNT) != ""
  5511.                 Set DAS_SRCDIR = $(!STF_SRCDIR_WINNT)
  5512.             Endif
  5513.             Set DAS_Result = STATUS_SUCCESSFUL
  5514.             Goto DAS_exit
  5515.         Endif
  5516.     Endif
  5517.     Debug-Output "OEMNPRNW.INF: [DoAskSource] STF_CWDDIR = "$(DAS_CWDDIR)" STF_SRCDIR = "$(DAS_SRCDIR)
  5518.     Ifstr(i) $(DAS_SRCDIR) == ""
  5519.         Set DAS_SRCDIR = "A:\"
  5520.     Endif
  5521.     Ifstr(i) $(DAS_SRCDIR) == $(!STF_SRCDIR_USED)
  5522.         Set DAS_SRCDIR = $(!STF_SRCDIR_KEYED)
  5523.     Endif
  5524.     Shell "subroutn.inf" DoAskSourceEx $(DAS_SRCDIR) $(NetWareDlgText)
  5525.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  5526.         Debug-Output "UTILITY.INF: shelling SUBROUTN.INF [DoAskSource] failed"
  5527.         goto DAS_exit
  5528.     endif
  5529.     Set DAS_Result = $($R0)
  5530.     Set DAS_SRCDIR = $($R1)
  5531.     Set !STF_SRCDIR_USED = $($R1)
  5532.     Set !STF_SRCDIR_KEYED = $($R3)
  5533. DAS_exit =+
  5534.     Read-syms ProgressCopy$(!STF_LANGUAGE)
  5535.     Return $(DAS_Result) $(DAS_SRCDIR)
  5536.  
  5537.  
  5538.  
  5539. ;*************************************************************************
  5540. ;
  5541. ;        SECTION:        Install-NetWareIP
  5542. ;
  5543. ;        PURPOSE:        Called at install or update to install the
  5544. ;                        NetWareIP adapter.
  5545. ;
  5546. ;        ARGUMENTS:    None
  5547. ;
  5548. ;        RETURNS:        None
  5549. ;
  5550. ;        REFERENCES:    None
  5551. ;
  5552. ;        MODIFIES:    None
  5553. ;
  5554. ;*************************************************************************
  5555. [Install-NetWareIP]
  5556.     read-syms GeneralConstants
  5557.     read-syms FileConstants
  5558.     read-syms InstallOption$(!STF_LANGUAGE)
  5559.  
  5560.     ;
  5561.     ; Assume all is well until we find out otherwise
  5562.     ;
  5563.  
  5564.     set CommonStatus = STATUS_SUCCESSFUL
  5565.  
  5566. ; Error checking data in the Variables
  5567.         ifstr(i) $(!AskNetWareIP) != ""
  5568.             ifstr(i) $(!AskNetWareIP) == "yes"
  5569.                 goto AskNetWareIPValid
  5570.             else-ifstr(i) $(!AskNetWareIP) == "no"
  5571.                 goto AskNetWareIPValid
  5572.             else
  5573.                 ; Error case the Variable AskNetWareIP does not contains valid YES or NO but does contain something.
  5574.                 set DlgType            = "MessageBox"
  5575.                 set STF_MB_TITLE    = $(FunctionTitle)
  5576.                 set STF_MB_TEXT    = "AskNetWareIP"$(ClientParamError)
  5577.                 set STF_MB_TYPE    = 3
  5578.                 set STF_MB_ICON    = 4
  5579.                 set STF_MB_DEF        = 1
  5580.                 ui start "NoAdapter"
  5581.  
  5582.                 Ifstr(i) $(DLGEVENT) == "NO"
  5583.                     set CommonStatus = STATUS_USERCANCEL
  5584.                     goto end
  5585.                 else
  5586.                 ; set variable to blank
  5587.                     set !AskNetWareIP = ""
  5588.                 endif
  5589.             endif
  5590. AskNetWareIPValid = +
  5591.         endif
  5592.  
  5593. ; Error checking data in the Variables
  5594.         ifstr(i) $(!InstallNetWareIP) != ""
  5595.             ifstr(i) $(!InstallNetWareIP) == "yes"
  5596.                 goto InstallNetWareIPValid
  5597.             else-ifstr(i) $(!InstallNetWareIP) == "no"
  5598.                 goto InstallNetWareIPValid
  5599.             else
  5600.                 ; Error case the Variable InstallNetWareIP does not contains valid YES or NO but does contain something.
  5601.                 set DlgType            = "MessageBox"
  5602.                 set STF_MB_TITLE    = $(FunctionTitle)
  5603.                 set STF_MB_TEXT    = "InstallNetWareIP"$(ClientParamError)
  5604.                 set STF_MB_TYPE    = 3
  5605.                 set STF_MB_ICON    = 4
  5606.                 set STF_MB_DEF        = 1
  5607.                 ui start "NoAdapter"
  5608.  
  5609.                 Ifstr(i) $(DLGEVENT) == "NO"
  5610.                     set CommonStatus = STATUS_USERCANCEL
  5611.                     goto end
  5612.                 else
  5613.                 ; set variable to blank
  5614.                     set !InstallNetWareIP = ""
  5615.                 endif
  5616.             endif
  5617. InstallNetWareIPValid = +
  5618.         endif
  5619.  
  5620.       ifstr(i) $(!AskNetWareIP) == "YES"
  5621.           ifstr(i) $(!InstallNetWareIP) == "YES"
  5622.               set STF_MB_DEF    = 1
  5623.           else
  5624.               set STF_MB_DEF    = 2
  5625.           endif
  5626.           set DlgType            = "MessageBox"
  5627.           set STF_MB_TITLE    = $(InstallNetWareIPMessageTitle)
  5628.           set STF_MB_TEXT    = $(InstallNetWareIPMessageText)
  5629.           set STF_MB_TYPE    = 3
  5630.           set STF_MB_ICON    = 4
  5631.           ui start "InstallNetWareIP"
  5632.  
  5633.           Ifstr(i) $(DLGEVENT) == "YES"
  5634.               set !InstallNetWareIP = "YES"
  5635.           else
  5636.               set !InstallNetWareIP = "NO"
  5637.           endif
  5638.       endif
  5639.  
  5640.       ifstr(i) $(!InstallNetWareIP) == "YES"
  5641.           Set OldInstallMode = $(!NTN_InstallMode)
  5642.           Set !NTN_InstallMode = install
  5643.           Shell "OEMNSVIP.INF" InstallOption $(!STF_LANGUAGE) "NetWareIP" "" NO NO NO
  5644.           Set !NTN_InstallMode = $(OldInstallMode)
  5645.           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  5646.             set CommonStatus = STATUS_FAILED
  5647.               goto terminate
  5648.           Endif
  5649.         set CommonStatus = $($R0)
  5650.         Ifstr(i) $(CommonStatus) != STATUS_SUCCESSFUL
  5651.             Debug-Output "OEMNPRNW.INF:  Install of NetWareIP returned "$(CommonStatus)
  5652.             goto terminate
  5653.         Endif
  5654.       endif
  5655.  
  5656. terminate = +
  5657.     Return $(CommonStatus)
  5658.  
  5659.  
  5660. ;*************************************************************************
  5661. ;
  5662. ;        SECTION:        InstallEx-AuthenticationPackage
  5663. ;
  5664. ;        PURPOSE:        Called at install time to install the
  5665. ;                        NetWare Authentication Package.
  5666. ;
  5667. ;        ARGUMENTS:    None
  5668. ;
  5669. ;        RETURNS:        None
  5670. ;
  5671. ;        REFERENCES:    None
  5672. ;
  5673. ;        MODIFIES:    None
  5674. ;
  5675. ;*************************************************************************
  5676. [InstallEx-AuthenticationPackage]
  5677.     Read-syms GeneralConstants
  5678.     Read-syms FileConstants
  5679.     Read-syms ExtendedConstants
  5680.     read-syms InitBaseVars
  5681.  
  5682.     Set ValueName = "Authentication Packages"
  5683.     set Status = STATUS_SUCCESSFUL
  5684.  
  5685.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\Lsa" $(MAXIMUM_ALLOWED) KeyLsa
  5686.                         
  5687.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5688.         Debug-Output "OEMNPRNW.INF:  Can't open LSA key for authentication package"
  5689.         Set Status = STATUS_FAILED
  5690.         Goto IEX_Auth_Return
  5691.     Endif
  5692.  
  5693.     GetRegValue $(KeyLsa) $(ValueName) AuthValueList
  5694.     Set AuthList = *($(AuthValueList),4)
  5695.  
  5696.     Set DoIt = 1
  5697.     ForListDo $(AuthList)
  5698.         Ifstr(i) $($) == $(PkgName)
  5699.             Set DoIt = 0
  5700.         Endif
  5701.     EndForListDo
  5702.  
  5703.     Ifint $(DoIt) == 1
  5704.         Set NewAuthList = >($(AuthList),$(PkgName))
  5705.         SetRegValue $(KeyLsa) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewAuthList)}
  5706.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5707.             Debug-Output "OEMNPRNW.INF:  Can't update LSA value for authentication package"
  5708.             CloseRegKey $(KeyLsa)
  5709.             Set Status = STATUS_FAILED
  5710.             Goto IEX_Auth_Return
  5711.         Endif
  5712.     Endif
  5713.  
  5714.     CloseRegKey $(KeyLsa)
  5715.  
  5716. IEX_Auth_Return = +
  5717.     Return $(Status)
  5718.  
  5719.  
  5720. ;*************************************************************************
  5721. ;
  5722. ;        SECTION:        InstallEx-NetworkProvider
  5723. ;
  5724. ;        PURPOSE:        Called at install time to install the
  5725. ;                        NetWare NetworkProvider.
  5726. ;
  5727. ;        ARGUMENTS:    None
  5728. ;
  5729. ;        RETURNS:        None
  5730. ;
  5731. ;        REFERENCES:    None
  5732. ;
  5733. ;        MODIFIES:    None
  5734. ;
  5735. ;*************************************************************************
  5736. [InstallEx-NetworkProvider]
  5737.     Read-syms GeneralConstants
  5738.     Read-syms FileConstants
  5739.     Read-syms ExtendedConstants
  5740.     read-syms InitBaseVars
  5741.     read-syms InstallOption$(!STF_LANGUAGE)
  5742.  
  5743.     Set ValueName = "ProviderOrder"
  5744.     Set Status = STATUS_SUCCESSFUL
  5745.  
  5746.     ;
  5747.     ; Set up the network provider order
  5748.     ;
  5749.  
  5750.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\NetworkProvider\order" $(MAXIMUM_ALLOWED) KeyPro
  5751.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  5752.         GetRegValue $(KeyPro) $(ValueName) ProValueList
  5753.         Set ProString = *($(ProValueList),4)
  5754.         ifstr(i) $(ProString) == ""
  5755.  
  5756.             ;
  5757.             ; We are the only one.  Just set the value with our name
  5758.             ;
  5759.  
  5760.             SetRegValue $(KeyPro) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),$(ProviderName)}
  5761.             Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5762.                 Debug-Output "OEMNPRNW.INF: Can't update ProviderOrder value"
  5763.                 CloseRegKey $(KeyPro)
  5764.                 Set Status = STATUS_FAILED
  5765.                 goto IEX_Prov_Return
  5766.             Endif
  5767.         else
  5768.  
  5769.             ;
  5770.             ; Other providers are installed.  Add us at the beginning.
  5771.             ;
  5772.  
  5773.             Split-string $(ProString) "," ProPieces
  5774.             Debug-Output "OEMNPRNW.INF:  Provider list string is: "$(ProPieces)
  5775.         
  5776.             Set DoIt = 1
  5777.             ForListDo $(ProPieces)
  5778.                 Ifstr(i) $($) != ","
  5779.                     Ifstr(i) $($) == $(ProviderName)
  5780.                         Set DoIt = 0
  5781.                         Debug-Output "OEMNPRNW.INF:  Provider already present"
  5782.                     Endif
  5783.                 Endif
  5784.             EndForListDo
  5785.         
  5786.             Ifint $(DoIt) == 1
  5787.                 Set NewPieces = ""
  5788.                 Set NewPieces = >($(NewPieces),$(ProviderName))
  5789.                 Set NewPieces = >($(NewPieces),",")
  5790.         
  5791.                 ForListDo $(ProPieces)
  5792.                     Set NewPieces = >($(NewPieces),$($))
  5793.                 EndForListDo
  5794.         
  5795.                 Set NewString = ""
  5796.                 ForListDo $(NewPieces)
  5797.                     Set NewString = $(NewString)$($)
  5798.                 EndForListDo
  5799.                 Debug-Output "OEMNPRNW.INF:  New provider string is: "$(NewString)
  5800.         
  5801.                 SetRegValue $(KeyPro) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),$(NewString)}
  5802.                 Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5803.                     Debug-Output "OEMNPRNW.INF: Can't update ProviderOrder value"
  5804.                     CloseRegKey $(KeyPro)
  5805.                     Set Status = STATUS_FAILED
  5806.                     goto IEX_Prov_Return
  5807.                 Endif
  5808.             Endif
  5809.         endif
  5810.     
  5811.         CloseRegKey $(KeyPro)
  5812.  
  5813.     else
  5814.         Debug-Output "OEMNPRNW.INF:  Can't open NetworkProvder\order key"
  5815.         Set Status = STATUS_FAILED
  5816.         Goto IEX_Prov_Return
  5817.     Endif
  5818.  
  5819.     ;
  5820.     ; Set up the values under NetWareWorkstation
  5821.     ;
  5822.  
  5823.     Set WorkStation = $(!NTN_ServiceBase)"\"$(ProductNWFSName)
  5824.     Debug-Output "OEMNPRNW.INF:  WorkStation is "$(WorkStation)
  5825.     OpenRegKey $(!REG_H_LOCAL) "" $(WorkStation) $(MAXIMUM_ALLOWED) WorkStationKey
  5826.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  5827.         CreateRegKey $(WorkStationKey) {"NetworkProvider", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" ProviderKey
  5828.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5829.             OpenRegKey $(WorkStationKey) "" "NetworkProvider" $(MAXIMUM_ALLOWED) ProviderKey
  5830.             Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5831.                 Debug-Output "OEMNPRNW.INF:  Can't create or open NetworkProvider"
  5832.                 CloseRegKey $(WorkstationKey)
  5833.                 Set Status = STATUS_FAILED
  5834.                 goto IEX_Prov_Return
  5835.             Endif
  5836.         Endif
  5837.         CloseRegKey $(WorkStationKey)
  5838.     else
  5839.         Debug-Output "OEMNPRNW.INF:  Can't open "$(ProductNWFSName)
  5840.         Set Status = STATUS_FAILED
  5841.         goto IEX_Prov_Return
  5842.     Endif
  5843.  
  5844.     SetRegValue $(ProviderKey) {"Class", $(NoTitle), $(!REG_VT_DWORD), "3"}
  5845.     SetRegValue $(ProviderKey) {"DeviceName", $(NoTitle), $(!REG_VT_SZ), "\Device\NetWareRedirector"}
  5846.     SetRegValue $(ProviderKey) {"Name", $(NoTitle), $(!REG_VT_SZ), "NetWare Services"}
  5847.  
  5848.     ;
  5849.     ; The following items depend on which shell is running for NT.
  5850.     ; Find out which shell it is before continuing.
  5851.     ;
  5852.  
  5853.     set Winlogon = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\Winlogon"
  5854.     OpenRegKey $(!REG_H_LOCAL) "" $(Winlogon) $(MAXIMUM_ALLOWED) WinlogonKey
  5855.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  5856.         GetRegValue $(WinlogonKey) "Shell" ShellDataList
  5857.         Debug-Output "OEMNPRNW.INF:  ShellDataList is "$(ShellDataList)
  5858.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  5859.             set ShellName = *($(ShellDataList), 4)
  5860.             Split-String $(ShellName) "." SplitList
  5861.             QueryListSize SplitListSize $(SplitList)
  5862.             Debug-Output "OEMNPRNW.INF:  SplitList is "$(SplitList)
  5863.             Debug-Output "OEMNPRNW.INF:  SplitList has "$(SplitListSize)" item(s)"
  5864.             set ShellName = *($(SplitList), 1)
  5865.             ifstr(i) $(ShellName) == "Explorer"
  5866.  
  5867.                 ;
  5868.                 ; Set up registry for new explorer.  This is done with a call
  5869.                 ; to the dll.  The provider for NT 3.51 will also need to call
  5870.                 ; this function if it detects an upgrade from NT 3.51 to 4.0
  5871.                 ; has occured.
  5872.                 ;
  5873.  
  5874.                 LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  5875.                 LibraryProcedure GUIResult $(NwLibHandle) NWSetup40Provider
  5876.                 FreeLibrary $(NwLibHandle)
  5877.  
  5878.             else
  5879.  
  5880.                 ;
  5881.                 ; Set provider path for old provider
  5882.                 ;
  5883.  
  5884.                 SetRegValue $(ProviderKey) {"ProviderPath", $(NoTitle), $(!REG_VT_EXPAND_SZ), $(System32Root)"\netware.dll"}
  5885.  
  5886.                 ;
  5887.                 ; Set the value for the file manager add-ons
  5888.                 ;
  5889.             
  5890.                 OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\File Manager\AddOns" $(MAXIMUM_ALLOWED) TempKey
  5891.                 Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  5892.                     SetRegValue $(TempKey) {"Novell NetWare Extension",$(NoTitle),$(!REG_VT_SZ),"nwfmext.dll"}
  5893.                     CloseRegKey $(TempKey)
  5894.                 else
  5895.                     Debug-Output "OEMNPRNW.INF:  Can't open File Manager\AddOns key"
  5896.                     Set Status = STATUS_FAILED
  5897.                     Goto IEX_Prov_Return
  5898.                 Endif
  5899.             endif
  5900.         endif
  5901.     endif
  5902.  
  5903.     CloseRegKey $(ProviderKey)
  5904.  
  5905. IEX_Prov_Return = +
  5906.     Return $(Status)
  5907.  
  5908.  
  5909. ;*************************************************************************
  5910. ;
  5911. ;        SECTION:        InstallEx-NetWarePrintServices
  5912. ;
  5913. ;        PURPOSE:        Called at install time to install the
  5914. ;                        NetWare Print Services.
  5915. ;
  5916. ;        ARGUMENTS:    None
  5917. ;
  5918. ;        RETURNS:        None
  5919. ;
  5920. ;        REFERENCES:    None
  5921. ;
  5922. ;        MODIFIES:    None
  5923. ;
  5924. ;*************************************************************************
  5925. [InstallEx-NetWarePrintServices]
  5926.     Read-syms GeneralConstants
  5927.     Read-syms ExtendedConstants
  5928.     read-syms InitBaseVars
  5929.     Read-syms FileConstants
  5930.  
  5931.     Set ValueName = "Name"
  5932.     Set OrderName = "Order"
  5933.     Set Status = STATUS_SUCCESSFUL
  5934.  
  5935.     OpenRegKey $(!REG_H_LOCAL) "" $(PrintProvider) $(MAXIMUM_ALLOWED) KeyPrint
  5936.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5937.         Debug-Output "OEMNPRNW.INF:  Can't open "$(PrintProvider)" key"
  5938.         Set Status = STATUS_FAILED
  5939.         Goto IEX_Nps_Return
  5940.     Endif
  5941.  
  5942.     CreateRegKey $(KeyPrint) {$(NetWarePrintProviderName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyProvider
  5943.     Ifint $(RegLastError) != !(!REG_ERROR_SUCCESS)
  5944.         OpenRegKey $(KeyPrint) "" $(NetWarePrintProviderName) $(MAXIMUM_ALLOWED) KeyProvider
  5945.         Ifint $(RegLastError) != !(!REG_ERROR_SUCCESS)
  5946.             Debug-Output "OEMNPRNW.INF:  Can't open "$(NetWarePrintProviderName)" key"
  5947.             Set Status = STATUS_FAILED
  5948.             Goto IEX_Nps_Return
  5949.         endif
  5950.     Endif
  5951.  
  5952.     SetRegValue $(KeyProvider) {$(ValueName), $(NoTitle), $(!REG_VT_SZ), "nwspool.dll"}
  5953.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5954.         Debug-Output "OEMNPRNW.INF: Can't update NetWare Print Services value"
  5955.         Set Status = STATUS_FAILED
  5956.         Goto IEX_Nps_Return
  5957.     Endif
  5958.  
  5959.     GetRegValue $(KeyPrint) $(OrderName) PrintProviderOrder
  5960.     Set ProviderOrderList = *($(PrintProviderOrder), 4)
  5961.  
  5962.     Set DoIt = 1
  5963.  
  5964.     ForListDo $(ProviderOrderList)
  5965.         Set Item = $($)
  5966.         Ifstr(i) $(Item) == $(NetWarePrintProviderName)
  5967.  
  5968.             ;
  5969.             ; We're already in the list
  5970.             ;
  5971.  
  5972.             Set DoIt = 0
  5973.         Endif
  5974.     EndForListDo
  5975.  
  5976.  
  5977.     Ifint $(DoIt) == 1
  5978.         Set NewList = {}
  5979.         Set NewList = >($(NewList), $(NetWarePrintProviderName))
  5980.  
  5981.         ForListDo $(ProviderOrderList)
  5982.             Set NewList = >($(NewList), $($))
  5983.         EndForListDo
  5984.  
  5985.         SetRegValue $(KeyPrint) {$(OrderName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
  5986.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  5987.             Debug-Output "OEMNPRNW.INF: Cant update Print Providers Order value"
  5988.             Set Status = STATUS_FAILED
  5989.             Goto IEX_Nps_Return
  5990.         Endif
  5991.     Endif
  5992.  
  5993.     CloseRegKey $(KeyProvider)
  5994.     CloseRegKey $(KeyPrint)
  5995.  
  5996. IEX_Nps_Return = +
  5997.     Return $(Status)
  5998.  
  5999.  
  6000. ;*************************************************************************
  6001. ;
  6002. ;        SECTION:        Install-NWLINK
  6003. ;
  6004. ;        PURPOSE:        Called at install time and update time to install the
  6005. ;                        NWLINKIPX compatible transport.
  6006. ;
  6007. ;        ARGUMENTS:    None
  6008. ;
  6009. ;        RETURNS:        None
  6010. ;
  6011. ;        REFERENCES:    None
  6012. ;
  6013. ;        MODIFIES:    None
  6014. ;
  6015. ;*************************************************************************
  6016. [Install-NWLINK]
  6017.     read-syms GeneralConstants
  6018.     read-syms FileConstants
  6019.     read-syms InstallOption$(!STF_LANGUAGE)
  6020.  
  6021.     ;
  6022.     ; Assume all is well until we find out otherwise
  6023.     ;
  6024.  
  6025.     set CommonStatus = STATUS_SUCCESSFUL
  6026.  
  6027.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NwLnkIpx" $(MAXIMUM_ALLOWED) KeyNWLINK
  6028.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6029.         Debug-Output "OEMNPRNW.INF:  Installing NWLINK"
  6030.  
  6031.         ;
  6032.         ; Ask the user if they want to install NWLINK
  6033.         ;
  6034.  
  6035.         set DlgType            = "MessageBox"
  6036.         set STF_MB_TITLE    = $(InstallNWLinkMessageTitle)
  6037.         set STF_MB_TEXT    = $(InstallNWLinkMessageText)
  6038.         set STF_MB_TYPE    = 3
  6039.         set STF_MB_ICON    = 4
  6040.         set STF_MB_DEF        = 1
  6041.         ui start "InstallNWLINK"
  6042.  
  6043.         Ifstr(i) $(DLGEVENT) == "NO"
  6044.             Debug-Output "OEMNPRNW.INF:  Don't install NWLINK"
  6045.             set CommonStatus = STATUS_USERCANCEL
  6046.             goto terminate
  6047.         Endif
  6048.  
  6049.         Set OldInstallMode = $(!NTN_InstallMode)
  6050.         Set !NTN_InstallMode = install
  6051.         Set OldSTF_SRCDIR_OVERRIDE = $(!STF_SRCDIR_OVERRIDE)
  6052.         set !STF_SRCDIR_OVERRIDE = ""
  6053.  
  6054.         Shell "oemnxpip.inf" InstallOption $(!STF_LANGUAGE) "NWLNKIPX" "" YES YES YES
  6055.         Set !STF_SRCDIR_OVERRIDE = $(OldSTF_SRCDIR_OVERRIDE)
  6056.         Set !NTN_InstallMode = $(OldInstallMode)
  6057.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  6058.             set CommonStatus = STATUS_FAILED
  6059.             goto terminate
  6060.         Endif
  6061.         set CommonStatus = $($R0)
  6062.         Ifstr(i) $(CommonStatus) != STATUS_SUCCESSFUL
  6063.             Debug-Output "OEMNPRNW.INF: Install of NWLINK returned "$(CommonStatus)
  6064.             goto terminate
  6065.         Endif
  6066.     Else
  6067.         CloseRegKey $(KeyNWLINK)
  6068.     Endif
  6069.  
  6070. terminate = +
  6071.     Return $(CommonStatus)
  6072.  
  6073.  
  6074.  
  6075. ;*************************************************************************
  6076. ;
  6077. ;        SECTION:        Install-Gina
  6078. ;
  6079. ;        PURPOSE:        Called at install or update to install the
  6080. ;                        NetWare GINA dll.
  6081. ;
  6082. ;        ARGUMENTS:    None
  6083. ;
  6084. ;        RETURNS:        None
  6085. ;
  6086. ;        REFERENCES:    None
  6087. ;
  6088. ;        MODIFIES:    None
  6089. ;
  6090. ;*************************************************************************
  6091. [Install-Gina]
  6092.     read-syms GeneralConstants
  6093.     read-syms FileConstants
  6094.     read-syms InstallOption$(!STF_LANGUAGE)
  6095.  
  6096.     ;
  6097.     ; Assume all is well until we find out otherwise
  6098.     ;
  6099.  
  6100.     set CommonStatus = STATUS_SUCCESSFUL
  6101.  
  6102.     ;
  6103.     ; Find out if this is a CITRIX machine.  We cannot replace the GINA
  6104.     ; if it is.  Must special case for them.
  6105.     ;
  6106.  
  6107.     set TempKeyName = "SYSTEM\CurrentControlSet\Control\Citrix"
  6108.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  6109.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6110.  
  6111.         ;
  6112.         ; This section will add the NWGINA.DLL for graphical authentication
  6113.         ; at install time and at update time if the default MSGINA.DLL
  6114.         ; is being used.
  6115.         ;
  6116.     
  6117.         set WinLogon = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\Winlogon"
  6118.         OpenRegKey $(!REG_H_LOCAL) "" $(WinLogon) $(MAXIMUM_ALLOWED) WinLogonKey
  6119.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6120.             set InstallNWGina = "FALSE"
  6121.             GetRegValue $(WinLogonKey) "GinaDLL" GinaDLLList
  6122.             ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6123.                 set GinaDLLListData = *($(GinaDLLList), 4)
  6124.     
  6125.                 ;
  6126.                 ; GinaDLL value exists, only change it if it contains
  6127.                 ; the MSGINA.DLL string.
  6128.                 ;
  6129.     
  6130.                 ifstr(i) $(GinaDLLListData) == "MSGINA.DLL"
  6131.                     set InstallNWGina = "TRUE"
  6132.                 else-ifstr(i) $(GinaDLLListData) == "MSGINA"
  6133.                     set InstallNWGina = "TRUE"
  6134.                 else-ifstr(i) $(GinaDLLListData) == "NWGINA.DLL"
  6135.                     set InstallNWGina = "TRUE"
  6136.                 else
  6137.     
  6138. ; Error checking data in the Variables
  6139.                     ifstr(i) $(!UseNetWareGINA) != ""
  6140.                         ifstr(i) $(!UseNetWareGINA) == "yes"
  6141.                             goto UseNetWareGINAValid
  6142.                         else-ifstr(i) $(!UseNetWareGINA) == "no"
  6143.                             goto UseNetWareGINAValid
  6144.                         else
  6145.                             ; Error case the Variable UseNetWareGINA does not contains valid YES or NO but does contain something.
  6146.                             set DlgType            = "MessageBox"
  6147.                             set STF_MB_TITLE    = $(FunctionTitle)
  6148.                             set STF_MB_TEXT    = "UseNetWareGINA"$(ClientParamError)
  6149.                             set STF_MB_TYPE    = 3
  6150.                             set STF_MB_ICON    = 4
  6151.                             set STF_MB_DEF        = 1
  6152.                             ui start "NoAdapter"
  6153.             
  6154.                             Ifstr(i) $(DLGEVENT) == "NO"
  6155.                                 set CommonStatus = STATUS_USERCANCEL
  6156.                                 goto terminate
  6157.                             else
  6158.                             ; set variable to blank
  6159.                                 set !UseNetWareGINA = ""
  6160.                             endif
  6161.                         endif
  6162. UseNetWareGINAValid = +
  6163.                     endif
  6164.     
  6165.                     ifstr(i) $(!UseNetWareGINA) != "yes"
  6166.     
  6167.                         ;
  6168.                         ; Ask the user if they want to replace the
  6169.                         ; installed GINA with our NWGINA
  6170.                         ;
  6171.     
  6172.                         set DlgType            = "MessageBox"
  6173.                         set STF_MB_TITLE    = $(ReplaceGINAMessageTitle)
  6174.                         set STF_MB_TEXT    = $(ReplaceGINAMessageText)
  6175.                         set STF_MB_TYPE    = 3
  6176.                         set STF_MB_ICON    = 2
  6177.                         set STF_MB_DEF        = 1
  6178.                         ui start "ReplaceGINA"
  6179.     
  6180.                         Ifstr(i) $(DLGEVENT) == "NO"
  6181.                             set InstallNWGina = "FALSE"
  6182.                         else
  6183.                             set InstallNWGina = "TRUE"
  6184.                         endif
  6185.                     else
  6186.                         set InstallNWGina = "TRUE"
  6187.                     endif
  6188.                 endif
  6189.             else
  6190.     
  6191.                 ;
  6192.                 ; GinaDLL value did not exist.  Use our GINA
  6193.                 ;
  6194.     
  6195.                 set InstallNWGina = "TRUE"
  6196.             endif
  6197.     
  6198.             ifstr(i) $(InstallNWGina) == "TRUE"
  6199.                 Debug-OutPut "OEMNPRNW.INF:  Setting up to use our NWGINA.DLL"
  6200.     
  6201.                 ;
  6202.                 ; Set the GinaDLL value and other values in the winlogin area
  6203.                 ;
  6204.     
  6205.                 SetRegValue $(WinLogonKey) {"GinaDLL", $(NoTitle), $(!REG_VT_SZ), "NWGINA.DLL"}
  6206.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6207.                     Debug-Output "OEMNPRNW.INF: Failed to add NWGINA.DLL to GinaDLL value in "$(WinLogon)
  6208.                 endif
  6209.     
  6210.                 ;
  6211.                 ; Create software\novell\nwgina to set other values
  6212.                 ;
  6213.     
  6214.                 Set GinaKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA"
  6215.                 CreateRegKey $(!REG_H_LOCAL) {$(GinaKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" GinaKey
  6216.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6217.                     OpenRegKey $(!REG_H_LOCAL) "" $(GinaKeyName) $(MAXIMUM_ALLOWED) GinaKey
  6218.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6219.                         Debug-Output "OEMNPRNW.INF:  Failed to create or open "$(GinaKeyName)
  6220.                     endif
  6221.                 endif
  6222.     
  6223.                 ;
  6224.                 ; Create Policy Support key if NT version 4.00 or greater
  6225.                 ;
  6226.     
  6227.                 ifint $(NTMajorVersion) > "3"
  6228.                     Set PolicyKeyName = "Policy Support"
  6229.                     CreateRegKey $(GinaKey) {$(PolicyKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" PolicyKey
  6230.                     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6231.                         SetRegValue $(PolicyKey) {"Policy Path", $(NoTitle), $(!REG_VT_SZ), ""}
  6232.                         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6233.                             Debug-Output "OEMNPRNW.INF:  Failed to set the Policy Path for NWGINA.DLL"
  6234.                         endif
  6235.     
  6236.                         CloseRegKey $(PolicyKey)
  6237.                     else
  6238.                         Debug-Output "OEMNPRNW.INF:  Failed to create "$(PolicyKeyName)
  6239.                     endif
  6240.                 endif
  6241.     
  6242.                 ;
  6243.                 ; Create Roaming Profiles key
  6244.                 ;
  6245.     
  6246.                 Set ProfileKeyName = "Roaming Profiles"
  6247.                 CreateRegKey $(GinaKey) {$(ProfileKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" ProfileKey
  6248.                 ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6249.                     SetRegValue $(ProfileKey) {"Storage Type", $(NoTitle), $(!REG_VT_SZ), "Home Directory"}
  6250.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6251.                         Debug-Output "OEMNPRNW.INF:  Failed to set the Storage Type for NWGINA.DLL"
  6252.                     endif
  6253.     
  6254.                     SetRegValue $(ProfileKey) {"NetWare Storage", $(NoTitle), $(!REG_VT_DWORD), 0}
  6255.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6256.                         Debug-Output "OEMNPRNW.INF:  Failed to set the NetWare Storage for NWGINA.DLL"
  6257.                     endif
  6258.     
  6259.                     CloseRegKey $(ProfileKey)
  6260.                 else
  6261.     
  6262.                     ;
  6263.                     ; This section will run at update time since the key already
  6264.                     ; existed.  Some things changed so update them now.
  6265.                     ;
  6266.     
  6267.                     Debug-Output "OEMNPRNW.INF:  Failed to create "$(ProfileKeyName)
  6268.                     OpenRegKey $(GinaKey) "" $(ProfileKeyName) $(MAXIMUM_ALLOWED) ProfileKey
  6269.                     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6270.     
  6271.                         ;
  6272.                         ; There is no access rights of any kind any more.  Delete all
  6273.                         ; old values we may have used.
  6274.                         ;
  6275.     
  6276.                         DeleteRegValue $(ProfileKey) "Access Rights"
  6277.                         DeleteRegValue $(ProfileKey) "Container Access"
  6278.                         DeleteRegValue $(ProfileKey) "Container Access Rights"
  6279.     
  6280.                         ;
  6281.                         ; Value "NDS Storage Type" changed to "Storage Type".  Also
  6282.                         ; the value data of "User Home Directory" changed to "Home Directory".
  6283.                         ; Read value data and save under new value name
  6284.                         ;
  6285.     
  6286.                         GetRegValue $(ProfileKey) "NDS Storage Type" StorageList
  6287.                         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6288.                             set StorageListData = *($(StorageList), 4)
  6289.                             ifstr(i) $(StorageListData) == "User Home Directory"
  6290.                                 SetRegValue $(ProfileKey) {"Storage Type", $(NoTitle), $(!REG_VT_SZ), "Home Directory"}
  6291.                                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6292.                                     Debug-Output "OEMNPRNW.INF:  Failed to set the Storage Type for NWGINA.DLL"
  6293.                                 endif
  6294.                             else
  6295.                                 SetRegValue $(ProfileKey) {"Storage Type", $(NoTitle), $(!REG_VT_SZ), $(StorageListData)}
  6296.                                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6297.                                     Debug-Output "OEMNPRNW.INF:  Failed to set the Storage Type for NWGINA.DLL"
  6298.                                 endif
  6299.                             endif
  6300.                             DeleteRegValue $(ProfileKey) "NDS Storage Type"
  6301.                             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6302.                                 Debug-Output "OEMNPRNW.INF:  Failed to delete the NDS Storage Type for NWGINA.DLL"
  6303.                             endif
  6304.                         endif
  6305.     
  6306.                         CloseRegKey $(ProfileKey)
  6307.                     else
  6308.                         Debug-Output "OEMNPRNW.INF:  Failed to open "$(ProfileKeyName)
  6309.                     endif
  6310.                 endif
  6311.     
  6312.                 ;
  6313.                 ; Create Welcome Screen key
  6314.                 ;
  6315.     
  6316.                 Set WelcomeKeyName = "Welcome Screen"
  6317.                 CreateRegKey $(GinaKey) {$(WelcomeKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" WelcomeKey
  6318.                 ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6319.                     SetRegValue $(WelcomeKey) {"Bitmap", $(NoTitle), $(!REG_VT_SZ), "NWELCOME.BMP"}
  6320.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6321.                         Debug-Output "OEMNPRNW.INF:  Failed to set the Bitmap for NWGINA.DLL"
  6322.                     endif
  6323.     
  6324.                     SetRegValue $(WelcomeKey) {"Header Message", $(NoTitle), $(!REG_VT_SZ), $(DefaultLoginCaption)}
  6325.                     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6326.                         Debug-Output "OEMNPRNW.INF:  Failed to set the Header Message for NWGINA.DLL"
  6327.                     endif
  6328.     
  6329.                     CloseRegKey $(WelcomeKey)
  6330.                 else
  6331.                     Debug-Output "OEMNPRNW.INF:  Failed to create "$(WelcomeKeyName)
  6332.                     ifstr(i) $(!P:OldNLSDirName) != $(!P:NLSDirName)
  6333.                         Debug-Output "OEMNPRNW.INF:  Language changed it was - "$(!P:OldNLSDirName)" it is now - "$(!P:NLSDirName)
  6334.  
  6335.                         Set GinaWelcome = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\"$(WelcomeKeyName)
  6336.                         OpenRegKey $(!REG_H_LOCAL) "" $(GinaWelcome) $(MAXIMUM_ALLOWED) WelcomeKey
  6337.                         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6338.                             SetRegValue $(WelcomeKey) {"Header Message", $(NoTitle), $(!REG_VT_SZ), $(DefaultLoginCaption)}
  6339.                             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6340.                                 Debug-Output "OEMNPRNW.INF:  Failed to set the Header Message for NWGINA.DLL"
  6341.                             else
  6342.                                 Debug-Output "OEMNPRNW.INF:  Reset the Header Message for NWGINA.DLL"
  6343.                             endif
  6344.     
  6345.                             CloseRegKey $(WelcomeKey)
  6346.                         endif
  6347.                     endif
  6348.                 endif
  6349.     
  6350.                 CloseRegKey $(GinaKey)
  6351.     
  6352.                 ;
  6353.                 ; Now that the NWGINA key has been created or updated,
  6354.                 ; set the ACL for it.
  6355.                 ;
  6356.     
  6357.                 LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  6358.                 LibraryProcedure GUIResult $(NwLibHandle) NWSetKeySecurity "Software\Novell\NWGina" "ON"
  6359.                 FreeLibrary $(NwLibHandle)
  6360.     
  6361.             else
  6362.                 Debug-Output "OEMNPRNW.INF:  GINA will not be installed"
  6363.             endif
  6364.     
  6365.             CloseRegKey $(WinLogonKey)
  6366.         else
  6367.             Debug-Output "OEMNPRNW.INF:  Error opening "$(WinLogon)
  6368.         endif
  6369.     else
  6370.         CloseRegKey $(TempKey)
  6371.         Debug-Output "OEMNPRNW.INF:  This is a CITRIX Server machine"
  6372.         Debug-Output "OEMNPRNW.INF:  We are NOT replacing MSGINA"
  6373.  
  6374.         ;
  6375.         ; Check to see if our NWGINA needs to be removed because this is a CITRIX
  6376.         ; machine and an old client that did not check for it was installed.
  6377.         ;
  6378.         
  6379.         set WinLogon = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\Winlogon"
  6380.         OpenRegKey $(!REG_H_LOCAL) "" $(WinLogon) $(MAXIMUM_ALLOWED) WinLogonKey
  6381.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6382.             set RemoveNWGina = "FALSE"
  6383.             GetRegValue $(WinLogonKey) "GinaDLL" GinaDLLList
  6384.             ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6385.                 set GinaDLLListData = *($(GinaDLLList), 4)
  6386.     
  6387.                 ;
  6388.                 ; GinaDLL value exists, only remove our NWGINA.
  6389.                 ;
  6390.     
  6391.                 ifstr(i) $(GinaDLLListData) == "NWGINA.DLL"
  6392.                     set RemoveNWGina = "TRUE"
  6393.                 else-ifstr(i) $(GinaDLLListData) == "NWGINA"
  6394.                     set RemoveNWGina = "TRUE"
  6395.                 endif
  6396.             endif
  6397.     
  6398.             ifstr(i) $(RemoveNWGina) == "TRUE"
  6399.                 Debug-OutPut "OEMNPRNW.INF:  Removing our NWGINA.DLL"
  6400.     
  6401.                 ;
  6402.                 ; Remove our GINA
  6403.                 ;
  6404.     
  6405.                 DeleteRegValue $(WinLogonKey) "GinaDLL"
  6406.                 ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6407.                     Debug-Output "OEMNPRNW.INF: Failed to delete GinaDLL value in "$(WinLogon)
  6408.                 endif
  6409.             else
  6410.                 Debug-Output "OEMNPRNW.INF:  GinaDLL value will not be removed"
  6411.             endif
  6412.     
  6413.             CloseRegKey $(WinLogonKey)
  6414.         else
  6415.             Debug-Output "OEMNPRNW.INF:  Error opening "$(WinLogon)
  6416.         endif
  6417.     endif    
  6418.         
  6419.  
  6420. terminate = +
  6421.     Return $(CommonStatus)
  6422.  
  6423. ;*************************************************************************
  6424. ;
  6425. ;        SECTION:        AddServiceDependency
  6426. ;
  6427. ;        PURPOSE:        Adds a dependency on a service to another service
  6428. ;
  6429. ;        ARGUMENTS:        0 - Service to add the dependency on
  6430. ;                    1 - Service that it depends on
  6431. ;
  6432. ;        RETURNS:        None
  6433. ;
  6434. ;        REFERENCES:    None
  6435. ;
  6436. ;        MODIFIES:    None
  6437. ;
  6438. ;*************************************************************************
  6439. [AddServiceDependency]
  6440.     Debug-Output "AddServiceDependency: entry"
  6441.     set MAXIMUM_ALLOWED = 33554432
  6442.     set SERVICE_NO_CHANGE = 4294967295
  6443.     set Status   = STATUS_FAILED
  6444.     Set KeyNull  = ""
  6445.     set DependentService = $(!NTN_ServiceBase)\$($0)
  6446.     set DependentName = $($0)
  6447.     set DependOn = $($1)
  6448.     set ServiceKey = $(KeyNull)
  6449.     OpenRegKey $(!REG_H_LOCAL) "" $(DependentService)"\Linkage" $(MAXIMUM_ALLOWED) ServiceKey
  6450.     ifstr(i) $(ServiceKey) != $(KeyNull)
  6451.         GetRegValue $(ServiceKey) "OtherDependencies" ServicesList
  6452.         ifint $(RegLastError) != 0
  6453.            set ServiceValues = {}
  6454.         else
  6455.            set ServiceValues = *($(ServicesList),4)
  6456.         endif
  6457.         debug-output "AddServiceDependency: Old OtherDependencies: "$(ServiceValues)
  6458.         ifstr(i) $(ServiceValues) == {}
  6459.             Set ServiceValues = {$(DependOn)}
  6460.         else-ifstr(i) $(ServiceValues) == ""
  6461.             Set ServiceValues = {$(DependOn)}
  6462.         else-ifcontains(i) $(DependOn) in $(ServiceValues)
  6463.             return STATUS_SUCCESSFUL
  6464.         else
  6465.             Set ServiceValues = >($(ServiceValues), $(DependOn))
  6466.         endif
  6467.         debug-output "AddServiceDependency: New OtherDependencies: "$(ServiceValues)
  6468.         SetRegValue $(ServiceKey) {OtherDependencies, 0,+
  6469.                                    $(!REG_VT_MULTI_SZ), $(ServiceValues)}
  6470.         CloseRegKey $(ServiceKey)
  6471.         set Status = STATUS_SUCCESSFUL
  6472.     else
  6473.         Debug-Output "AddServiceDependency: error opening service "$(DependentService)"\Linkage"
  6474.         Debug-Output "AddServiceDependency: error was: "$(RegLastError)
  6475.     endif
  6476.     set KeyService = $(KeyNull)
  6477.     OpenRegKey $(!REG_H_LOCAL) "" $(DependentService) $(MAXIMUM_ALLOWED) KeyService
  6478.     ifstr $(KeyService) != $(KeyNull)
  6479.         set newDependList = {$(DependOn)}
  6480.         GetRegValue    $(KeyService) "DependOnService" ServiceList
  6481.         ifint $(RegLastError) == 0
  6482.             Debug-Output "AddServiceDependency: old DependOnService List "*($(ServiceList), 4)
  6483.             ForListDo *($(ServiceList),4)
  6484.                 ifstr(i) $($) != $(DependOn)
  6485.                    set newDependList = >($(newDependList), $($))
  6486.                 endif
  6487.             EndForListDo
  6488.         endif
  6489.         GetRegValue    $(KeyService) "DependOnGroup" GrpList
  6490.         ifint $(RegLastError) == 0
  6491.             Debug-Output "AddServiceDependency: old DependOnGroup List "*($(GrpList), 4)
  6492.             ForListDo *($(GrpList),4)
  6493.                set grp = "+"$($)
  6494.                set newDependList = >($(newDependList), $(grp))
  6495.             EndForListDo
  6496.         endif
  6497.         Debug-Output "OEMNSVRA.INF: AddServiceDependency: new Dependency List "$(newDependList)
  6498.         LibraryProcedure Result, $(!LIBHANDLE), SetupChangeServiceConfig, $(DependentName) $(SERVICE_NO_CHANGE), $(SERVICE_NO_CHANGE), $(SERVICE_NO_CHANGE), "", "", $(newDependList), "", "", ""
  6499.         CloseRegKey $(KeyService)
  6500.     else
  6501.         Debug-Output "AddServiceDependency: failed to open service linkage key"$(DependentService)
  6502.         Debug-Output "AddServiceDependency: error was: "$(RegLastError)
  6503.     endif
  6504.     Debug-Output "AddServiceDependency: exit"
  6505.     return $(Status)
  6506.  
  6507. ;*************************************************************************
  6508. ;
  6509. ;        SECTION:        RemoveServiceDependency
  6510. ;
  6511. ;        PURPOSE:        Removes a dependency on a service from another service
  6512. ;
  6513. ;        ARGUMENTS:        0 - Service to remove the dependency from
  6514. ;                    1 - Service to remove
  6515. ;
  6516. ;        RETURNS:        None
  6517. ;
  6518. ;        REFERENCES:    None
  6519. ;
  6520. ;        MODIFIES:    None
  6521. ;
  6522. ;*************************************************************************
  6523. [RemoveServiceDependency]
  6524.     Debug-Output "RemoveServiceDependency: entry"
  6525.     set MAXIMUM_ALLOWED = 33554432
  6526.     set SERVICE_NO_CHANGE = 4294967295
  6527.     set Status   = STATUS_FAILED
  6528.     Set KeyNull  = ""
  6529.     set DependentService = $(!NTN_ServiceBase)\$($0)
  6530.     set DependentName = $($0)
  6531.     set DependOn = $($1)
  6532.     OpenRegKey $(!REG_H_LOCAL) "" $(DependentService)"\Linkage" $(MAXIMUM_ALLOWED) ServiceKey
  6533.     ifstr(i) $(ServiceKey) != $(KeyNull)
  6534.         GetRegValue $(ServiceKey) "OtherDependencies" ServicesList
  6535.         ifint $(RegLastError) != 0
  6536.            set ServiceValues = {}
  6537.         else
  6538.            set ServiceValues = *($(ServicesList),4)
  6539.         endif
  6540.         debug-output "RemoveServiceDependency: old OtherDependencies list:"$(ServicesList)
  6541.         set ServiceValues = *($(ServicesList),4)
  6542.         debug-output "ServiceValues: "$(ServiceValues)
  6543.         ifcontains(i) $(DependOn) in $(ServiceValues)
  6544.             set NewServiceValues = {}
  6545.             ForListDo $(ServiceValues)
  6546.                 ifstr(i) $($) != $(DependOn)
  6547.                     set NewServiceValues = >($(NewServiceValues), $($))
  6548.                 endif
  6549.             EndForListDo
  6550.             debug-output "RemoveServiceDependency: new OtherDependencies list: "$(NewServiceValues)
  6551.             SetRegValue $(ServiceKey) {OtherDependencies, 0,+
  6552.                              $(!REG_VT_MULTI_SZ), $(NewServiceValues)}
  6553.         else
  6554.         endif
  6555.         CloseRegKey $(ServiceKey)
  6556.         set Status = STATUS_SUCCESSFUL
  6557.     else
  6558.         Debug-Output "RemoveServiceDependency: error opening service "$(DependentService)"\Linkage"
  6559.     endif
  6560.     set KeyService = $(KeyNull)
  6561.     OpenRegKey $(!REG_H_LOCAL) "" $(DependentService) $(MAXIMUM_ALLOWED) KeyService
  6562.     ifstr $(KeyService) != $(KeyNull)
  6563.         set newDependList = {}
  6564.         GetRegValue    $(KeyService) "DeleteFlag" DeleteFlagValue
  6565.         ifint $(RegLastError) != 0
  6566.             GetRegValue    $(KeyService) "DependOnService" ServiceList
  6567.             ifint $(RegLastError) == 0
  6568.                 Debug-Output "RemoveServiceDependency: old DependOnService List "*($(ServiceList), 4)
  6569.                 ifcontains(i) $(DependOn) in *($(ServiceList),4)
  6570.                     ForListDo *($(ServiceList),4)
  6571.                         ifstr(i) $($) != $(DependOn)
  6572.                            set newDependList = >($(newDependList), $($))
  6573.                         endif
  6574.                     EndForListDo
  6575.                     GetRegValue $(KeyService) "DependOnGroup" GrpList
  6576.                     ifint $(RegLastError) == 0
  6577.                         ForListDo *($(GrpList),4)
  6578.                            set grp = "+"$($)
  6579.                            set newDependList = >($(newDependList), $(grp))
  6580.                         EndForListDo
  6581.                     endif
  6582.                     Debug-Output "OEMNSVRA.INF:RemoveServiceDependency: new DependOnService List "$(newDependList)
  6583.                     LibraryProcedure Result, $(!LIBHANDLE), +
  6584.                        SetupChangeServiceConfig, $(DependentName)  +
  6585.                        $(SERVICE_NO_CHANGE), $(SERVICE_NO_CHANGE), +
  6586.                        $(SERVICE_NO_CHANGE), "", "",  +
  6587.                        $(newDependList), "", "", ""
  6588.                 endif
  6589.             endif
  6590.         endif
  6591.         CloseRegKey $(KeyService)
  6592.     else
  6593.         Debug-Output "RemoveServiceDependency: failed to open service linkage key"$(DependentService)
  6594.     endif
  6595.     Debug-Output "RemoveServiceDependency: exit"
  6596.     return $(Status)
  6597.  
  6598. ;***************************************************************
  6599. ;  INSTALL SECTIONS
  6600. ;***************************************************************
  6601. ;*************************************************************************
  6602. ;
  6603. ;        SECTION:        Install-Parameters
  6604. ;
  6605. ;        PURPOSE:        Called at install or update to add
  6606. ;                        software\novell\parameters and a few values
  6607. ;                        to HKEY_LOCAL_MACHINE
  6608. ;
  6609. ;        ARGUMENTS:    None
  6610. ;
  6611. ;        RETURNS:        None
  6612. ;
  6613. ;        REFERENCES:    None
  6614. ;
  6615. ;        MODIFIES:    None
  6616. ;
  6617. ;*************************************************************************
  6618. [Install-Parameters]
  6619.  
  6620.     ;
  6621.     ; Add the NwcsInstalled value
  6622.     ;
  6623.  
  6624.     OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\NWCS" $(MAXIMUM_ALLOWED) KeyProduct
  6625.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6626.         OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion" $(MAXIMUM_ALLOWED) CurrentVersion
  6627.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6628.             CreateRegKey $(CurrentVersion) {"NWCS", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyProduct
  6629.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6630.                 Debug-Output "FATAL Registry Error:  Error Creating Key 'NWCS'"
  6631.             Endif
  6632.             CloseRegKey $(CurrentVersion)
  6633.         else
  6634.             Debug-Output "OEMNPRNW.INF:  Can't open Software\Microsoft\Windows NT\CurrentVersion"
  6635.         Endif
  6636.     Endif
  6637.  
  6638.     SetRegValue $(KeyProduct) {"NwcsInstalled", $(NoTitle), $(!REG_VT_SZ), "1"}
  6639.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6640.         Debug-Output "FATAL Registry Error:  Error Setting value 'NwcsInstalled'"
  6641.     endif
  6642.     CloseRegKey $(KeyProduct)
  6643.  
  6644.     ;
  6645.     ; Set Version number
  6646.     ;
  6647.  
  6648.     set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)
  6649.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  6650.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6651.         SetRegValue $(TempKey) {"CurrentVersion", $(NoTitle), $(!REG_VT_SZ), $(ProductVersion)}
  6652.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6653.             Debug-Output "OEMNPRNW.INF:  Unable to update CurrentVersion value in "$(TempKeyName)
  6654.         endif
  6655.     
  6656.         CloseRegKey $(TempKey)
  6657.     Endif
  6658.  
  6659.     ;
  6660.     ; HKEY_LOCAL_MACHINE\Software\Novell\Parameters
  6661.     ;
  6662.  
  6663.     set SoftwareNovell = $(!NTN_SoftwareBase)"\"$(Manufacturer)
  6664.     OpenRegKey $(!REG_H_LOCAL) "" $(SoftwareNovell) $(MAXIMUM_ALLOWED) KeySoftwareNovell
  6665.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6666.         Debug-Output "OEMNPRNW.INF: Error opening "$(SoftwareNovell)
  6667.     Else
  6668.         set NovellParameters = "Parameters"
  6669.         OpenRegKey $(KeySoftwareNovell) "" $(NovellParameters) $(MAXIMUM_ALLOWED) KeyNovellParameters
  6670.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6671.             CreateRegKey $(KeySoftwareNovell) {$(NovellParameters), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyNovellParameters
  6672.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6673.                 Debug-Output "OEMNPRNW.INF: Error creating Software\Novell\Parameters"
  6674.             Endif
  6675.         Endif
  6676.     Endif
  6677.  
  6678.     Ifstr(i) $(KeyNovellParameters) != ""
  6679.         GetRegValue $(KeyNovellParameters) "First Network Drive" DriveList
  6680.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6681.             SetRegValue $(KeyNovellParameters) {"First Network Drive", $(NoTitle), $(!REG_VT_DWORD), 6}
  6682.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6683.                 Debug-Output "OEMNPRNW.INF: Failed to add first network drive value to "$(SoftwareNovell)"\Parameters"
  6684.             endif
  6685.         endif
  6686.  
  6687.         SetRegValue $(KeyNovellParameters) {"NWLanguage", $(NoTitle), $(!REG_VT_SZ), $(NLSDirName)}
  6688.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6689.             Debug-Output "OEMNPRNW.INF: Failed to add NWLanguage value to "$(SoftwareNovell)"\Parameters"
  6690.         endif
  6691.  
  6692.         CloseRegKey $(KeyNovellParameters)
  6693.     Endif
  6694.  
  6695.     Ifstr(i) $(KeySoftwareNovell) != ""
  6696.         CloseRegKey $(KeySoftwareNovell)
  6697.     Endif
  6698.  
  6699.     ;
  6700.     ; Add netware.drv to the known dlls list here
  6701.     ;
  6702.  
  6703.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\WOW" $(MAXIMUM_ALLOWED) WowKey
  6704.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6705.        GetRegValue $(WowKey),"KnownDLLS", KnownDLLsInfo
  6706.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6707.             Split-String *($(KnownDLLsInfo),4), " ", KnownDLLsList
  6708.             Ifcontains(i) "netware.drv" not-in $(KnownDLLsList)
  6709.                 ifstr(i) *($(KnownDLLsInfo),4) == ""
  6710.                     set KnownDLLs = "netware.drv"
  6711.                 else
  6712.                     set KnownDLLs = *($(KnownDLLsInfo),4)" netware.drv"
  6713.                 endif
  6714.                 SetRegValue $(WowKey) {"KnownDLLS",$(NoTitle),$(!REG_VT_SZ),$(KnownDLLs)}
  6715.             endif
  6716.             CloseRegKey $(WowKey)
  6717.         endif
  6718.     endif
  6719.     
  6720.     ;
  6721.     ; Set the registry values to enable all tabs by default for both
  6722.     ; GINA and GUI LOGIN
  6723.     ;
  6724.     
  6725.     Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\Graphical Login"
  6726.       CreateRegKey $(!REG_H_LOCAL) {$(TempKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey
  6727.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6728.  
  6729.         Debug-Output "OEMNPRNW.INF:  Setting default tab settings"
  6730.         
  6731.         SetRegValue $(TempKey) {"Connection Tab", $(NoTitle), $(!REG_VT_DWORD), 1}
  6732.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6733.             Debug-Output "OEMNPRNW.INF:  Failed to set default Connection Tab value"
  6734.         endif
  6735.  
  6736.         SetRegValue $(TempKey) {"Dialup Networking Tab", $(NoTitle), $(!REG_VT_DWORD), 1}
  6737.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6738.             Debug-Output "OEMNPRNW.INF:  Failed to set default Dialup Networking Tab value"
  6739.         endif
  6740.  
  6741.         SetRegValue $(TempKey) {"Script Tab", $(NoTitle), $(!REG_VT_DWORD), 1}
  6742.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6743.             Debug-Output "OEMNPRNW.INF:  Failed to set default Script Tab value"
  6744.         endif
  6745.  
  6746.         SetRegValue $(TempKey) {"Script Variable Tab", $(NoTitle), $(!REG_VT_DWORD), 1}
  6747.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6748.             Debug-Output "OEMNPRNW.INF:  Failed to set default Script Variable Tab value"
  6749.         endif
  6750.  
  6751.         SetRegValue $(TempKey) {"Windows NT Tab", $(NoTitle), $(!REG_VT_DWORD), 1}
  6752.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6753.             Debug-Output "OEMNPRNW.INF:  Failed to set default Windows NT Tab value"
  6754.         endif
  6755.  
  6756.         ;
  6757.         ; Close the key
  6758.         ;
  6759.  
  6760.         CloseRegKey $(TempKey)
  6761.     else
  6762.         Debug-Output "OEMNPRNW.INF:  Failed to create key "$(TempKeyName)
  6763.     endif
  6764.     
  6765.     Exit
  6766.  
  6767.  
  6768. ;*************************************************************************
  6769. ;
  6770. ;        SECTION:        Install-Help
  6771. ;
  6772. ;        PURPOSE:        Called at install and update time to install the
  6773. ;                        NetWare Client help files in the NT help bar.
  6774. ;
  6775. ;        ARGUMENTS:    None
  6776. ;
  6777. ;        RETURNS:        None
  6778. ;
  6779. ;        REFERENCES:    None
  6780. ;
  6781. ;        MODIFIES:    None
  6782. ;
  6783. ;*************************************************************************
  6784. [Install-Help]
  6785.     LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  6786.  
  6787.     ;
  6788.     ; Delete any of the help files from the oem.cnt regardless of NT version
  6789.     ;
  6790.  
  6791.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index Novell Client=nt4using.hlp"
  6792.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index Novell Client=nt3using.hlp"
  6793.     ifstr(i) $(AdvancedServer) == "YES"
  6794.         ifstr(i) $(!InstallSAMRedir) == "YES"
  6795.             LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index NDS for NT=outline.hlp"
  6796.         endif
  6797.     endif
  6798.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt4using.cnt"
  6799.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt3using.cnt"
  6800.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt4setup.cnt"
  6801.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt3setup.cnt"
  6802.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include ntadmin.cnt"
  6803.     ifstr(i) $(AdvancedServer) == "YES"
  6804.         ifstr(i) $(!InstallSAMRedir) == "YES"
  6805.             LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include outline.cnt"
  6806.         endif
  6807.     endif
  6808.  
  6809.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4using.cnt"
  6810.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.cnt"
  6811.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3using.cnt"
  6812.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.cnt"
  6813.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\ntadmin.cnt"
  6814.     ifstr(i) $(AdvancedServer) == "YES"
  6815.         ifstr(i) $(!InstallSAMRedir) == "YES"
  6816.             LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\outline.cnt"
  6817.         endif
  6818.     endif
  6819.  
  6820.     ;
  6821.     ; Delete all gid, fts, ftg files in the language directory
  6822.     ;
  6823.  
  6824.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4using.gid"
  6825.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.gid"
  6826.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3using.gid"
  6827.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.gid"
  6828.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\ntadmin.gid"
  6829.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4using.fts"
  6830.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.fts"
  6831.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3using.fts"
  6832.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.fts"
  6833.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\ntadmin.fts"
  6834.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4using.ftg"
  6835.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.ftg"
  6836.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3using.ftg"
  6837.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.ftg"
  6838.     LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\ntadmin.ftg"
  6839.     ifstr(i) $(AdvancedServer) == "YES"
  6840.         ifstr(i) $(!InstallSAMRedir) == "YES"
  6841.             LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\outline.gid"
  6842.             LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\outline.fts"
  6843.             LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\outline.ftg"
  6844.         endif
  6845.     endif
  6846.  
  6847.     ;
  6848.     ; Add back the correct language of help files
  6849.     ;
  6850.  
  6851.     ifint $(NTMajorVersion) == "4"
  6852.         LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index Novell Client=nt4using.hlp"
  6853.         LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt4using.cnt"
  6854.         LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt4setup.cnt"
  6855.         LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\windows.gid"
  6856.         LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\windows.fts"
  6857.         LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\windows.ftg"
  6858.     else
  6859.         LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\winnt.cnt" ":include oem.cnt"
  6860.         LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index Novell Client=nt3using.hlp"
  6861.         LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt3using.cnt"
  6862.         LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt3setup.cnt"
  6863.         LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\winnt.gid"
  6864.         LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\winnt.fts"
  6865.         LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\winnt.ftg"
  6866.     endif
  6867.  
  6868.     LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include ntadmin.cnt"
  6869.  
  6870.     ifstr(i) $(AdvancedServer) == "YES"
  6871.         ifstr(i) $(!InstallSAMRedir) == "YES"
  6872.             LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index NDS for NT=outline.hlp"
  6873.             LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include outline.cnt"
  6874.         endif
  6875.     endif
  6876.  
  6877.     ;
  6878.     ; Fix the system path to include the NLS language directory
  6879.     ;
  6880.  
  6881.     LibraryProcedure GUIResult $(NwLibHandle) NWRemoveNLSDirFromSystemPath
  6882.     LibraryProcedure GUIResult $(NwLibHandle) NWAddNLSDirToSystemPath $(NLSDirName)
  6883.  
  6884.     FreeLibrary $(NwLibHandle)
  6885.     Exit
  6886.  
  6887.  
  6888.  
  6889. ;*************************************************************************
  6890. ;
  6891. ;        SECTION:        Install-PerformanceCounters
  6892. ;
  6893. ;        PURPOSE:        Called at install time to install the
  6894. ;                        NetWare PerformanceCounters.
  6895. ;
  6896. ;        ARGUMENTS:    None
  6897. ;
  6898. ;        RETURNS:        None
  6899. ;
  6900. ;        REFERENCES:    None
  6901. ;
  6902. ;        MODIFIES:    None
  6903. ;
  6904. ;*************************************************************************
  6905. [Install-PerformanceCounters]
  6906.  
  6907.     set ValueName1 = "Close"
  6908.     set ValueName2 = "Collect"
  6909.     set ValueName3 = "Open"
  6910.     set ValueName4 = "Library"
  6911.  
  6912.     set ValueData1 = "NwPfCloseRedirPerformanceData"
  6913.     set ValueData2 = "NwPfCollectRedirPerformanceData"
  6914.     set ValueData3 = "NwPfOpenRedirPerformanceData"
  6915.     set ValueData4 = "Nwpfctrs.dll"
  6916.  
  6917.     set NwGroup = "Performance"
  6918.  
  6919.     set NwProductBase1 = $(!NTN_ServiceBase)"\NetWareWorkstation"
  6920.     set NwProductBase2 = $(!NTN_ServiceBase)"\LSL"
  6921.     set NwProductBase3 = $(!NTN_ServiceBase)"\OdiLoad"
  6922.  
  6923.     set NwParameters1 = $(NwProductBase1)"\"$(NwGroup)
  6924.     set NwParameters2 = $(NwProductBase2)"\"$(NwGroup)
  6925.     set NwParameters3 = $(NwProductBase3)"\"$(NwGroup)
  6926.  
  6927.     ;
  6928.     ; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetWareWorkstation
  6929.     ;
  6930.  
  6931.     OpenRegKey $(!REG_H_LOCAL) "" $(NwProductBase1) $(!REG_KEY_ALL_ACCESS) NWBaseKey
  6932.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6933.  
  6934.         CreateRegKey $(!REG_H_LOCAL) {$(NwParameters1), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" ParmBaseKey
  6935.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6936.  
  6937.             SetRegValue $(ParmBaseKey) {$(ValueName1), $(NoTitle), $(!REG_VT_SZ), $(ValueData1)}
  6938.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6939.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters1)": "$(ValueName1)" = "$(ValueData1)
  6940.             endif
  6941.  
  6942.             SetRegValue $(ParmBaseKey) {$(ValueName2), $(NoTitle), $(!REG_VT_SZ), $(ValueData2)}
  6943.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6944.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters1)": "$(ValueName2)" = "$(ValueData2)
  6945.             endif
  6946.  
  6947.             SetRegValue $(ParmBaseKey) {$(ValueName3), $(NoTitle), $(!REG_VT_SZ), $(ValueData3)}
  6948.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6949.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters1)": "$(ValueName3)" = "$(ValueData3)
  6950.             endif
  6951.  
  6952.             SetRegValue $(ParmBaseKey) {$(ValueName4), $(NoTitle), $(!REG_VT_SZ), $(ValueData4)}
  6953.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6954.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters1)": "$(ValueName4)" = "$(ValueData4)
  6955.             endif
  6956.  
  6957.             CloseRegKey $(ParmBaseKey)
  6958.  
  6959.         else
  6960.             Debug-Output "OEMNPRNW.INF:  Error creating key "$(NwParameters1)
  6961.         endif
  6962.     
  6963.         CloseRegKey $(NWBaseKey)
  6964.  
  6965.     else
  6966.         Debug-Output "OEMNPRNW.INF:  Error opening key "$(NwProductBase1)
  6967.     endif
  6968.  
  6969.  
  6970.     set ValueData1 = "NwPfCloseLSLPerformanceData"
  6971.     set ValueData2 = "NwPfCollectLSLPerformanceData"
  6972.     set ValueData3 = "NwPfOpenLSLPerformanceData"
  6973.     set ValueData4 = "Nwpfctrs.dll"
  6974.  
  6975.     ;
  6976.     ; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LSL
  6977.     ;
  6978.  
  6979.     OpenRegKey $(!REG_H_LOCAL) "" $(NwProductBase2) $(!REG_KEY_ALL_ACCESS) NWBaseKey
  6980.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6981.  
  6982.         CreateRegKey $(!REG_H_LOCAL) {$(NwParameters2), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" ParmBaseKey
  6983.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  6984.  
  6985.             SetRegValue $(ParmBaseKey) {$(ValueName1), $(NoTitle), $(!REG_VT_SZ), $(ValueData1)}
  6986.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6987.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters2)": "$(ValueName1)" = "$(ValueData1)
  6988.             endif
  6989.  
  6990.             SetRegValue $(ParmBaseKey) {$(ValueName2), $(NoTitle), $(!REG_VT_SZ), $(ValueData2)}
  6991.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6992.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters2)": "$(ValueName2)" = "$(ValueData2)
  6993.             endif
  6994.  
  6995.             SetRegValue $(ParmBaseKey) {$(ValueName3), $(NoTitle), $(!REG_VT_SZ), $(ValueData3)}
  6996.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  6997.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters2)": "$(ValueName3)" = "$(ValueData3)
  6998.             endif
  6999.  
  7000.             SetRegValue $(ParmBaseKey) {$(ValueName4), $(NoTitle), $(!REG_VT_SZ), $(ValueData4)}
  7001.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  7002.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters2)": "$(ValueName4)" = "$(ValueData4)
  7003.             endif
  7004.  
  7005.             CloseRegKey $(ParmBaseKey)
  7006.  
  7007.         else
  7008.             Debug-Output "OEMNPRNW.INF:  Error creating key "$(NwParameters2)
  7009.         endif
  7010.     
  7011.         CloseRegKey $(NWBaseKey)
  7012.  
  7013.     else
  7014.         Debug-Output "OEMNPRNW.INF:  Error opening key "$(NwProductBase2)
  7015.     endif
  7016.  
  7017.  
  7018.     set ValueData1 = "NwPfCloseODIPerformanceData"
  7019.     set ValueData2 = "NwPfCollectODIPerformanceData"
  7020.     set ValueData3 = "NwPfOpenODIPerformanceData"
  7021.     set ValueData4 = "Nwpfctrs.dll"
  7022.  
  7023.     ;
  7024.     ; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OdiLoad
  7025.     ;
  7026.  
  7027.     OpenRegKey $(!REG_H_LOCAL) "" $(NwProductBase3) $(!REG_KEY_ALL_ACCESS) NWBaseKey
  7028.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  7029.  
  7030.         CreateRegKey $(!REG_H_LOCAL) {$(NwParameters3), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" ParmBaseKey
  7031.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  7032.  
  7033.             SetRegValue $(ParmBaseKey) {$(ValueName1), $(NoTitle), $(!REG_VT_SZ), $(ValueData1)}
  7034.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  7035.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters3)": "$(ValueName1)" = "$(ValueData1)
  7036.             endif
  7037.  
  7038.             SetRegValue $(ParmBaseKey) {$(ValueName2), $(NoTitle), $(!REG_VT_SZ), $(ValueData2)}
  7039.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  7040.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters3)": "$(ValueName2)" = "$(ValueData2)
  7041.             endif
  7042.  
  7043.             SetRegValue $(ParmBaseKey) {$(ValueName3), $(NoTitle), $(!REG_VT_SZ), $(ValueData3)}
  7044.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  7045.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters3)": "$(ValueName3)" = "$(ValueData3)
  7046.             endif
  7047.  
  7048.             SetRegValue $(ParmBaseKey) {$(ValueName4), $(NoTitle), $(!REG_VT_SZ), $(ValueData4)}
  7049.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  7050.                 Debug-Output "OEMNPRNW.INF:  Error writing "$(NwParameters3)": "$(ValueName4)" = "$(ValueData4)
  7051.             endif
  7052.  
  7053.             CloseRegKey $(ParmBaseKey)
  7054.  
  7055.         else
  7056.             Debug-Output "OEMNPRNW.INF:  Error creating Software Key "$(NwParameters3)
  7057.         endif
  7058.     
  7059.         CloseRegKey $(NWBaseKey)
  7060.  
  7061.     else
  7062.         Debug-Output "OEMNPRNW.INF:  Error opening key "$(NwProductBase3)
  7063.     endif
  7064.  
  7065.     ;
  7066.     ; Call the DLL to load the counters now that registry is set up
  7067.     ;
  7068.  
  7069.     LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  7070.     LibraryProcedure GUIResult $(NwLibHandle) NWLoadPerformanceCounters
  7071.     FreeLibrary $(NwLibHandle)
  7072.     Exit
  7073.  
  7074.  
  7075. [Install-NetWare-Group]
  7076.     ifint $(NTMajorVersion) == "3"
  7077.         Set NetWareGroup = $(OldNetWareGroup)
  7078.     else
  7079.         LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  7080.         LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSPATH)"\Profiles\All Users\Start Menu\Programs\NetWare (Common)" $(!STF_WINDOWSPATH)"\Profiles\All Users\Start Menu\Programs\IntranetWare (Common)"
  7081.         FreeLibrary $(NwLibHandle)
  7082.     endif
  7083.  
  7084.     CreateCommonProgManGroup $(NetWareGroup) ""
  7085.  
  7086.     ;
  7087.     ; Delete any and all icons we may have created in the past.  Some do
  7088.     ; not exist anymore so in update cases we want them gone.
  7089.     ;
  7090.  
  7091.     RemoveCommonProgManItem $(NetWareGroup) "Administrating NetWare Client for Windows NT 3.51"
  7092.     RemoveCommonProgManItem $(NetWareGroup) "Administrating NetWare Client for Windows NT 4.00"
  7093.     RemoveCommonProgManItem $(NetWareGroup) "DOS Support"
  7094.     RemoveCommonProgManItem $(NetWareGroup) "Getting Started"
  7095.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Admin Help for Windows NT 3.51"
  7096.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Admin Help for Windows NT 4.00"
  7097.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Change Password"
  7098.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Client for Windows NT help"
  7099.     RemoveCommonProgManItem $(NetWareGroup) "Novell NetWare Client for Windows NT hel"
  7100.     RemoveCommonProgManItem $(NetWareGroup) "Novell NetWare Client for Windows NT help"
  7101.     RemoveCommonProgManItem $(NetWareGroup) "NetWare GUI Login"
  7102.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Help for Windows NT 3.51"
  7103.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Help for Windows NT 4.00"
  7104.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Login Help for Windows NT 3.51"
  7105.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Login Help for Windows NT 4.00"
  7106.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Send Message"
  7107.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Setup Help for Windows NT 3.51"
  7108.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Setup Help for Windows NT 4.00"
  7109.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Using Help for Windows NT 3.51"
  7110.     RemoveCommonProgManItem $(NetWareGroup) "NetWare Using Help for Windows NT 4.00"
  7111.     RemoveCommonProgManItem $(NetWareGroup) "ReadMe"
  7112.     RemoveCommonProgManItem $(NetWareGroup) "Setup NetWare Client for Windows NT 3.51"
  7113.     RemoveCommonProgManItem $(NetWareGroup) "Setup NetWare Client for Windows NT 4.00"
  7114.     RemoveCommonProgManItem $(NetWareGroup) "Using NetWare Client for Windows NT 3.51"
  7115.     RemoveCommonProgManItem $(NetWareGroup) "Using NetWare Client for Windows NT 4.00"
  7116.     RemoveCommonProgManItem $(NetWareGroup) "IntranetWare Login"
  7117.     RemoveCommonProgManItem $(NetWareGroup) "IntranetWare Change Password"
  7118.     RemoveCommonProgManItem $(NetWareGroup) "IntranetWare Send Message"
  7119.     RemoveCommonProgManItem $(NetWareGroup) "IntranetWare Client for Windows NT help"
  7120.  
  7121.     RemoveCommonProgManItem $(NetWareGroup) $(LoginIconText)
  7122.     RemoveCommonProgManItem $(NetWareGroup) $(ChangePasswordIconText)
  7123.     RemoveCommonProgManItem $(NetWareGroup) $(SendMessageIconText)
  7124.     RemoveCommonProgManItem $(NetWareGroup) $(ReadMeIconText)
  7125.     RemoveCommonProgManItem $(NetWareGroup) $(HelpIconText)
  7126.     RemoveCommonProgManItem $(NetWareGroup) $(MigIconText)
  7127.  
  7128.     ;
  7129.     ; Create the icons
  7130.     ;
  7131.  
  7132.     CreateCommonProgManItem $(NetWareGroup), $(LoginIconText) "%SystemRoot%\system32\loginwnt.exe" "" 0
  7133. ;    CreateCommonProgManItem $(NetWareGroup), $(ChangePasswordIconText) "%SystemRoot%\system32\nwchgpwd.exe" "" 0
  7134.     CreateCommonProgManItem $(NetWareGroup), $(SendMessageIconText) "%SystemRoot%\system32\nwsndmsg.exe" "" 0
  7135.     CreateCommonProgManItem $(NetWareGroup), $(ReadMeIconText) "%SystemRoot%\system32\nls\"$(NLSDirName)"\readme.hlp" "" 0
  7136.  
  7137.     ifint $(NTMajorVersion) == "4"
  7138.         CreateCommonProgManItem $(NetWareGroup), $(HelpIconText) "winhlp32 %SystemRoot%\system32\nls\"$(NLSDirName)"\nt4using.hlp" "" 0
  7139.     else
  7140.         CreateCommonProgManItem $(NetWareGroup), $(HelpIconText) "winhlp32 %SystemRoot%\system32\nls\"$(NLSDirName)"\nt3using.hlp" "" 0
  7141.     endif
  7142.  
  7143.     ifstr(i) $(AdvancedServer) == "YES"
  7144.         ifstr(i) $(!InstallSAMRedir) == "YES"
  7145.             CreateCommonProgManItem $(NetWareGroup), $(MigIconText) "%SystemRoot%\system32\sammig.exe" "" 0
  7146.         endif
  7147.     endif
  7148.  
  7149.  
  7150.     ;
  7151.     ;    Minimize the group
  7152.     ;
  7153.     
  7154.     ShowCommonProgManGroup $(NetWareGroup), 6
  7155.  
  7156.     Exit
  7157.  
  7158.  
  7159. [Remove-NetWare-Group]
  7160.     ifint $(NTMajorVersion) == "3"
  7161.         Set NetWareGroup = $(OldNetWareGroup)
  7162.     endif
  7163.  
  7164.     CreateCommonProgManGroup $(NetWareGroup) ""
  7165.     RemoveCommonProgManGroup $(NetWareGroup)
  7166.     Exit
  7167.  
  7168.  
  7169. [Install-NetWare-Dir]
  7170.     CreateDir $(!STF_WINDOWSSYSPATH)"\NetWare"
  7171.     CreateDir $(!STF_WINDOWSSYSPATH)"\NLS"
  7172.     CreateDir $(!STF_WINDOWSSYSPATH)"\NLS\"$(NLSDirName)
  7173.     CreateDir $(!STF_WINDOWSPATH)"\System\NLS"
  7174.     CreateDir $(!STF_WINDOWSPATH)"\System\NLS\"$(NLSDirName)
  7175.     Exit
  7176.  
  7177.  
  7178. [Install-Files]
  7179.     set STF_VITAL            = ""
  7180.  
  7181.     Ifstr(i) $(AddCopy) == "YES"
  7182.  
  7183.         ;
  7184.         ; Add the files to the copy list
  7185.         ;
  7186.  
  7187.         AddSectionFilesToCopyList Files-First-$(NLSDirName)                                    $(SrcDir)                    $(!STF_WINDOWSSYSPATH)
  7188.         AddSectionFilesToCopyList Files-Inf-$(NLSDirName)                    $(SrcDir)nls\$(NLSDirName)    $(!STF_WINDOWSSYSPATH)
  7189.         AddSectionFilesToCopyList Files-Hlp-Sys32-$(NLSDirName)            $(SrcDir)nls\$(NLSDirName)    $(!STF_WINDOWSSYSPATH)\nls\$(NLSDirName)
  7190.         AddSectionFilesToCopyList Files-Msg-Sys32-$(NLSDirName)            $(SrcDir)nls\$(NLSDirName)    $(!STF_WINDOWSSYSPATH)\nls\$(NLSDirName)
  7191.         AddSectionFilesToCopyList Files-Resource-Sys32-$(NLSDirName)    $(SrcDir)nls\$(NLSDirName)    $(!STF_WINDOWSSYSPATH)\nls\$(NLSDirName)
  7192.         ifstr(i) $(AdvancedServer) == "YES"
  7193.             ifstr(i) $(!InstallSAMRedir) == "YES"
  7194.                 AddSectionFilesToCopyList Files-Resource-Sys32-$(NLSDirName)-SAM    $(SrcDir)nls\$(NLSDirName)    $(!STF_WINDOWSSYSPATH)\nls\$(NLSDirName)
  7195.             endif
  7196.         endif
  7197.         AddSectionFilesToCopyList Files-Ini-$(NLSDirName)                    $(SrcDir)nls\$(NLSDirName)    $(!STF_WINDOWSSYSPATH)
  7198.         AddSectionFilesToCopyList Files-Msg-Sys-$(NLSDirName)                $(SrcDir)nls\$(NLSDirName)    $(!STF_WINDOWSPATH)\system\nls\$(NLSDirName)
  7199.         AddSectionFilesToCopyList Files-Resource-Sys-$(NLSDirName)        $(SrcDir)nls\$(NLSDirName)    $(!STF_WINDOWSPATH)\system\nls\$(NLSDirName)
  7200.         AddSectionFilesToCopyList Files-Unicode-$(NLSDirName)                $(SrcDir)nls                $(!STF_WINDOWSSYSPATH)\nls
  7201.         AddSectionFilesToCopyList Files-NtRoot-$(NLSDirName)                                    $(SrcDir)nls\$(NLSDirName)                $(!STF_WINDOWSPATH)
  7202.         ifstr(i) $(AdvancedServer) == "YES"
  7203.             ifstr(i) $(!InstallSAMRedir) == "YES"
  7204.                 AddSectionFilesToCopyList Files-NtRoot-$(NLSDirName)-SAM                                    $(SrcDir)nls\$(NLSDirName)\sam                $(!STF_WINDOWSPATH)
  7205.             endif
  7206.         endif
  7207.         AddSectionFilesToCopyList Files-NtRoot                        $(SrcDir)redir                            $(!STF_WINDOWSPATH)
  7208.         AddSectionFilesToCopyList Files-System32                                $(SrcDir)redir                $(!STF_WINDOWSSYSPATH)
  7209.         ifint $(NTMajorVersion) == "3"
  7210.             AddSectionFilesToCopyList Files-System32-NT3                                $(SrcDir)redir                $(!STF_WINDOWSSYSPATH)
  7211.         endif
  7212.         ifstr(i) $(AdvancedServer) == "YES"
  7213.             ifstr(i) $(!InstallSAMRedir) == "YES"
  7214.                 AddSectionFilesToCopyList Files-System32-SAM                        $(SrcDir)redir                $(!STF_WINDOWSSYSPATH)
  7215.             endif
  7216.         endif
  7217.         AddSectionFilesToCopyList Files-System                                    $(SrcDir)redir                $(!STF_WINDOWSPATH)\system
  7218.         AddSectionFilesToCopyList Files-32bitLibs                                $(SrcDir)libs32            $(!STF_WINDOWSSYSPATH)
  7219.         AddSectionFilesToCopyList Files-16bitXplatLibs                        $(SrcDir)libs16            $(!STF_WINDOWSPATH)\system
  7220.         AddSectionFilesToCopyList Files-16bitOldLibs                            $(SrcDir)libs16            $(!STF_WINDOWSPATH)\system
  7221.         AddSectionFilesToCopyList Files-16bitThunkLibs                        $(SrcDir)libs16            $(!STF_WINDOWSSYSPATH)
  7222.         AddSectionFilesToCopyList Files-NetWare                                $(SrcDir)redir                $(!STF_WINDOWSSYSPATH)\netware
  7223.         AddSectionFilesToCopyList Files-Drivers                                $(SrcDir)redir                $(!STF_WINDOWSSYSPATH)\drivers
  7224.  
  7225.         ifint $(NTMajorVersion) == "4"
  7226.             AddSectionFilesToCopyList Files-Drivers-Nwip                        $(SrcDir)redir\nt4        $(!STF_WINDOWSSYSPATH)\drivers
  7227.         else
  7228.             AddSectionFilesToCopyList Files-Drivers-Nwip                        $(SrcDir)redir\nt3        $(!STF_WINDOWSSYSPATH)\drivers
  7229.         endif
  7230.  
  7231.  
  7232.         ;
  7233.         ; For 3rd party files that we install, only install if they are newer
  7234.         ;
  7235.     
  7236.         set STF_OVERWRITE        = "VERIFYSOURCEOLDER"
  7237.         AddSectionFilesToCopyList Files-3party-32bitLibs                    $(SrcDir)libs32            $(!STF_WINDOWSSYSPATH)
  7238.     Endif
  7239.  
  7240.  
  7241.     Ifstr(i) $(DoCopy) == "YES"
  7242.  
  7243.         ;
  7244.         ; Copy files in the copy list
  7245.         ;
  7246.  
  7247.         set !STF_NCPA_FLUSH_COPYLIST = TRUE
  7248.         CopyFilesInCopyList
  7249.  
  7250.         ;
  7251.         ; Mark files that get copied to the destination with phony names to be
  7252.         ; renamed to the real name at reboot time.  This is nessesary because
  7253.         ; some of our files might be open and can't be renamed until reboot time.
  7254.         ;
  7255.     
  7256.         LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle
  7257.         LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\netware.dr~" $(!STF_WINDOWSSYSPATH)"\netware.drv"
  7258.         LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\login.da~" $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\login.dat"
  7259.         LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSPATH)"\system\nls\"$(NLSDirName)"\login.da~" $(!STF_WINDOWSPATH)"\system\nls\"$(NLSDirName)"\login.dat"
  7260.         LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\login.ms~" $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\login.msg"
  7261.         LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSPATH)"\system\nls\"$(NLSDirName)"\login.ms~" $(!STF_WINDOWSPATH)"\system\nls\"$(NLSDirName)"\login.msg"
  7262.  
  7263.         ifstr(i) $(AdvancedServer) == "YES"
  7264.             ifstr(i) $(!InstallSAMRedir) == "YES"
  7265.                 LibraryProcedure LibResult $(NwLibHandle) NWCheckSAMMigrated
  7266.  
  7267.                 ifstr(i) $(LibResult) == "TRUE"
  7268.                     ;
  7269.                     ;    If already migrated, update the DLL
  7270.                     ;
  7271.                     LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(!STF_WINDOWSSYSPATH)"\mssamsrv.dll"
  7272.                     ifstr(i) $(Status1) == "YES"
  7273.                         LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\samsrv.dll" $(!STF_WINDOWSSYSPATH)"\xxsamsrv.dll"
  7274.                         LibraryProcedure LibResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\xxsamsrv.dll"
  7275.                     else
  7276.                         LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\samsrv.dll" $(!STF_WINDOWSSYSPATH)"\mssamsrv.dll"
  7277.                     endif
  7278.  
  7279.                     LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\nwsamsrv.dll" $(!STF_WINDOWSSYSPATH)"\samsrv.dll"
  7280.                 endif
  7281.             endif
  7282.         endif
  7283.  
  7284.         FreeLibrary $(NwLibHandle)
  7285.  
  7286.     Endif
  7287.     Exit
  7288.  
  7289. [Files-First-English]
  7290.     1,        locwin32.dll,    SIZE=50000,    DECOMPRESS
  7291.     1,        nwsetup.dll        SIZE=50000,    DECOMPRESS
  7292.  
  7293. [Files-First-Chineses]
  7294.     3,        locwin32.dll,    SIZE=50000,    DECOMPRESS
  7295.     3,        nwsetup.dll        SIZE=50000,    DECOMPRESS
  7296.  
  7297. [Files-First-Chineset]
  7298.     5,        locwin32.dll,    SIZE=50000,    DECOMPRESS
  7299.     5,        nwsetup.dll        SIZE=50000,    DECOMPRESS
  7300.  
  7301. [Files-First-Deutsch]
  7302.     7,        locwin32.dll,    SIZE=50000,    DECOMPRESS
  7303.     7,        nwsetup.dll        SIZE=50000,    DECOMPRESS
  7304.  
  7305. [Files-First-Espanol]
  7306.     9,        locwin32.dll,    SIZE=50000,    DECOMPRESS
  7307.     9,        nwsetup.dll        SIZE=50000,    DECOMPRESS
  7308.  
  7309. [Files-First-Francais]
  7310.     11,        locwin32.dll,    SIZE=50000,    DECOMPRESS
  7311.     11,        nwsetup.dll        SIZE=50000,    DECOMPRESS
  7312.  
  7313. [Files-First-Italiano]
  7314.     13,        locwin32.dll,    SIZE=50000,    DECOMPRESS
  7315.     13,        nwsetup.dll        SIZE=50000,    DECOMPRESS
  7316.  
  7317. [Files-First-Korean]
  7318.     15,        locwin32.dll,    SIZE=50000,    DECOMPRESS
  7319.     15,        nwsetup.dll        SIZE=50000,    DECOMPRESS
  7320.  
  7321. [Files-First-Nihongo]
  7322.     17,        locwin32.dll,    SIZE=50000,    DECOMPRESS
  7323.     17,        nwsetup.dll        SIZE=50000,    DECOMPRESS
  7324.  
  7325. [Files-First-Portugue]
  7326.     19,        locwin32.dll,    SIZE=50000,    DECOMPRESS
  7327.     19,        nwsetup.dll        SIZE=50000,    DECOMPRESS
  7328.  
  7329. [Files-Inf-English]
  7330.     1,        oemnprnw.inf,    SIZE=50000
  7331.     1,        nwsubs.inf,        SIZE=50000,    DECOMPRESS
  7332.     1,        odinsup.inf,    SIZE=50000,    DECOMPRESS
  7333.     1,        oemnadoa.inf,    SIZE=50000,    DECOMPRESS
  7334.     1,        oemnadob.inf,    SIZE=50000,    DECOMPRESS
  7335.     1,        oemnadoc.inf,    SIZE=50000,    DECOMPRESS
  7336.     1,        oemnadod.inf,    SIZE=50000,    DECOMPRESS
  7337.     1,        oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  7338.  
  7339. [Files-Inf-Chineses]
  7340.     3,        oemnprnw.inf,    SIZE=50000
  7341.     3,        nwsubs.inf,        SIZE=50000,    DECOMPRESS
  7342.     3,        odinsup.inf,    SIZE=50000,    DECOMPRESS
  7343.     3,        oemnadoa.inf,    SIZE=50000,    DECOMPRESS
  7344.     3,        oemnadob.inf,    SIZE=50000,    DECOMPRESS
  7345.     3,        oemnadoc.inf,    SIZE=50000,    DECOMPRESS
  7346.     3,        oemnadod.inf,    SIZE=50000,    DECOMPRESS
  7347.     3,        oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  7348.  
  7349. [Files-Inf-Chineset]
  7350.     5,        oemnprnw.inf,    SIZE=50000
  7351.     5,        nwsubs.inf,        SIZE=50000,    DECOMPRESS
  7352.     5,        odinsup.inf,    SIZE=50000,    DECOMPRESS
  7353.     5,        oemnadoa.inf,    SIZE=50000,    DECOMPRESS
  7354.     5,        oemnadob.inf,    SIZE=50000,    DECOMPRESS
  7355.     5,        oemnadoc.inf,    SIZE=50000,    DECOMPRESS
  7356.     5,        oemnadod.inf,    SIZE=50000,    DECOMPRESS
  7357.     5,        oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  7358.  
  7359. [Files-Inf-Deutsch]
  7360.     7,        oemnprnw.inf,    SIZE=50000
  7361.     7,        nwsubs.inf,        SIZE=50000,    DECOMPRESS
  7362.     7,        odinsup.inf,    SIZE=50000,    DECOMPRESS
  7363.     7,        oemnadoa.inf,    SIZE=50000,    DECOMPRESS
  7364.     7,        oemnadob.inf,    SIZE=50000,    DECOMPRESS
  7365.     7,        oemnadoc.inf,    SIZE=50000,    DECOMPRESS
  7366.     7,        oemnadod.inf,    SIZE=50000,    DECOMPRESS
  7367.     7,        oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  7368.  
  7369. [Files-Inf-Espanol]
  7370.     9,        oemnprnw.inf,    SIZE=50000
  7371.     9,        nwsubs.inf,        SIZE=50000,    DECOMPRESS
  7372.     9,        odinsup.inf,    SIZE=50000,    DECOMPRESS
  7373.     9,        oemnadoa.inf,    SIZE=50000,    DECOMPRESS
  7374.     9,        oemnadob.inf,    SIZE=50000,    DECOMPRESS
  7375.     9,        oemnadoc.inf,    SIZE=50000,    DECOMPRESS
  7376.     9,        oemnadod.inf,    SIZE=50000,    DECOMPRESS
  7377.     9,        oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  7378.  
  7379. [Files-Inf-Francais]
  7380.     11,    oemnprnw.inf,    SIZE=50000
  7381.     11,    nwsubs.inf,        SIZE=50000,    DECOMPRESS
  7382.     11,    odinsup.inf,    SIZE=50000,    DECOMPRESS
  7383.     11,    oemnadoa.inf,    SIZE=50000,    DECOMPRESS
  7384.     11,    oemnadob.inf,    SIZE=50000,    DECOMPRESS
  7385.     11,    oemnadoc.inf,    SIZE=50000,    DECOMPRESS
  7386.     11,    oemnadod.inf,    SIZE=50000,    DECOMPRESS
  7387.     11,    oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  7388.  
  7389. [Files-Inf-Italiano]
  7390.     13,    oemnprnw.inf,    SIZE=50000
  7391.     13,    nwsubs.inf,        SIZE=50000,    DECOMPRESS
  7392.     13,    odinsup.inf,    SIZE=50000,    DECOMPRESS
  7393.     13,    oemnadoa.inf,    SIZE=50000,    DECOMPRESS
  7394.     13,    oemnadob.inf,    SIZE=50000,    DECOMPRESS
  7395.     13,    oemnadoc.inf,    SIZE=50000,    DECOMPRESS
  7396.     13,    oemnadod.inf,    SIZE=50000,    DECOMPRESS
  7397.     13,    oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  7398.  
  7399. [Files-Inf-Korean]
  7400.     15,    oemnprnw.inf,    SIZE=50000
  7401.     15,    nwsubs.inf,        SIZE=50000,    DECOMPRESS
  7402.     15,    odinsup.inf,    SIZE=50000,    DECOMPRESS
  7403.     15,    oemnadoa.inf,    SIZE=50000,    DECOMPRESS
  7404.     15,    oemnadob.inf,    SIZE=50000,    DECOMPRESS
  7405.     15,    oemnadoc.inf,    SIZE=50000,    DECOMPRESS
  7406.     15,    oemnadod.inf,    SIZE=50000,    DECOMPRESS
  7407.     15,    oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  7408.  
  7409. [Files-Inf-Nihongo]
  7410.     17,    oemnprnw.inf,    SIZE=50000
  7411.     17,    nwsubs.inf,        SIZE=50000,    DECOMPRESS
  7412.     17,    odinsup.inf,    SIZE=50000,    DECOMPRESS
  7413.     17,    oemnadoa.inf,    SIZE=50000,    DECOMPRESS
  7414.     17,    oemnadob.inf,    SIZE=50000,    DECOMPRESS
  7415.     17,    oemnadoc.inf,    SIZE=50000,    DECOMPRESS
  7416.     17,    oemnadod.inf,    SIZE=50000,    DECOMPRESS
  7417.     17,    oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  7418.  
  7419. [Files-Inf-Portugue]
  7420.     19,    oemnprnw.inf,    SIZE=50000
  7421.     19,    nwsubs.inf,        SIZE=50000,    DECOMPRESS
  7422.     19,    odinsup.inf,    SIZE=50000,    DECOMPRESS
  7423.     19,    oemnadoa.inf,    SIZE=50000,    DECOMPRESS
  7424.     19,    oemnadob.inf,    SIZE=50000,    DECOMPRESS
  7425.     19,    oemnadoc.inf,    SIZE=50000,    DECOMPRESS
  7426.     19,    oemnadod.inf,    SIZE=50000,    DECOMPRESS
  7427.     19,    oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  7428.  
  7429. [Files-Unicode-English]
  7430.     2,        1250_uni.001,    SIZE=5000,    DECOMPRESS
  7431.     2,        uni_1250.001,    SIZE=5000,    DECOMPRESS
  7432.     2,        1251_uni.001,    SIZE=5000,    DECOMPRESS
  7433.     2,        uni_1251.001,    SIZE=5000,    DECOMPRESS
  7434.     2,        1252_uni.001,    SIZE=5000,    DECOMPRESS
  7435.     2,        uni_1252.001,    SIZE=5000,    DECOMPRESS
  7436.     2,        1253_uni.001,    SIZE=5000,    DECOMPRESS
  7437.     2,        uni_1253.001,    SIZE=5000,    DECOMPRESS
  7438.     2,        1254_uni.001,    SIZE=5000,    DECOMPRESS
  7439.     2,        uni_1254.001,    SIZE=5000,    DECOMPRESS
  7440.     2,        1255_uni.001,    SIZE=5000,    DECOMPRESS
  7441.     2,        uni_1255.001,    SIZE=5000,    DECOMPRESS
  7442.     2,        1256_uni.001,    SIZE=5000,    DECOMPRESS
  7443.     2,        uni_1256.001,    SIZE=5000,    DECOMPRESS
  7444.     2,        1257_uni.001,    SIZE=5000,    DECOMPRESS
  7445.     2,        uni_1257.001,    SIZE=5000,    DECOMPRESS
  7446.     2,        874_uni.001,    SIZE=5000,    DECOMPRESS
  7447.     2,        uni_874.001,    SIZE=5000,    DECOMPRESS
  7448.     2,        932_uni.001,    SIZE=5000,    DECOMPRESS
  7449.     2,        uni_932.001,    SIZE=5000,    DECOMPRESS
  7450.     2,        936_uni.001,    SIZE=5000,    DECOMPRESS
  7451.     2,        uni_936.001,    SIZE=5000,    DECOMPRESS
  7452.     2,        949_uni.001,    SIZE=5000,    DECOMPRESS
  7453.     2,        uni_949.001,    SIZE=5000,    DECOMPRESS
  7454.     2,        950_uni.001,    SIZE=5000,    DECOMPRESS
  7455.     2,        uni_950.001,    SIZE=5000,    DECOMPRESS
  7456.     2,        uni_col.001,    SIZE=5000,    DECOMPRESS
  7457.     2,        uni_mon.001,    SIZE=5000,    DECOMPRESS
  7458.  
  7459. [Files-Unicode-Chineses]
  7460.     4,        1250_uni.001,    SIZE=5000,    DECOMPRESS
  7461.     4,        uni_1250.001,    SIZE=5000,    DECOMPRESS
  7462.     4,        1251_uni.001,    SIZE=5000,    DECOMPRESS
  7463.     4,        uni_1251.001,    SIZE=5000,    DECOMPRESS
  7464.     4,        1252_uni.001,    SIZE=5000,    DECOMPRESS
  7465.     4,        uni_1252.001,    SIZE=5000,    DECOMPRESS
  7466.     4,        1253_uni.001,    SIZE=5000,    DECOMPRESS
  7467.     4,        uni_1253.001,    SIZE=5000,    DECOMPRESS
  7468.     4,        1254_uni.001,    SIZE=5000,    DECOMPRESS
  7469.     4,        uni_1254.001,    SIZE=5000,    DECOMPRESS
  7470.     4,        1255_uni.001,    SIZE=5000,    DECOMPRESS
  7471.     4,        uni_1255.001,    SIZE=5000,    DECOMPRESS
  7472.     4,        1256_uni.001,    SIZE=5000,    DECOMPRESS
  7473.     4,        uni_1256.001,    SIZE=5000,    DECOMPRESS
  7474.     4,        1257_uni.001,    SIZE=5000,    DECOMPRESS
  7475.     4,        uni_1257.001,    SIZE=5000,    DECOMPRESS
  7476.     4,        874_uni.001,    SIZE=5000,    DECOMPRESS
  7477.     4,        uni_874.001,    SIZE=5000,    DECOMPRESS
  7478.     4,        932_uni.001,    SIZE=5000,    DECOMPRESS
  7479.     4,        uni_932.001,    SIZE=5000,    DECOMPRESS
  7480.     4,        936_uni.001,    SIZE=5000,    DECOMPRESS
  7481.     4,        uni_936.001,    SIZE=5000,    DECOMPRESS
  7482.     4,        949_uni.001,    SIZE=5000,    DECOMPRESS
  7483.     4,        uni_949.001,    SIZE=5000,    DECOMPRESS
  7484.     4,        950_uni.001,    SIZE=5000,    DECOMPRESS
  7485.     4,        uni_950.001,    SIZE=5000,    DECOMPRESS
  7486.     4,        uni_col.001,    SIZE=5000,    DECOMPRESS
  7487.     4,        uni_mon.001,    SIZE=5000,    DECOMPRESS
  7488.  
  7489. [Files-Unicode-Chineset]
  7490.     6,        1250_uni.001,    SIZE=5000,    DECOMPRESS
  7491.     6,        uni_1250.001,    SIZE=5000,    DECOMPRESS
  7492.     6,        1251_uni.001,    SIZE=5000,    DECOMPRESS
  7493.     6,        uni_1251.001,    SIZE=5000,    DECOMPRESS
  7494.     6,        1252_uni.001,    SIZE=5000,    DECOMPRESS
  7495.     6,        uni_1252.001,    SIZE=5000,    DECOMPRESS
  7496.     6,        1253_uni.001,    SIZE=5000,    DECOMPRESS
  7497.     6,        uni_1253.001,    SIZE=5000,    DECOMPRESS
  7498.     6,        1254_uni.001,    SIZE=5000,    DECOMPRESS
  7499.     6,        uni_1254.001,    SIZE=5000,    DECOMPRESS
  7500.     6,        1255_uni.001,    SIZE=5000,    DECOMPRESS
  7501.     6,        uni_1255.001,    SIZE=5000,    DECOMPRESS
  7502.     6,        1256_uni.001,    SIZE=5000,    DECOMPRESS
  7503.     6,        uni_1256.001,    SIZE=5000,    DECOMPRESS
  7504.     6,        1257_uni.001,    SIZE=5000,    DECOMPRESS
  7505.     6,        uni_1257.001,    SIZE=5000,    DECOMPRESS
  7506.     6,        874_uni.001,    SIZE=5000,    DECOMPRESS
  7507.     6,        uni_874.001,    SIZE=5000,    DECOMPRESS
  7508.     6,        932_uni.001,    SIZE=5000,    DECOMPRESS
  7509.     6,        uni_932.001,    SIZE=5000,    DECOMPRESS
  7510.     6,        936_uni.001,    SIZE=5000,    DECOMPRESS
  7511.     6,        uni_936.001,    SIZE=5000,    DECOMPRESS
  7512.     6,        949_uni.001,    SIZE=5000,    DECOMPRESS
  7513.     6,        uni_949.001,    SIZE=5000,    DECOMPRESS
  7514.     6,        950_uni.001,    SIZE=5000,    DECOMPRESS
  7515.     6,        uni_950.001,    SIZE=5000,    DECOMPRESS
  7516.     6,        uni_col.001,    SIZE=5000,    DECOMPRESS
  7517.     6,        uni_mon.001,    SIZE=5000,    DECOMPRESS
  7518.  
  7519. [Files-Unicode-Deutsch]
  7520.     8,        1250_uni.001,    SIZE=5000,    DECOMPRESS
  7521.     8,        uni_1250.001,    SIZE=5000,    DECOMPRESS
  7522.     8,        1251_uni.001,    SIZE=5000,    DECOMPRESS
  7523.     8,        uni_1251.001,    SIZE=5000,    DECOMPRESS
  7524.     8,        1252_uni.001,    SIZE=5000,    DECOMPRESS
  7525.     8,        uni_1252.001,    SIZE=5000,    DECOMPRESS
  7526.     8,        1253_uni.001,    SIZE=5000,    DECOMPRESS
  7527.     8,        uni_1253.001,    SIZE=5000,    DECOMPRESS
  7528.     8,        1254_uni.001,    SIZE=5000,    DECOMPRESS
  7529.     8,        uni_1254.001,    SIZE=5000,    DECOMPRESS
  7530.     8,        1255_uni.001,    SIZE=5000,    DECOMPRESS
  7531.     8,        uni_1255.001,    SIZE=5000,    DECOMPRESS
  7532.     8,        1256_uni.001,    SIZE=5000,    DECOMPRESS
  7533.     8,        uni_1256.001,    SIZE=5000,    DECOMPRESS
  7534.     8,        1257_uni.001,    SIZE=5000,    DECOMPRESS
  7535.     8,        uni_1257.001,    SIZE=5000,    DECOMPRESS
  7536.     8,        874_uni.001,    SIZE=5000,    DECOMPRESS
  7537.     8,        uni_874.001,    SIZE=5000,    DECOMPRESS
  7538.     8,        932_uni.001,    SIZE=5000,    DECOMPRESS
  7539.     8,        uni_932.001,    SIZE=5000,    DECOMPRESS
  7540.     8,        936_uni.001,    SIZE=5000,    DECOMPRESS
  7541.     8,        uni_936.001,    SIZE=5000,    DECOMPRESS
  7542.     8,        949_uni.001,    SIZE=5000,    DECOMPRESS
  7543.     8,        uni_949.001,    SIZE=5000,    DECOMPRESS
  7544.     8,        950_uni.001,    SIZE=5000,    DECOMPRESS
  7545.     8,        uni_950.001,    SIZE=5000,    DECOMPRESS
  7546.     8,        uni_col.001,    SIZE=5000,    DECOMPRESS
  7547.     8,        uni_mon.001,    SIZE=5000,    DECOMPRESS
  7548.  
  7549. [Files-Unicode-Espanol]
  7550.     10,      1250_uni.001,    SIZE=5000,    DECOMPRESS
  7551.     10,      uni_1250.001,    SIZE=5000,    DECOMPRESS
  7552.     10,      1251_uni.001,    SIZE=5000,    DECOMPRESS
  7553.     10,      uni_1251.001,    SIZE=5000,    DECOMPRESS
  7554.     10,      1252_uni.001,    SIZE=5000,    DECOMPRESS
  7555.     10,      uni_1252.001,    SIZE=5000,    DECOMPRESS
  7556.     10,      1253_uni.001,    SIZE=5000,    DECOMPRESS
  7557.     10,      uni_1253.001,    SIZE=5000,    DECOMPRESS
  7558.     10,      1254_uni.001,    SIZE=5000,    DECOMPRESS
  7559.     10,      uni_1254.001,    SIZE=5000,    DECOMPRESS
  7560.     10,      1255_uni.001,    SIZE=5000,    DECOMPRESS
  7561.     10,      uni_1255.001,    SIZE=5000,    DECOMPRESS
  7562.     10,      1256_uni.001,    SIZE=5000,    DECOMPRESS
  7563.     10,      uni_1256.001,    SIZE=5000,    DECOMPRESS
  7564.     10,      1257_uni.001,    SIZE=5000,    DECOMPRESS
  7565.     10,      uni_1257.001,    SIZE=5000,    DECOMPRESS
  7566.     10,      874_uni.001,    SIZE=5000,    DECOMPRESS
  7567.     10,      uni_874.001,    SIZE=5000,    DECOMPRESS
  7568.     10,      932_uni.001,    SIZE=5000,    DECOMPRESS
  7569.     10,      uni_932.001,    SIZE=5000,    DECOMPRESS
  7570.     10,      936_uni.001,    SIZE=5000,    DECOMPRESS
  7571.     10,      uni_936.001,    SIZE=5000,    DECOMPRESS
  7572.     10,      949_uni.001,    SIZE=5000,    DECOMPRESS
  7573.     10,      uni_949.001,    SIZE=5000,    DECOMPRESS
  7574.     10,      950_uni.001,    SIZE=5000,    DECOMPRESS
  7575.     10,      uni_950.001,    SIZE=5000,    DECOMPRESS
  7576.     10,      uni_col.001,    SIZE=5000,    DECOMPRESS
  7577.     10,      uni_mon.001,    SIZE=5000,    DECOMPRESS
  7578.  
  7579. [Files-Unicode-Francais]
  7580.     12,    1250_uni.001,    SIZE=5000,    DECOMPRESS
  7581.     12,    uni_1250.001,    SIZE=5000,    DECOMPRESS
  7582.     12,    1251_uni.001,    SIZE=5000,    DECOMPRESS
  7583.     12,    uni_1251.001,    SIZE=5000,    DECOMPRESS
  7584.     12,    1252_uni.001,    SIZE=5000,    DECOMPRESS
  7585.     12,    uni_1252.001,    SIZE=5000,    DECOMPRESS
  7586.     12,    1253_uni.001,    SIZE=5000,    DECOMPRESS
  7587.     12,    uni_1253.001,    SIZE=5000,    DECOMPRESS
  7588.     12,    1254_uni.001,    SIZE=5000,    DECOMPRESS
  7589.     12,    uni_1254.001,    SIZE=5000,    DECOMPRESS
  7590.     12,    1255_uni.001,    SIZE=5000,    DECOMPRESS
  7591.     12,    uni_1255.001,    SIZE=5000,    DECOMPRESS
  7592.     12,    1256_uni.001,    SIZE=5000,    DECOMPRESS
  7593.     12,    uni_1256.001,    SIZE=5000,    DECOMPRESS
  7594.     12,    1257_uni.001,    SIZE=5000,    DECOMPRESS
  7595.     12,    uni_1257.001,    SIZE=5000,    DECOMPRESS
  7596.     12,    874_uni.001,    SIZE=5000,    DECOMPRESS
  7597.     12,    uni_874.001,    SIZE=5000,    DECOMPRESS
  7598.     12,    932_uni.001,    SIZE=5000,    DECOMPRESS
  7599.     12,    uni_932.001,    SIZE=5000,    DECOMPRESS
  7600.     12,    936_uni.001,    SIZE=5000,    DECOMPRESS
  7601.     12,    uni_936.001,    SIZE=5000,    DECOMPRESS
  7602.     12,    949_uni.001,    SIZE=5000,    DECOMPRESS
  7603.     12,    uni_949.001,    SIZE=5000,    DECOMPRESS
  7604.     12,    950_uni.001,    SIZE=5000,    DECOMPRESS
  7605.     12,    uni_950.001,    SIZE=5000,    DECOMPRESS
  7606.     12,    uni_col.001,    SIZE=5000,    DECOMPRESS
  7607.     12,    uni_mon.001,    SIZE=5000,    DECOMPRESS
  7608.  
  7609. [Files-Unicode-Italiano]
  7610.     14,    1250_uni.001,    SIZE=5000,    DECOMPRESS
  7611.     14,    uni_1250.001,    SIZE=5000,    DECOMPRESS
  7612.     14,    1251_uni.001,    SIZE=5000,    DECOMPRESS
  7613.     14,    uni_1251.001,    SIZE=5000,    DECOMPRESS
  7614.     14,    1252_uni.001,    SIZE=5000,    DECOMPRESS
  7615.     14,    uni_1252.001,    SIZE=5000,    DECOMPRESS
  7616.     14,    1253_uni.001,    SIZE=5000,    DECOMPRESS
  7617.     14,    uni_1253.001,    SIZE=5000,    DECOMPRESS
  7618.     14,    1254_uni.001,    SIZE=5000,    DECOMPRESS
  7619.     14,    uni_1254.001,    SIZE=5000,    DECOMPRESS
  7620.     14,    1255_uni.001,    SIZE=5000,    DECOMPRESS
  7621.     14,    uni_1255.001,    SIZE=5000,    DECOMPRESS
  7622.     14,    1256_uni.001,    SIZE=5000,    DECOMPRESS
  7623.     14,    uni_1256.001,    SIZE=5000,    DECOMPRESS
  7624.     14,    1257_uni.001,    SIZE=5000,    DECOMPRESS
  7625.     14,    uni_1257.001,    SIZE=5000,    DECOMPRESS
  7626.     14,    874_uni.001,    SIZE=5000,    DECOMPRESS
  7627.     14,    uni_874.001,    SIZE=5000,    DECOMPRESS
  7628.     14,    932_uni.001,    SIZE=5000,    DECOMPRESS
  7629.     14,    uni_932.001,    SIZE=5000,    DECOMPRESS
  7630.     14,    936_uni.001,    SIZE=5000,    DECOMPRESS
  7631.     14,    uni_936.001,    SIZE=5000,    DECOMPRESS
  7632.     14,    949_uni.001,    SIZE=5000,    DECOMPRESS
  7633.     14,    uni_949.001,    SIZE=5000,    DECOMPRESS
  7634.     14,    950_uni.001,    SIZE=5000,    DECOMPRESS
  7635.     14,    uni_950.001,    SIZE=5000,    DECOMPRESS
  7636.     14,    uni_col.001,    SIZE=5000,    DECOMPRESS
  7637.     14,    uni_mon.001,    SIZE=5000,    DECOMPRESS
  7638.  
  7639. [Files-Unicode-Korean]
  7640.     16,    1250_uni.001,    SIZE=5000,    DECOMPRESS
  7641.     16,    uni_1250.001,    SIZE=5000,    DECOMPRESS
  7642.     16,    1251_uni.001,    SIZE=5000,    DECOMPRESS
  7643.     16,    uni_1251.001,    SIZE=5000,    DECOMPRESS
  7644.     16,    1252_uni.001,    SIZE=5000,    DECOMPRESS
  7645.     16,    uni_1252.001,    SIZE=5000,    DECOMPRESS
  7646.     16,    1253_uni.001,    SIZE=5000,    DECOMPRESS
  7647.     16,    uni_1253.001,    SIZE=5000,    DECOMPRESS
  7648.     16,    1254_uni.001,    SIZE=5000,    DECOMPRESS
  7649.     16,    uni_1254.001,    SIZE=5000,    DECOMPRESS
  7650.     16,    1255_uni.001,    SIZE=5000,    DECOMPRESS
  7651.     16,    uni_1255.001,    SIZE=5000,    DECOMPRESS
  7652.     16,    1256_uni.001,    SIZE=5000,    DECOMPRESS
  7653.     16,    uni_1256.001,    SIZE=5000,    DECOMPRESS
  7654.     16,    1257_uni.001,    SIZE=5000,    DECOMPRESS
  7655.     16,    uni_1257.001,    SIZE=5000,    DECOMPRESS
  7656.     16,    874_uni.001,    SIZE=5000,    DECOMPRESS
  7657.     16,    uni_874.001,    SIZE=5000,    DECOMPRESS
  7658.     16,    932_uni.001,    SIZE=5000,    DECOMPRESS
  7659.     16,    uni_932.001,    SIZE=5000,    DECOMPRESS
  7660.     16,    936_uni.001,    SIZE=5000,    DECOMPRESS
  7661.     16,    uni_936.001,    SIZE=5000,    DECOMPRESS
  7662.     16,    949_uni.001,    SIZE=5000,    DECOMPRESS
  7663.     16,    uni_949.001,    SIZE=5000,    DECOMPRESS
  7664.     16,    950_uni.001,    SIZE=5000,    DECOMPRESS
  7665.     16,    uni_950.001,    SIZE=5000,    DECOMPRESS
  7666.     16,    uni_col.001,    SIZE=5000,    DECOMPRESS
  7667.     16,    uni_mon.001,    SIZE=5000,    DECOMPRESS
  7668.  
  7669. [Files-Unicode-Nihongo]
  7670.     18,    1250_uni.001,    SIZE=5000,    DECOMPRESS
  7671.     18,    uni_1250.001,    SIZE=5000,    DECOMPRESS
  7672.     18,    1251_uni.001,    SIZE=5000,    DECOMPRESS
  7673.     18,    uni_1251.001,    SIZE=5000,    DECOMPRESS
  7674.     18,    1252_uni.001,    SIZE=5000,    DECOMPRESS
  7675.     18,    uni_1252.001,    SIZE=5000,    DECOMPRESS
  7676.     18,    1253_uni.001,    SIZE=5000,    DECOMPRESS
  7677.     18,    uni_1253.001,    SIZE=5000,    DECOMPRESS
  7678.     18,    1254_uni.001,    SIZE=5000,    DECOMPRESS
  7679.     18,    uni_1254.001,    SIZE=5000,    DECOMPRESS
  7680.     18,    1255_uni.001,    SIZE=5000,    DECOMPRESS
  7681.     18,    uni_1255.001,    SIZE=5000,    DECOMPRESS
  7682.     18,    1256_uni.001,    SIZE=5000,    DECOMPRESS
  7683.     18,    uni_1256.001,    SIZE=5000,    DECOMPRESS
  7684.     18,    1257_uni.001,    SIZE=5000,    DECOMPRESS
  7685.     18,    uni_1257.001,    SIZE=5000,    DECOMPRESS
  7686.     18,    874_uni.001,    SIZE=5000,    DECOMPRESS
  7687.     18,    uni_874.001,    SIZE=5000,    DECOMPRESS
  7688.     18,    932_uni.001,    SIZE=5000,    DECOMPRESS
  7689.     18,    uni_932.001,    SIZE=5000,    DECOMPRESS
  7690.     18,    936_uni.001,    SIZE=5000,    DECOMPRESS
  7691.     18,    uni_936.001,    SIZE=5000,    DECOMPRESS
  7692.     18,    949_uni.001,    SIZE=5000,    DECOMPRESS
  7693.     18,    uni_949.001,    SIZE=5000,    DECOMPRESS
  7694.     18,    950_uni.001,    SIZE=5000,    DECOMPRESS
  7695.     18,    uni_950.001,    SIZE=5000,    DECOMPRESS
  7696.     18,    uni_col.001,    SIZE=5000,    DECOMPRESS
  7697.     18,    uni_mon.001,    SIZE=5000,    DECOMPRESS
  7698.  
  7699. [Files-Unicode-Portugue]
  7700.     20,    1250_uni.001,    SIZE=5000,    DECOMPRESS
  7701.     20,    uni_1250.001,    SIZE=5000,    DECOMPRESS
  7702.     20,    1251_uni.001,    SIZE=5000,    DECOMPRESS
  7703.     20,    uni_1251.001,    SIZE=5000,    DECOMPRESS
  7704.     20,    1252_uni.001,    SIZE=5000,    DECOMPRESS
  7705.     20,    uni_1252.001,    SIZE=5000,    DECOMPRESS
  7706.     20,    1253_uni.001,    SIZE=5000,    DECOMPRESS
  7707.     20,    uni_1253.001,    SIZE=5000,    DECOMPRESS
  7708.     20,    1254_uni.001,    SIZE=5000,    DECOMPRESS
  7709.     20,    uni_1254.001,    SIZE=5000,    DECOMPRESS
  7710.     20,    1255_uni.001,    SIZE=5000,    DECOMPRESS
  7711.     20,    uni_1255.001,    SIZE=5000,    DECOMPRESS
  7712.     20,    1256_uni.001,    SIZE=5000,    DECOMPRESS
  7713.     20,    uni_1256.001,    SIZE=5000,    DECOMPRESS
  7714.     20,    1257_uni.001,    SIZE=5000,    DECOMPRESS
  7715.     20,    uni_1257.001,    SIZE=5000,    DECOMPRESS
  7716.     20,    874_uni.001,    SIZE=5000,    DECOMPRESS
  7717.     20,    uni_874.001,    SIZE=5000,    DECOMPRESS
  7718.     20,    932_uni.001,    SIZE=5000,    DECOMPRESS
  7719.     20,    uni_932.001,    SIZE=5000,    DECOMPRESS
  7720.     20,    936_uni.001,    SIZE=5000,    DECOMPRESS
  7721.     20,    uni_936.001,    SIZE=5000,    DECOMPRESS
  7722.     20,    949_uni.001,    SIZE=5000,    DECOMPRESS
  7723.     20,    uni_949.001,    SIZE=5000,    DECOMPRESS
  7724.     20,    950_uni.001,    SIZE=5000,    DECOMPRESS
  7725.     20,    uni_950.001,    SIZE=5000,    DECOMPRESS
  7726.     20,    uni_col.001,    SIZE=5000,    DECOMPRESS
  7727.     20,    uni_mon.001,    SIZE=5000,    DECOMPRESS
  7728.  
  7729. [Files-Hlp-Sys32-English]
  7730.     1,        readme.cnt,        SIZE=50000,    DECOMPRESS
  7731.     1,        readme.hlp,        SIZE=50000,    DECOMPRESS
  7732.     2,        nt3using.cnt,    SIZE=50000,    DECOMPRESS
  7733.     2,        nt3using.hlp,    SIZE=50000,    DECOMPRESS
  7734.     2,        nt4using.cnt,    SIZE=50000,    DECOMPRESS
  7735.     2,        nt4using.hlp,    SIZE=50000,    DECOMPRESS
  7736.     2,        nt3setup.cnt,    SIZE=50000,    DECOMPRESS
  7737.     2,        nt3setup.hlp,    SIZE=50000,    DECOMPRESS
  7738.     2,        nt4setup.cnt,    SIZE=50000,    DECOMPRESS
  7739.     2,        nt4setup.hlp,    SIZE=50000,    DECOMPRESS
  7740.     2,        ntadmin.cnt,    SIZE=50000,    DECOMPRESS
  7741.     2,        ntadmin.hlp,    SIZE=50000,    DECOMPRESS
  7742.     2,        ntwsmgr.hlp,    SIZE=50000,    DECOMPRESS
  7743. ;    2,        nwnthelp.hlp,    SIZE=50000,    DECOMPRESS
  7744. [Files-Msg-Sys32-English]
  7745.     2,        ethertsm.msg,    SIZE=50000,    DECOMPRESS
  7746.     2,        fdditsm.msg,    SIZE=50000,    DECOMPRESS
  7747.     2,        login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  7748.     2,        tokentsm.msg,    SIZE=50000,    DECOMPRESS
  7749. [Files-Resource-Sys32-English]
  7750.     2,        login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  7751.     2,        msgsvcr.dll,    SIZE=50000,    DECOMPRESS
  7752.     2,        netwarer.dll,    SIZE=50000,    DECOMPRESS
  7753.     2,        novnpntr.dll,    SIZE=50000,    DECOMPRESS
  7754.     2,        nwcplr.dll,        SIZE=50000,    DECOMPRESS
  7755.     2,        nwevents.dll,    SIZE=50000,    DECOMPRESS
  7756.     2,        nwginar.dll,    SIZE=50000,    DECOMPRESS
  7757.     2,        nwsetupr.dll,    SIZE=50000,    DECOMPRESS
  7758.     2,        nwspoolr.dll,    SIZE=50000,    DECOMPRESS
  7759.     2,        odintmsg.dll,    SIZE=50000,    DECOMPRESS
  7760.     2,        nwrightr.dll,    SIZE=50000,    DECOMPRESS
  7761.     2,        nwshlxnr.dll,    SIZE=50000,    DECOMPRESS
  7762.     2,        lgncon32.dll,    SIZE=50000,    DECOMPRESS
  7763. [Files-Resource-Sys32-English-SAM]
  7764. ;    2,        sammigr.dll,    SIZE=50000,    DECOMPRESS
  7765.     2,        sammig.hlp,        SIZE=50000,    DECOMPRESS
  7766.     2,        appsnap.hlp,    SIZE=50000,    DECOMPRESS
  7767.     2,        appsnap.cnt,    SIZE=50000,    DECOMPRESS
  7768.     2,        install1.hlp,    SIZE=50000,    DECOMPRESS
  7769.     2,        iwsam.hlp,        SIZE=50000,    DECOMPRESS
  7770.     2,        iwsam.cnt,        SIZE=50000,    DECOMPRESS
  7771.     2,        nds.hlp,        SIZE=50000,    DECOMPRESS
  7772.     2,        nds4ntsg.hlp,    SIZE=50000,    DECOMPRESS
  7773.     2,        ndsmgr.hlp,        SIZE=50000,    DECOMPRESS
  7774.     2,        ndsmgr.cnt,        SIZE=50000,    DECOMPRESS
  7775.     2,        nwadmin.hlp,    SIZE=50000,    DECOMPRESS
  7776.     2,        nwadmin.cnt,    SIZE=50000,    DECOMPRESS
  7777.     2,        ndsfornt.hlp,    SIZE=50000,    DECOMPRESS
  7778.     2,        nwec.hlp,        SIZE=50000,    DECOMPRESS
  7779.     2,        nwmain.hlp,        SIZE=50000,    DECOMPRESS
  7780.     2,        nwref.hlp,        SIZE=50000,    DECOMPRESS
  7781.     2,        outline.hlp,    SIZE=50000,    DECOMPRESS
  7782.     2,        outline.cnt,    SIZE=50000,    DECOMPRESS
  7783.     2,        sammig.hlp,        SIZE=50000,    DECOMPRESS
  7784.     2,        schema.hlp,        SIZE=50000,    DECOMPRESS
  7785.  
  7786.  
  7787. [Files-Ini-English]
  7788.     2,        lslstats.ini,    SIZE=50000,    DECOMPRESS
  7789.     2,        odistats.ini,    SIZE=50000,    DECOMPRESS
  7790.     2,        rdrstats.ini,    SIZE=50000,    DECOMPRESS
  7791.  
  7792.  
  7793. [Files-Hlp-Sys32-Chineses]
  7794.     3,        readme.cnt,        SIZE=50000,    DECOMPRESS
  7795.     3,        readme.hlp,        SIZE=50000,    DECOMPRESS
  7796.     4,        nt3using.cnt,    SIZE=50000,    DECOMPRESS
  7797.     4,        nt3using.hlp,    SIZE=50000,    DECOMPRESS
  7798.     4,        nt4using.cnt,    SIZE=50000,    DECOMPRESS
  7799.     4,        nt4using.hlp,    SIZE=50000,    DECOMPRESS
  7800.     4,        nt3setup.cnt,    SIZE=50000,    DECOMPRESS
  7801.     4,        nt3setup.hlp,    SIZE=50000,    DECOMPRESS
  7802.     4,        nt4setup.cnt,    SIZE=50000,    DECOMPRESS
  7803.     4,        nt4setup.hlp,    SIZE=50000,    DECOMPRESS
  7804.     4,        ntadmin.cnt,    SIZE=50000,    DECOMPRESS
  7805.     4,        ntadmin.hlp,    SIZE=50000,    DECOMPRESS
  7806.     4,        ntwsmgr.hlp,    SIZE=50000,    DECOMPRESS
  7807. ;    4,        nwnthelp.hlp,    SIZE=50000,    DECOMPRESS
  7808. [Files-Msg-Sys32-Chineses]
  7809.     4,        ethertsm.msg,    SIZE=50000,    DECOMPRESS
  7810.     4,        fdditsm.msg,    SIZE=50000,    DECOMPRESS
  7811.     4,        login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  7812.     4,        tokentsm.msg,    SIZE=50000,    DECOMPRESS
  7813. [Files-Resource-Sys32-Chineses]
  7814.     4,        login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  7815.     4,        msgsvcr.dll,    SIZE=50000,    DECOMPRESS
  7816.     4,        netwarer.dll,    SIZE=50000,    DECOMPRESS
  7817.     4,        novnpntr.dll,    SIZE=50000,    DECOMPRESS
  7818.     4,        nwcplr.dll,        SIZE=50000,    DECOMPRESS
  7819.     4,        nwevents.dll,    SIZE=50000,    DECOMPRESS
  7820.     4,        nwginar.dll,    SIZE=50000,    DECOMPRESS
  7821.     4,        nwsetupr.dll,    SIZE=50000,    DECOMPRESS
  7822.     4,        nwspoolr.dll,    SIZE=50000,    DECOMPRESS
  7823.     4,        odintmsg.dll,    SIZE=50000,    DECOMPRESS
  7824.     4,        nwrightr.dll,    SIZE=50000,    DECOMPRESS
  7825.     4,        nwshlxnr.dll,    SIZE=50000,    DECOMPRESS
  7826.     4,        lgncon32.dll,    SIZE=50000,    DECOMPRESS
  7827. [Files-Resource-Sys32-English-Chineses]
  7828.     4,        migres.dll,        SIZE=50000,    DECOMPRESS
  7829. [Files-Ini-Chineses]
  7830.     4,        lslstats.ini,    SIZE=50000,    DECOMPRESS
  7831.     4,        odistats.ini,    SIZE=50000,    DECOMPRESS
  7832.     4,        rdrstats.ini,    SIZE=50000,    DECOMPRESS
  7833.  
  7834.  
  7835. [Files-Hlp-Sys32-Chineset]
  7836.     5,        readme.cnt,        SIZE=50000,    DECOMPRESS
  7837.     5,        readme.hlp,        SIZE=50000,    DECOMPRESS
  7838.     6,        nt3using.cnt,    SIZE=50000,    DECOMPRESS
  7839.     6,        nt3using.hlp,    SIZE=50000,    DECOMPRESS
  7840.     6,        nt4using.cnt,    SIZE=50000,    DECOMPRESS
  7841.     6,        nt4using.hlp,    SIZE=50000,    DECOMPRESS
  7842.     6,        nt3setup.cnt,    SIZE=50000,    DECOMPRESS
  7843.     6,        nt3setup.hlp,    SIZE=50000,    DECOMPRESS
  7844.     6,        nt4setup.cnt,    SIZE=50000,    DECOMPRESS
  7845.     6,        nt4setup.hlp,    SIZE=50000,    DECOMPRESS
  7846.     6,        ntadmin.cnt,    SIZE=50000,    DECOMPRESS
  7847.     6,        ntadmin.hlp,    SIZE=50000,    DECOMPRESS
  7848.     6,        ntwsmgr.hlp,    SIZE=50000,    DECOMPRESS
  7849. ;    6,        nwnthelp.hlp,    SIZE=50000,    DECOMPRESS
  7850. [Files-Msg-Sys32-Chineset]
  7851.     6,        ethertsm.msg,    SIZE=50000,    DECOMPRESS
  7852.     6,        fdditsm.msg,    SIZE=50000,    DECOMPRESS
  7853.     6,        login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  7854.     6,        tokentsm.msg,    SIZE=50000,    DECOMPRESS
  7855. [Files-Resource-Sys32-Chineset]
  7856.     6,        login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  7857.     6,        msgsvcr.dll,    SIZE=50000,    DECOMPRESS
  7858.     6,        netwarer.dll,    SIZE=50000,    DECOMPRESS
  7859.     6,        novnpntr.dll,    SIZE=50000,    DECOMPRESS
  7860.     6,        nwcplr.dll,        SIZE=50000,    DECOMPRESS
  7861.     6,        nwevents.dll,    SIZE=50000,    DECOMPRESS
  7862.     6,        nwginar.dll,    SIZE=50000,    DECOMPRESS
  7863.     6,        nwsetupr.dll,    SIZE=50000,    DECOMPRESS
  7864.     6,        nwspoolr.dll,    SIZE=50000,    DECOMPRESS
  7865.     6,        odintmsg.dll,    SIZE=50000,    DECOMPRESS
  7866.     6,        nwrightr.dll,    SIZE=50000,    DECOMPRESS
  7867.     6,        nwshlxnr.dll,    SIZE=50000,    DECOMPRESS
  7868.     6,        lgncon32.dll,    SIZE=50000,    DECOMPRESS
  7869. [Files-Resource-Sys32-English-Chineset]
  7870.     6,        migres.dll,        SIZE=50000,    DECOMPRESS
  7871. [Files-Ini-Chineset]
  7872.     6,        lslstats.ini,    SIZE=50000,    DECOMPRESS
  7873.     6,        odistats.ini,    SIZE=50000,    DECOMPRESS
  7874.     6,        rdrstats.ini,    SIZE=50000,    DECOMPRESS
  7875.  
  7876. [Files-Hlp-Sys32-Deutsch]
  7877.     7,        readme.cnt,        SIZE=50000,    DECOMPRESS
  7878.     7,        readme.hlp,        SIZE=50000,    DECOMPRESS
  7879.     8,        nt3using.cnt,    SIZE=50000,    DECOMPRESS
  7880.     8,        nt3using.hlp,    SIZE=50000,    DECOMPRESS
  7881.     8,        nt4using.cnt,    SIZE=50000,    DECOMPRESS
  7882.     8,        nt4using.hlp,    SIZE=50000,    DECOMPRESS
  7883.     8,        nt3setup.cnt,    SIZE=50000,    DECOMPRESS
  7884.     8,        nt3setup.hlp,    SIZE=50000,    DECOMPRESS
  7885.     8,        nt4setup.cnt,    SIZE=50000,    DECOMPRESS
  7886.     8,        nt4setup.hlp,    SIZE=50000,    DECOMPRESS
  7887.     8,        ntadmin.cnt,    SIZE=50000,    DECOMPRESS
  7888.     8,        ntadmin.hlp,    SIZE=50000,    DECOMPRESS
  7889.     8,        ntwsmgr.hlp,    SIZE=50000,    DECOMPRESS
  7890. ;    8,        nwnthelp.hlp,    SIZE=50000,    DECOMPRESS
  7891. [Files-Msg-Sys32-Deutsch]
  7892.     8,        ethertsm.msg,    SIZE=50000,    DECOMPRESS
  7893.     8,        fdditsm.msg,    SIZE=50000,    DECOMPRESS
  7894.     8,        login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  7895.     8,        tokentsm.msg,    SIZE=50000,    DECOMPRESS
  7896. [Files-Resource-Sys32-Deutsch]
  7897.     8,        login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  7898.     8,        msgsvcr.dll,    SIZE=50000,    DECOMPRESS
  7899.     8,        netwarer.dll,    SIZE=50000,    DECOMPRESS
  7900.     8,        novnpntr.dll,    SIZE=50000,    DECOMPRESS
  7901.     8,        nwcplr.dll,        SIZE=50000,    DECOMPRESS
  7902.     8,        nwevents.dll,    SIZE=50000,    DECOMPRESS
  7903.     8,        nwginar.dll,    SIZE=50000,    DECOMPRESS
  7904.     8,        nwsetupr.dll,    SIZE=50000,    DECOMPRESS
  7905.     8,        nwspoolr.dll,    SIZE=50000,    DECOMPRESS
  7906.     8,        odintmsg.dll,    SIZE=50000,    DECOMPRESS
  7907.     8,        nwrightr.dll,    SIZE=50000,    DECOMPRESS
  7908.     8,        nwshlxnr.dll,    SIZE=50000,    DECOMPRESS
  7909.     8,        lgncon32.dll,    SIZE=50000,    DECOMPRESS
  7910. [Files-Resource-Sys32-English-Deutsch]
  7911.     8,        migres.dll,        SIZE=50000,    DECOMPRESS
  7912. [Files-Ini-Deutsch]
  7913.     8,        lslstats.ini,    SIZE=50000,    DECOMPRESS
  7914.     8,        odistats.ini,    SIZE=50000,    DECOMPRESS
  7915.     8,        rdrstats.ini,    SIZE=50000,    DECOMPRESS
  7916.  
  7917. [Files-Hlp-Sys32-Espanol]
  7918.     9,        readme.cnt,        SIZE=50000,    DECOMPRESS
  7919.     9,        readme.hlp,        SIZE=50000,    DECOMPRESS
  7920.     10,    nt3using.cnt,    SIZE=50000,    DECOMPRESS
  7921.     10,    nt3using.hlp,    SIZE=50000,    DECOMPRESS
  7922.     10,    nt4using.cnt,    SIZE=50000,    DECOMPRESS
  7923.     10,    nt4using.hlp,    SIZE=50000,    DECOMPRESS
  7924.     10,    nt3setup.cnt,    SIZE=50000,    DECOMPRESS
  7925.     10,    nt3setup.hlp,    SIZE=50000,    DECOMPRESS
  7926.     10,    nt4setup.cnt,    SIZE=50000,    DECOMPRESS
  7927.     10,    nt4setup.hlp,    SIZE=50000,    DECOMPRESS
  7928.     10,    ntadmin.cnt,    SIZE=50000,    DECOMPRESS
  7929.     10,    ntadmin.hlp,    SIZE=50000,    DECOMPRESS
  7930.     10,    ntwsmgr.hlp,    SIZE=50000,    DECOMPRESS
  7931. ;    10,    nwnthelp.hlp,    SIZE=50000,    DECOMPRESS
  7932. [Files-Msg-Sys32-Espanol]
  7933.     10,    ethertsm.msg,    SIZE=50000,    DECOMPRESS
  7934.     10,    fdditsm.msg,    SIZE=50000,    DECOMPRESS
  7935.     10,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  7936.     10,    tokentsm.msg,    SIZE=50000,    DECOMPRESS
  7937. [Files-Resource-Sys32-Espanol]
  7938.     10,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  7939.     10,    msgsvcr.dll,    SIZE=50000,    DECOMPRESS
  7940.     10,    netwarer.dll,    SIZE=50000,    DECOMPRESS
  7941.     10,    novnpntr.dll,    SIZE=50000,    DECOMPRESS
  7942.     10,    nwcplr.dll,        SIZE=50000,    DECOMPRESS
  7943.     10,    nwevents.dll,    SIZE=50000,    DECOMPRESS
  7944.     10,    nwginar.dll,    SIZE=50000,    DECOMPRESS
  7945.     10,    nwsetupr.dll,    SIZE=50000,    DECOMPRESS
  7946.     10,    nwspoolr.dll,    SIZE=50000,    DECOMPRESS
  7947.     10,    odintmsg.dll,    SIZE=50000,    DECOMPRESS
  7948.     10,    nwrightr.dll,    SIZE=50000,    DECOMPRESS
  7949.     10,    nwshlxnr.dll,    SIZE=50000,    DECOMPRESS
  7950.     10,    lgncon32.dll,    SIZE=50000,    DECOMPRESS
  7951. [Files-Resource-Sys32-English-Espanol]
  7952.     10,        migres.dll,        SIZE=50000,    DECOMPRESS
  7953. [Files-Ini-Espanol]
  7954.     10,    lslstats.ini,    SIZE=50000,    DECOMPRESS
  7955.     10,    odistats.ini,    SIZE=50000,    DECOMPRESS
  7956.     10,    rdrstats.ini,    SIZE=50000,    DECOMPRESS
  7957.  
  7958. [Files-Hlp-Sys32-Francais]
  7959.     11,    readme.cnt,        SIZE=50000,    DECOMPRESS
  7960.     11,    readme.hlp,        SIZE=50000,    DECOMPRESS
  7961.     12,    nt3using.cnt,    SIZE=50000,    DECOMPRESS
  7962.     12,    nt3using.hlp,    SIZE=50000,    DECOMPRESS
  7963.     12,    nt4using.cnt,    SIZE=50000,    DECOMPRESS
  7964.     12,    nt4using.hlp,    SIZE=50000,    DECOMPRESS
  7965.     12,    nt3setup.cnt,    SIZE=50000,    DECOMPRESS
  7966.     12,    nt3setup.hlp,    SIZE=50000,    DECOMPRESS
  7967.     12,    nt4setup.cnt,    SIZE=50000,    DECOMPRESS
  7968.     12,    nt4setup.hlp,    SIZE=50000,    DECOMPRESS
  7969.     12,    ntadmin.cnt,    SIZE=50000,    DECOMPRESS
  7970.     12,    ntadmin.hlp,    SIZE=50000,    DECOMPRESS
  7971.     12,    ntwsmgr.hlp,    SIZE=50000,    DECOMPRESS
  7972. ;    12,    nwnthelp.hlp,    SIZE=50000,    DECOMPRESS
  7973. [Files-Msg-Sys32-Francais]
  7974.     12,    ethertsm.msg,    SIZE=50000,    DECOMPRESS
  7975.     12,    fdditsm.msg,    SIZE=50000,    DECOMPRESS
  7976.     12,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  7977.     12,    tokentsm.msg,    SIZE=50000,    DECOMPRESS
  7978. [Files-Resource-Sys32-Francais]
  7979.     12,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  7980.     12,    msgsvcr.dll,    SIZE=50000,    DECOMPRESS
  7981.     12,    netwarer.dll,    SIZE=50000,    DECOMPRESS
  7982.     12,    novnpntr.dll,    SIZE=50000,    DECOMPRESS
  7983.     12,    nwcplr.dll,        SIZE=50000,    DECOMPRESS
  7984.     12,    nwevents.dll,    SIZE=50000,    DECOMPRESS
  7985.     12,    nwginar.dll,    SIZE=50000,    DECOMPRESS
  7986.     12,    nwsetupr.dll,    SIZE=50000,    DECOMPRESS
  7987.     12,    nwspoolr.dll,    SIZE=50000,    DECOMPRESS
  7988.     12,    odintmsg.dll,    SIZE=50000,    DECOMPRESS
  7989.     12,    nwrightr.dll,    SIZE=50000,    DECOMPRESS
  7990.     12,    nwshlxnr.dll,    SIZE=50000,    DECOMPRESS
  7991.     12,    lgncon32.dll,    SIZE=50000,    DECOMPRESS
  7992. [Files-Resource-Sys32-English-Francais]
  7993.     12,    migres.dll,        SIZE=50000,    DECOMPRESS
  7994. [Files-Ini-Francais]
  7995.     12,    lslstats.ini,    SIZE=50000,    DECOMPRESS
  7996.     12,    odistats.ini,    SIZE=50000,    DECOMPRESS
  7997.     12,    rdrstats.ini,    SIZE=50000,    DECOMPRESS
  7998.  
  7999. [Files-Hlp-Sys32-Italiano]
  8000.     13,    readme.cnt,        SIZE=50000,    DECOMPRESS
  8001.     13,    readme.hlp,        SIZE=50000,    DECOMPRESS
  8002.     14,    nt3using.cnt,    SIZE=50000,    DECOMPRESS
  8003.     14,    nt3using.hlp,    SIZE=50000,    DECOMPRESS
  8004.     14,    nt4using.cnt,    SIZE=50000,    DECOMPRESS
  8005.     14,    nt4using.hlp,    SIZE=50000,    DECOMPRESS
  8006.     14,    nt3setup.cnt,    SIZE=50000,    DECOMPRESS
  8007.     14,    nt3setup.hlp,    SIZE=50000,    DECOMPRESS
  8008.     14,    nt4setup.cnt,    SIZE=50000,    DECOMPRESS
  8009.     14,    nt4setup.hlp,    SIZE=50000,    DECOMPRESS
  8010.     14,    ntadmin.cnt,    SIZE=50000,    DECOMPRESS
  8011.     14,    ntadmin.hlp,    SIZE=50000,    DECOMPRESS
  8012.     14,    ntwsmgr.hlp,    SIZE=50000,    DECOMPRESS
  8013. ;    14,    nwnthelp.hlp,    SIZE=50000,    DECOMPRESS
  8014. [Files-Msg-Sys32-Italiano]
  8015.     14,    ethertsm.msg,    SIZE=50000,    DECOMPRESS
  8016.     14,    fdditsm.msg,    SIZE=50000,    DECOMPRESS
  8017.     14,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8018.     14,    tokentsm.msg,    SIZE=50000,    DECOMPRESS
  8019. [Files-Resource-Sys32-Italiano]
  8020.     14,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8021.     14,    msgsvcr.dll,    SIZE=50000,    DECOMPRESS
  8022.     14,    netwarer.dll,    SIZE=50000,    DECOMPRESS
  8023.     14,    novnpntr.dll,    SIZE=50000,    DECOMPRESS
  8024.     14,    nwcplr.dll,        SIZE=50000,    DECOMPRESS
  8025.     14,    nwevents.dll,    SIZE=50000,    DECOMPRESS
  8026.     14,    nwginar.dll,    SIZE=50000,    DECOMPRESS
  8027.     14,    nwsetupr.dll,    SIZE=50000,    DECOMPRESS
  8028.     14,    nwspoolr.dll,    SIZE=50000,    DECOMPRESS
  8029.     14,    odintmsg.dll,    SIZE=50000,    DECOMPRESS
  8030.     14,    nwrightr.dll,    SIZE=50000,    DECOMPRESS
  8031.     14,    nwshlxnr.dll,    SIZE=50000,    DECOMPRESS
  8032.     14,    lgncon32.dll,    SIZE=50000,    DECOMPRESS
  8033. [Files-Ini-Italiano]
  8034.     14,    lslstats.ini,    SIZE=50000,    DECOMPRESS
  8035.     14,    odistats.ini,    SIZE=50000,    DECOMPRESS
  8036.     14,    rdrstats.ini,    SIZE=50000,    DECOMPRESS
  8037.  
  8038. [Files-Hlp-Sys32-Korean]
  8039.     15,    readme.cnt,        SIZE=50000,    DECOMPRESS
  8040.     15,    readme.hlp,        SIZE=50000,    DECOMPRESS
  8041.     16,    nt3using.cnt,    SIZE=50000,    DECOMPRESS
  8042.     16,    nt3using.hlp,    SIZE=50000,    DECOMPRESS
  8043.     16,    nt4using.cnt,    SIZE=50000,    DECOMPRESS
  8044.     16,    nt4using.hlp,    SIZE=50000,    DECOMPRESS
  8045.     16,    nt3setup.cnt,    SIZE=50000,    DECOMPRESS
  8046.     16,    nt3setup.hlp,    SIZE=50000,    DECOMPRESS
  8047.     16,    nt4setup.cnt,    SIZE=50000,    DECOMPRESS
  8048.     16,    nt4setup.hlp,    SIZE=50000,    DECOMPRESS
  8049.     16,    ntadmin.cnt,    SIZE=50000,    DECOMPRESS
  8050.     16,    ntadmin.hlp,    SIZE=50000,    DECOMPRESS
  8051.     16,    ntwsmgr.hlp,    SIZE=50000,    DECOMPRESS
  8052. ;    16,    nwnthelp.hlp,    SIZE=50000,    DECOMPRESS
  8053. [Files-Msg-Sys32-Korean]
  8054.     16,    ethertsm.msg,    SIZE=50000,    DECOMPRESS
  8055.     16,    fdditsm.msg,    SIZE=50000,    DECOMPRESS
  8056.     16,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8057.     16,    tokentsm.msg,    SIZE=50000,    DECOMPRESS
  8058. [Files-Resource-Sys32-Korean]
  8059.     16,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8060.     16,    msgsvcr.dll,    SIZE=50000,    DECOMPRESS
  8061.     16,    netwarer.dll,    SIZE=50000,    DECOMPRESS
  8062.     16,    novnpntr.dll,    SIZE=50000,    DECOMPRESS
  8063.     16,    nwcplr.dll,        SIZE=50000,    DECOMPRESS
  8064.     16,    nwevents.dll,    SIZE=50000,    DECOMPRESS
  8065.     16,    nwginar.dll,    SIZE=50000,    DECOMPRESS
  8066.     16,    nwsetupr.dll,    SIZE=50000,    DECOMPRESS
  8067.     16,    nwspoolr.dll,    SIZE=50000,    DECOMPRESS
  8068.     16,    odintmsg.dll,    SIZE=50000,    DECOMPRESS
  8069.     16,    nwrightr.dll,    SIZE=50000,    DECOMPRESS
  8070.     16,    nwshlxnr.dll,    SIZE=50000,    DECOMPRESS
  8071.     16,    lgncon32.dll,    SIZE=50000,    DECOMPRESS
  8072. [Files-Ini-Korean]
  8073.     16,    lslstats.ini,    SIZE=50000,    DECOMPRESS
  8074.     16,    odistats.ini,    SIZE=50000,    DECOMPRESS
  8075.     16,    rdrstats.ini,    SIZE=50000,    DECOMPRESS
  8076.  
  8077. [Files-Hlp-Sys32-Nihongo]
  8078.     17,    readme.cnt,        SIZE=50000,    DECOMPRESS
  8079.     17,    readme.hlp,        SIZE=50000,    DECOMPRESS
  8080.     18,    nt3using.cnt,    SIZE=50000,    DECOMPRESS
  8081.     18,    nt3using.hlp,    SIZE=50000,    DECOMPRESS
  8082.     18,    nt4using.cnt,    SIZE=50000,    DECOMPRESS
  8083.     18,    nt4using.hlp,    SIZE=50000,    DECOMPRESS
  8084.     18,    nt3setup.cnt,    SIZE=50000,    DECOMPRESS
  8085.     18,    nt3setup.hlp,    SIZE=50000,    DECOMPRESS
  8086.     18,    nt4setup.cnt,    SIZE=50000,    DECOMPRESS
  8087.     18,    nt4setup.hlp,    SIZE=50000,    DECOMPRESS
  8088.     18,    ntadmin.cnt,    SIZE=50000,    DECOMPRESS
  8089.     18,    ntadmin.hlp,    SIZE=50000,    DECOMPRESS
  8090.     18,    ntwsmgr.hlp,    SIZE=50000,    DECOMPRESS
  8091. ;    18,    nwnthelp.hlp,    SIZE=50000,    DECOMPRESS
  8092. [Files-Msg-Sys32-Nihongo]
  8093.     18,    ethertsm.msg,    SIZE=50000,    DECOMPRESS
  8094.     18,    fdditsm.msg,    SIZE=50000,    DECOMPRESS
  8095.     18,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8096.     18,    tokentsm.msg,    SIZE=50000,    DECOMPRESS
  8097. [Files-Resource-Sys32-Nihongo]
  8098.     18,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8099.     18,    msgsvcr.dll,    SIZE=50000,    DECOMPRESS
  8100.     18,    netwarer.dll,    SIZE=50000,    DECOMPRESS
  8101.     18,    novnpntr.dll,    SIZE=50000,    DECOMPRESS
  8102.     18,    nwcplr.dll,        SIZE=50000,    DECOMPRESS
  8103.     18,    nwevents.dll,    SIZE=50000,    DECOMPRESS
  8104.     18,    nwginar.dll,    SIZE=50000,    DECOMPRESS
  8105.     18,    nwsetupr.dll,    SIZE=50000,    DECOMPRESS
  8106.     18,    nwspoolr.dll,    SIZE=50000,    DECOMPRESS
  8107.     18,    odintmsg.dll,    SIZE=50000,    DECOMPRESS
  8108.     18,    nwrightr.dll,    SIZE=50000,    DECOMPRESS
  8109.     18,    nwshlxnr.dll,    SIZE=50000,    DECOMPRESS
  8110.     18,    lgncon32.dll,    SIZE=50000,    DECOMPRESS
  8111. [Files-Ini-Nihongo]
  8112.     18,    lslstats.ini,    SIZE=50000,    DECOMPRESS
  8113.     18,    odistats.ini,    SIZE=50000,    DECOMPRESS
  8114.     18,    rdrstats.ini,    SIZE=50000,    DECOMPRESS
  8115.  
  8116. [Files-Hlp-Sys32-Portugue]
  8117.     19,    readme.cnt,        SIZE=50000,    DECOMPRESS
  8118.     19,    readme.hlp,        SIZE=50000,    DECOMPRESS
  8119.     20,    nt3using.cnt,    SIZE=50000,    DECOMPRESS
  8120.     20,    nt3using.hlp,    SIZE=50000,    DECOMPRESS
  8121.     20,    nt4using.cnt,    SIZE=50000,    DECOMPRESS
  8122.     20,    nt4using.hlp,    SIZE=50000,    DECOMPRESS
  8123.     20,    nt3setup.cnt,    SIZE=50000,    DECOMPRESS
  8124.     20,    nt3setup.hlp,    SIZE=50000,    DECOMPRESS
  8125.     20,    nt4setup.cnt,    SIZE=50000,    DECOMPRESS
  8126.     20,    nt4setup.hlp,    SIZE=50000,    DECOMPRESS
  8127.     20,    ntadmin.cnt,    SIZE=50000,    DECOMPRESS
  8128.     20,    ntadmin.hlp,    SIZE=50000,    DECOMPRESS
  8129.     20,    ntwsmgr.hlp,    SIZE=50000,    DECOMPRESS
  8130. ;    20,    nwnthelp.hlp,    SIZE=50000,    DECOMPRESS
  8131. [Files-Msg-Sys32-Portugue]
  8132.     20,    ethertsm.msg,    SIZE=50000,    DECOMPRESS
  8133.     20,    fdditsm.msg,    SIZE=50000,    DECOMPRESS
  8134.     20,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8135.     20,    tokentsm.msg,    SIZE=50000,    DECOMPRESS
  8136. [Files-Resource-Sys32-Portugue]
  8137.     20,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8138.     20,    msgsvcr.dll,    SIZE=50000,    DECOMPRESS
  8139.     20,    netwarer.dll,    SIZE=50000,    DECOMPRESS
  8140.     20,    novnpntr.dll,    SIZE=50000,    DECOMPRESS
  8141.     20,    nwcplr.dll,        SIZE=50000,    DECOMPRESS
  8142.     20,    nwevents.dll,    SIZE=50000,    DECOMPRESS
  8143.     20,    nwginar.dll,    SIZE=50000,    DECOMPRESS
  8144.     20,    nwsetupr.dll,    SIZE=50000,    DECOMPRESS
  8145.     20,    nwspoolr.dll,    SIZE=50000,    DECOMPRESS
  8146.     20,    odintmsg.dll,    SIZE=50000,    DECOMPRESS
  8147.     20,    nwrightr.dll,    SIZE=50000,    DECOMPRESS
  8148.     20,    nwshlxnr.dll,    SIZE=50000,    DECOMPRESS
  8149.     20,    lgncon32.dll,    SIZE=50000,    DECOMPRESS
  8150. [Files-Ini-Portugue]
  8151.     20,    lslstats.ini,    SIZE=50000,    DECOMPRESS
  8152.     20,    odistats.ini,    SIZE=50000,    DECOMPRESS
  8153.     20,    rdrstats.ini,    SIZE=50000,    DECOMPRESS
  8154.  
  8155. [Files-Msg-Sys-English]
  8156.     2,        login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8157. [Files-Resource-Sys-English]
  8158.     2,        login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8159.     2,        netwarer.drv,    SIZE=50000,    DECOMPRESS
  8160. [Files-NtRoot-English]
  8161.     2,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8162.  
  8163. [Files-NtRoot-English-SAM]
  8164.     2,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8165.  
  8166.  
  8167. [Files-Msg-Sys-Chineses]
  8168.     4,        login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8169. [Files-Resource-Sys-Chineses]
  8170.     4,        login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8171.     4,        netwarer.drv,    SIZE=50000,    DECOMPRESS
  8172. [Files-NtRoot-Chineses]
  8173.     4,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8174.  
  8175.  
  8176. [Files-Msg-Sys-Chineset]
  8177.     6,        login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8178. [Files-Resource-Sys-Chineset]
  8179.     6,        login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8180.     6,        netwarer.drv,    SIZE=50000,    DECOMPRESS
  8181. [Files-NtRoot-Chineset]
  8182.     6,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8183.  
  8184.  
  8185. [Files-Msg-Sys-Deutsch]
  8186.     8,        login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8187. [Files-Resource-Sys-Deutsch]
  8188.     8,        login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8189.     8,        netwarer.drv,    SIZE=50000,    DECOMPRESS
  8190. [Files-NtRoot-Deutsch]
  8191.     8,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8192.  
  8193.  
  8194. [Files-Msg-Sys-Espanol]
  8195.     10,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8196. [Files-Resource-Sys-Espanol]
  8197.     10,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8198.     10,    netwarer.drv,    SIZE=50000,    DECOMPRESS
  8199. [Files-NtRoot-Espanol]
  8200.     10,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8201.  
  8202.  
  8203. [Files-Msg-Sys-Francais]
  8204.     12,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8205. [Files-Resource-Sys-Francais]
  8206.     12,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8207.     12,    netwarer.drv,    SIZE=50000,    DECOMPRESS
  8208. [Files-NtRoot-Francais]
  8209.     12,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8210.  
  8211.  
  8212. [Files-Msg-Sys-Italiano]
  8213.     14,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8214. [Files-Resource-Sys-Italiano]
  8215.     14,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8216.     14,    netwarer.drv,    SIZE=50000,    DECOMPRESS
  8217. [Files-NtRoot-Italiano]
  8218.     14,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8219.  
  8220.  
  8221. [Files-Msg-Sys-Korean]
  8222.     16,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8223. [Files-Resource-Sys-Korean]
  8224.     16,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8225.     16,    netwarer.drv,    SIZE=50000,    DECOMPRESS
  8226. [Files-NtRoot-Korean]
  8227.     16,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8228.  
  8229.  
  8230. [Files-Msg-Sys-Nihongo]
  8231.     18,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8232. [Files-Resource-Sys-Nihongo]
  8233.     18,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8234.     18,    netwarer.drv,    SIZE=50000,    DECOMPRESS
  8235. [Files-NtRoot-Nihongo]
  8236.     18,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8237.  
  8238.  
  8239. [Files-Msg-Sys-Portugue]
  8240.     20,    login.msg,        SIZE=50000,    DECOMPRESS, RENAME=login.ms~
  8241. [Files-Resource-Sys-Portugue]
  8242.     20,    login.dat,        SIZE=50000,    DECOMPRESS,    RENAME=login.da~
  8243.     20,    netwarer.drv,    SIZE=50000,    DECOMPRESS
  8244. [Files-NtRoot-Portugue]
  8245.     20,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8246.  
  8247.  
  8248. [Files-System]
  8249.     21,    loginw31.exe,    SIZE=50000,    DECOMPRESS
  8250.     21,    tli_win.dll,    SIZE=50000,    DECOMPRESS
  8251.  
  8252. [Files-System32]
  8253. ;    21,    ipxapi.dll,        SIZE=50000,    DECOMPRESS
  8254.     21,    loginwnt.exe,    SIZE=50000,    DECOMPRESS
  8255.     21,    lslstats.h,        SIZE=50000,    DECOMPRESS
  8256.     21,    ndszip.dll,        SIZE=50000,    DECOMPRESS
  8257.     21,    netware.dll,    SIZE=50000,    DECOMPRESS
  8258.     21,    novell.ani,        SIZE=50000,    DECOMPRESS
  8259.     21,    novnpnt.dll,    SIZE=50000,    DECOMPRESS
  8260. ;    21,    ntschema.exe,    SIZE=50000,    DECOMPRESS
  8261. ;    21,    nwchgpwd.exe,    SIZE=50000,    DECOMPRESS
  8262.     21,    nwfmext.dll,    SIZE=50000,    DECOMPRESS
  8263.     21,    nwgina.dll,        SIZE=50000,    DECOMPRESS
  8264.     21,    nwlscrpt.exe,    SIZE=50000,    DECOMPRESS
  8265.     21,    nwmsgsvc.exe,    SIZE=50000,    DECOMPRESS
  8266.     21,    nwpapi32.dll,    SIZE=50000,    DECOMPRESS
  8267.     21,    nwpfctrs.dll,    SIZE=50000,    DECOMPRESS
  8268.     21,    nwsipx32.dll,    SIZE=50000,    DECOMPRESS
  8269.     21,    nwsndmsg.exe,    SIZE=50000,    DECOMPRESS
  8270.     21,    nwspool.dll,    SIZE=50000,    DECOMPRESS
  8271.     21,    nwv1_0.dll,        SIZE=50000,    DECOMPRESS
  8272.     21,    odistats.h,        SIZE=50000,    DECOMPRESS
  8273.     21,    rdrstats.h,        SIZE=50000,    DECOMPRESS
  8274. ;    21,    spxapi.dll,        SIZE=50000,    DECOMPRESS
  8275.     21,    vipx.exe,        SIZE=50000,    DECOMPRESS
  8276.     21,    vipxvdd.dll,    SIZE=50000,    DECOMPRESS
  8277.     21,    vlmsup.dll,        SIZE=50000,    DECOMPRESS
  8278.     21,    vlmsup.exe,        SIZE=50000,    DECOMPRESS
  8279. ;    21,    wshnw.dll,        SIZE=50000,    DECOMPRESS
  8280.     21,    nwrights.dll,    SIZE=50000,    DECOMPRESS
  8281.     21,    nwshlxnt.dll,    SIZE=50000,    DECOMPRESS
  8282.  
  8283. [Files-System32-SAM]
  8284.     21,    samsrv.dll,    SIZE=50000,    DECOMPRESS, RENAME=nwsamsrv.dll
  8285.     21,    sammig.exe,    SIZE=50000,    DECOMPRESS
  8286.  
  8287. [Files-System32-NT3]
  8288.     21,    nwcpl.cpl,        SIZE=50000,    DECOMPRESS
  8289.  
  8290. [Files-NtRoot]
  8291. ;    21,    nwelcome.bmp,    SIZE=50000, DECOMPRESS
  8292.     21,    phasers.wav,    SIZE=50000, DECOMPRESS
  8293.  
  8294. [Files-NetWare]
  8295.     21,    ethertsm.nlm,    SIZE=50000,    DECOMPRESS
  8296.     21,    fdditsm.nlm,    SIZE=50000,    DECOMPRESS
  8297. ;    21,    ipxapi.sys,        SIZE=50000,    DECOMPRESS
  8298. ;    21,    ipxspx.sys,        SIZE=50000,    DECOMPRESS
  8299.     21,    lsl.sys,        SIZE=50000,    DECOMPRESS
  8300.     21,    nbi.sys,        SIZE=50000,    DECOMPRESS
  8301.     21,    nwfs.sys,        SIZE=50000,    DECOMPRESS
  8302.     21,    nwsipx32.sys,    SIZE=50000,    DECOMPRESS
  8303.     21,    odiload.sys,    SIZE=50000,    DECOMPRESS
  8304.     21,    resmgr.sys,        SIZE=50000,    DECOMPRESS
  8305. ;    21,    spxapi.sys,        SIZE=50000,    DECOMPRESS
  8306.     21,    sroute.sys,        SIZE=50000,    DECOMPRESS
  8307.     21,    tokentsm.nlm,    SIZE=50000,    DECOMPRESS
  8308. ;    21,    vmlid.sys,        SIZE=50000,    DECOMPRESS
  8309.  
  8310. [Files-Drivers]
  8311.     21,    odinsup.sys,    SIZE=50000,    DECOMPRESS
  8312.  
  8313. [Files-Drivers-Nwip]
  8314.     21,    nwip.sys,        SIZE=50000,    DECOMPRESS
  8315.  
  8316. [Files-32bitLibs]
  8317.     22,    audwin32.dll,    SIZE=50000,    DECOMPRESS
  8318.     22,    calwin32.dll,    SIZE=50000,    DECOMPRESS
  8319.     22,    clnwin32.dll,    SIZE=50000,    DECOMPRESS
  8320.     22,    clxwin32.dll,    SIZE=50000,    DECOMPRESS
  8321.     22,    lgnwnt32.dll,    SIZE=50000,    DECOMPRESS
  8322.     22,    loginwnt.dll,    SIZE=50000,    DECOMPRESS
  8323.     22,    ncpwin32.dll,    SIZE=50000,    DECOMPRESS
  8324.     22,    netwin32.dll,    SIZE=50000,    DECOMPRESS
  8325.     22,    nwpsrv32.dll,    SIZE=50000,    DECOMPRESS
  8326.     22,    prtwin32.dll,    SIZE=50000,    DECOMPRESS
  8327.  
  8328. [Files-3party-32bitLibs]
  8329.     22,    ctl3d32.dll,    SIZE=50000, DECOMPRESS
  8330.     22,    msvcrt40.dll,    SIZE=50000, DECOMPRESS
  8331.  
  8332. [Files-16bitXplatLibs]
  8333.     23,    audwin16.dll,    SIZE=50000,    DECOMPRESS
  8334.     23,    calwin16.dll,    SIZE=50000,    DECOMPRESS
  8335.     23,    clnwin16.dll,    SIZE=50000,    DECOMPRESS
  8336.     23,    clxwin16.dll,    SIZE=50000,    DECOMPRESS
  8337.     23,    locwin16.dll,    SIZE=50000,    DECOMPRESS
  8338.     23,    ncpwin16.dll,    SIZE=50000,    DECOMPRESS
  8339.     23,    netwin16.dll,    SIZE=50000,    DECOMPRESS
  8340.  
  8341. [Files-16bitOldLibs]
  8342.     23,    lgnw3116.dll,    SIZE=50000,    DECOMPRESS
  8343.     23,    loginw31.dll,    SIZE=50000,    DECOMPRESS
  8344.     23,    nwcalls.dll,    SIZE=50000,    DECOMPRESS
  8345.     23,    nwgdi.dll,        SIZE=50000,    DECOMPRESS
  8346. ;    23,    nwipxspx.dll,    SIZE=50000,    DECOMPRESS
  8347.     23,    nwlocale.dll,    SIZE=50000,    DECOMPRESS
  8348.     23,    nwpsrv.dll,        SIZE=50000,    DECOMPRESS
  8349.     23,    nwnet.dll,        SIZE=50000,    DECOMPRESS
  8350.     23,    pnw.dll,            SIZE=50000,    DECOMPRESS
  8351.     23,    prtwin16.dll,    SIZE=50000,    DECOMPRESS
  8352.  
  8353. [Files-16bitThunkLibs]
  8354.     23,    nwipxspx.dll,    SIZE=50000,    DECOMPRESS
  8355.     23,    netware.drv,    SIZE=50000,    DECOMPRESS,    RENAME=netware.dr~
  8356.  
  8357.  
  8358. ;-----------------------------------------------------------------------
  8359. ; LANGUAGES SUPPORTED
  8360. ; -------------------
  8361. ;
  8362. ; The languages supported by the OEM INF, For every language supported
  8363. ; we need to have a separate text section for every displayable text
  8364. ; section.
  8365. ;
  8366. ;-----------------------------------------------------------------------
  8367.  
  8368. [LanguagesSupported]
  8369.     ENG, ENGLISH
  8370.  
  8371. [Strings]
  8372.     ;
  8373.     ; Every string that is in quotes from this point to the end of the
  8374.     ; file will be pulled out and put into the translation teams database.
  8375.     ; There parser looks for the section [Strings] and then goes to the
  8376.     ; end of the file.  DO NOT put strings below this point in the file
  8377.     ; that should not be translated.  Likewise, all strings that need to
  8378.     ; be translated should be in quotes and below this point in the file.
  8379.     ;
  8380.  
  8381. [Source Media Descriptions]
  8382.     1    = "Novell IntranetWare Client for Windows NT Disk 1 (English)",            TAGFILE = NWC_1
  8383.     2    = "Novell IntranetWare Client for Windows NT Disk 2 (English)",            TAGFILE = NWC_2
  8384.     3    = "Novell IntranetWare Client for Windows NT Disk 1 (Chinese Simplified)",    TAGFILE = NWC_3
  8385.     4    = "Novell IntranetWare Client for Windows NT Disk 2 (Chinese Simplified)",    TAGFILE = NWC_4
  8386.     5    = "Novell IntranetWare Client for Windows NT Disk 1 (Chinese Traditional)",    TAGFILE = NWC_5
  8387.     6    = "Novell IntranetWare Client for Windows NT Disk 2 (Chinese Traditional)",    TAGFILE = NWC_6
  8388.     7    = "Novell IntranetWare Client for Windows NT Disk 1 (German)",            TAGFILE = NWC_7
  8389.     8    = "Novell IntranetWare Client for Windows NT Disk 2 (German)",            TAGFILE = NWC_8
  8390.     9    = "Novell IntranetWare Client for Windows NT Disk 1 (Spanish)",            TAGFILE = NWC_9
  8391.     10    = "Novell IntranetWare Client for Windows NT Disk 2 (Spanish)",            TAGFILE = NWC_10
  8392.     11    = "Novell IntranetWare Client for Windows NT Disk 1 (French)",            TAGFILE = NWC_11
  8393.     12    = "Novell IntranetWare Client for Windows NT Disk 2 (French)",            TAGFILE = NWC_12
  8394.     13    = "Novell IntranetWare Client for Windows NT Disk 1 (Italian)",            TAGFILE = NWC_13
  8395.     14    = "Novell IntranetWare Client for Windows NT Disk 2 (Italian)",            TAGFILE = NWC_14
  8396.     15    = "Novell IntranetWare Client for Windows NT Disk 1 (Korean)",            TAGFILE = NWC_15
  8397.     16    = "Novell IntranetWare Client for Windows NT Disk 2 (Korean)",            TAGFILE = NWC_16
  8398.     17    = "Novell IntranetWare Client for Windows NT Disk 1 (Japanese)",        TAGFILE = NWC_17
  8399.     18    = "Novell IntranetWare Client for Windows NT Disk 2 (Japanese)",        TAGFILE = NWC_18
  8400.     19    = "Novell IntranetWare Client for Windows NT Disk 1 (Portuguese)",        TAGFILE = NWC_19
  8401.     20    = "Novell IntranetWare Client for Windows NT Disk 2 (Portuguese)",        TAGFILE = NWC_20
  8402.     21    = "Novell IntranetWare Client for Windows NT Disk 3",                TAGFILE = NWC_21
  8403.     22    = "Novell IntranetWare Client for Windows NT Disk 4",                TAGFILE = NWC_22
  8404.     23    = "Novell IntranetWare Client for Windows NT Disk 5",                TAGFILE = NWC_23
  8405.  
  8406. ;-----------------------------------------------------------------------
  8407. ; OPTION TEXT SECTION
  8408. ; -------------------
  8409. ; These are text strings used to identify the option to the user.  There
  8410. ; are separate sections for each language supported.  The format of the
  8411. ; section name is "OptionsText" concatenated with the Language represented
  8412. ; by the section.
  8413. ;
  8414. ;-----------------------------------------------------------------------
  8415.  
  8416. [OptionsTextENG]
  8417.     NETWARE = "Novell IntranetWare Client for Windows NT"
  8418.  
  8419.  
  8420. ;-----------------------------------------------------------------------
  8421. ; Language-Dependent Dialog Constants
  8422. ;-----------------------------------------------------------------------
  8423.  
  8424. [FileConstantsENG]
  8425.     ProductNWFSDisplayName            = "Novell IntranetWare Client for Windows NT"
  8426.  
  8427.     ProductNWFSDisplayNameSAM        = "Novell NDS for NT Client"
  8428.  
  8429. ;    ProductSPXAPIDisplayName        = "Novell IntranetWare SPX Transport Interface"
  8430.  
  8431. ;    ProductIPXAPIDisplayName        = "Novell IntranetWare IPX Transport Interface"
  8432.  
  8433.     ProductNWSIPX32DisplayName        = "Novell IntranetWare IPX/SPX Transport Interface"
  8434.  
  8435.     ProductSROUTEDisplayName        = "Novell IntranetWare ODI Source Routing Support"
  8436.  
  8437. ;    ProductIPXSPXDisplayName        = "Novell IntranetWare IPX/SPX Network Transport"
  8438.  
  8439.     ProductODILOADDisplayName        = "Novell IntranetWare ODI MAC Driver Loader"
  8440.  
  8441.     ProductLSLDisplayName            = "Novell IntranetWare LSL"
  8442.  
  8443.     ProductNBIDisplayName            = "Novell IntranetWare Bus Interface"
  8444.  
  8445.     ProductRESMGRDisplayName        = "Novell IntranetWare Resource Manager"
  8446.  
  8447. ;    ProductRECONNECTDisplayName    = "Novell IntranetWare Auto Reconnect Service"
  8448.  
  8449. ;    ProductVMLIDDisplayName            = "Novell IntranetWare ODI Virtual MLID"
  8450.  
  8451.     ProductNWPOPUPDisplayName        = "Novell IntranetWare Message PopUp Service"
  8452.  
  8453.     ProductODINSUPDisplayName        = "Novell IntranetWare ODI Support for NDIS Protocols Driver"
  8454.  
  8455.     ;
  8456.     ;  Variables to support thermometer gauge and error dialogs
  8457.     ;
  8458.     
  8459.     ProCaption        = "Novell IntranetWare Client for Windows NT Setup"
  8460.     ProCaptionSAM    = "Novell NDS for NT Setup"
  8461.     ProCancel        = "Cancel"
  8462.     ProCancelMsg    = "The Novell IntranetWare Client for Windows NT is not "+
  8463.         "correctly installed.  Are you sure you want to cancel "+
  8464.         "copying files?"
  8465.     
  8466.     ProCancelCap    = "Network Setup Message"
  8467.     ProText1            = "Copying:"
  8468.     ProText2            = "To:"
  8469.     
  8470. [ProgressCopyENG]
  8471.     !p:ProCaption        = $(!p:FunctionTitle)
  8472.     !p:ProCancel        = "Cancel"
  8473.     !p:ProCancelMsg    = "Novell IntranetWare Client for Windows NT is not "+
  8474.         "correctly installed.  Are you sure you want to cancel "+
  8475.         "copying files?"
  8476.     !p:ProCancelCap    = "Setup Message"
  8477.     !p:ProText1            = "Copying:"
  8478.     !p:ProText2            = "To:"
  8479.     !p:Error                = "Unable to determine proper source disk location; copy cannot be performed."
  8480.  
  8481.  
  8482. ;----------InstallOptionENG-------------------------------------------------
  8483. ;
  8484. ; InstallOptionENG:
  8485. ;
  8486. ;     This section has all of the strings that are displayed on the screen.
  8487. ;        They are seperated so that the file can be easily transtated.
  8488. ;
  8489. ;------------------------------------------------------------------------
  8490. [InstallOptionENG]
  8491.     NetWareClientInstalledMessage = "The Novell IntranetWare Client for Windows "+
  8492.         "NT is already installed.  Please use the [UPDATE] option or remove "+
  8493.         "it and then reboot before reinstalling."
  8494.  
  8495.     RemoveMSClientMessageText = "The Microsoft Client Service for NetWare "+
  8496.         "is installed.  We will remove this before installing the Novell "+
  8497.         "IntranetWare Client for Windows NT Service.  Do you want to continue?"
  8498.     RemoveMSClientFailedMessage = "An error occurred trying to remove the "+
  8499.         "Microsoft Client Service for NetWare.  Please remove the Microsoft "+
  8500.         "Client Service for NetWare and reboot before installing the Novell "+
  8501.         "IntranetWare Client for Windows NT service."
  8502.  
  8503.     SAMServerMessage = "The Novell NDS for NT client may only be installed on "+
  8504.         "a Windows NT Server."
  8505.  
  8506.     RemoveSAMMessageText = "The Novell NDS for NT client "+
  8507.         "is installed.  If you have made user account changes in NDS they will not "+
  8508.         "be available through this server while the NDS for NT client is not present."+
  8509.         "  You may add the client again to restore access to the NDS changes."+
  8510.         "  Do you want to continue?"
  8511.  
  8512.     ClientParamError = " parameter data is not valid.  This incorrect value "+
  8513.         "is in the unattended text file.  Press NO to abort the installation "+
  8514.         "and correct the syntax error in the UNATTEND.TXT file.  Press YES "+
  8515.         "to continue using the default behavior for this variable and "+
  8516.         "complete the install."
  8517.  
  8518.     UnattendFileReadFailed = "Read File Error while trying to read and "+
  8519.         "initialize either the Novell ACU options and/or the Novell Client parameters "+
  8520.         "from the Unattended file.  The Novell Client parameters will not "+
  8521.         "be set in the registry, and any ACU installation options will not "+
  8522.         "install.  Press CANCEL to Abort the installation and correct the "+
  8523.         "syntax errors in the UNATTEND.TXT file.  Press OK to manually "+
  8524.         "complete the install of the Novell NT Client without setting the "+
  8525.         "Client parameters."
  8526.  
  8527.     UnattendParameterError = " parameter data is not valid.  This incorrect "+
  8528.         "value is in the unattended text file.  Press CANCEL to abort the "+
  8529.         "installation and correct the syntax error in the UNATTEND.TXT file.  "+
  8530.         "Press OK to complete the install without setting this Client parameter."
  8531.  
  8532.     UnattendTreeServerParameterError = " parameter data is not valid.  These incorrect "+
  8533.         "values are in the unattended text file.  Press CANCEL to abort the "+
  8534.         "installation and correct the syntax error in the UNATTEND.TXT file.  "+
  8535.         "Press OK to complete the install without setting these Client parameters."
  8536.  
  8537.     ExtendedFunctionFailedMessage = "An Error occurred while installing the "+
  8538.         "Novell IntranetWare Client for Windows NT extended services."
  8539.  
  8540.     UpgradeButtonMessage = "Due to major changes in the function of our "+
  8541.         "client, the UPDATE button is not supported with this version.  "+
  8542.         "Please remove the Novell IntranetWare Client for Windows NT and "+
  8543.         "then reboot before installing the new version."
  8544.  
  8545.     ReplaceGINAMessageTitle = "Install Novell IntranetWare GINA Authenticator"
  8546.  
  8547.     ReplaceGINAMessageText = "Novell IntranetWare Client for Windows NT has "+
  8548.         "detected another 3rd party GINA authenticator installed.  "+
  8549.         "Do you want to replace it with the Novell IntranetWare Client "+
  8550.         "for Windows NT GINA authenticator?"
  8551.  
  8552.     InstallNWLinkMessageTitle = "Install NWLINK Protocol"
  8553.  
  8554.     InstallNWLinkMessageText = "NWLINK IPX Protocol is NOT installed.  "+
  8555.         "The Novell IntranetWare Client for Windows NT will not function unless "+
  8556.         "it is installed.  Install it now?"
  8557.  
  8558.     InstallNetWareIPMessageTitle = "Install NetWareIP Support"
  8559.  
  8560.     InstallNetWareIPMessageText = "Would you like to install "+
  8561.         "NetWareIP support?"
  8562.  
  8563.     NoLanAdapterInstalledTitle = "LAN Adapter not installed"
  8564.  
  8565.     NoLanAdapterInstalledText = "Novell IntranetWare Client for Windows NT could "+
  8566.         "not detect either a LAN adapter or Remote Access WAN adapter "+
  8567.         "to bind with."
  8568.  
  8569.     NoDiskSpaceTitle = "Not enough disk space"
  8570.  
  8571.     NoDiskSpaceText = "Novell IntranetWare Client for Windows NT detected that "+
  8572.         "there is not enough free disk space on the system drive.  There "+
  8573.         "must be at least 10 megabytes of free disk space on the system drive."
  8574.  
  8575.     ShellCodeErrorTitle = "Error:  Novell IntranetWare Client for Windows NT"
  8576.  
  8577.     ShellCodeErrorText = "Shell Code Error"
  8578.  
  8579.     WrongNTVersionMessage = "The Novell IntranetWare Client for Windows NT is not "+
  8580.         "supported on this version of Windows NT."
  8581.  
  8582.     FunctionTitle = "Novell IntranetWare Client for Windows NT Setup"
  8583.  
  8584.     FunctionTitleSAM = "Novell NDS for NT Setup"
  8585.  
  8586.     LoadDisk1Text = "Please load the Novell IntranetWare Client for Windows NT "+
  8587.         "disk 1 into drive "
  8588.  
  8589.     LoadDisk2Text = "Please load the Novell IntranetWare Client for Windows NT "+
  8590.         "disk 2 into drive "
  8591.  
  8592.     LoadDisk3Text = "Please load the Novell IntranetWare Client for Windows NT "+
  8593.         "disk 3 into drive "
  8594.  
  8595.     OldNetWareGroup = "NetWare"
  8596.  
  8597.     NetWareGroup = "IntranetWare"
  8598.  
  8599.     LoginIconText = "IntranetWare Login"
  8600.  
  8601.     ChangePasswordIconText = "IntranetWare Change Password"
  8602.  
  8603.     SendMessageIconText = "IntranetWare Send Message"
  8604.  
  8605.     ReadMeIconText = "ReadMe"
  8606.  
  8607.     HelpIconText = "IntranetWare Client for WinNT help"
  8608.  
  8609.     MigIconText = "Domain Object Wizard"
  8610.     
  8611.     DefaultLoginCaption = "Begin Login"
  8612.  
  8613. [DoAskSourceENG]
  8614.     NetWareDlgText = "Please enter the full path to the Novell IntranetWare "+
  8615.         "Client for Windows NT distribution files.  Then choose Continue."
  8616.     
  8617. [DialogConstantsENG]
  8618.     Help                                = "&Help"
  8619.     Exit                                = "&Cancel"
  8620.     OK                                    = "&OK"
  8621.     HelpContext                        = ""
  8622.     Continue                            = "Con&tinue"
  8623.     Cancel                            = "&Cancel"
  8624.     Advanced                            = "&Advanced"
  8625.     IDH_NETWAREWRKSTATIONPARMS    = 901
  8626.     IDH_NETWAREIPXBIND            = 902
  8627.     IDH_IPXSPXPARMS                = 903
  8628.     IDH_NETWORKPROTOCOL            = 904
  8629.     IDH_NETWAREODISETTINGS        = 905
  8630.     IDH_NETWARECLIENTINSTALL    = 906
  8631.     IDH_NETWARENDISODI            = 907
  8632.     IDH_NODEADDRESSOVERIDE        = 908
  8633.     IDH_NWIP                            = 909
  8634.     IDH_RESMGRCONFIG                = 951
  8635.  
  8636. [OdinsupDlgENG]
  8637.     DlgType = "RadioCombination"
  8638.     DlgTemplate = "ONELIST"
  8639.     Caption = "IntranetWare NDIS over ODI (ODINSUP) Setup"
  8640.     Label1 = "Installed ODI Adapters"
  8641.     EditTextIn = ""
  8642.     EditTextLim = ""
  8643.     CBOptionsGreyed = {}
  8644.     HelpContext = $(IDH_NETWARENDISODI)
  8645.     ComboListItemsIn = { OdiTitleList }
  8646.     ComboListItemsOut = { DefaultOdiTitle }
  8647.     NotifyFields = { "NO" }
  8648.