home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 January / CHIPCD1_98.iso / software / testsoft / nds / i386 / nls / english / oemnsvip.in_ / oemnsvip.in
Text File  |  1997-08-20  |  48KB  |  1,673 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMNSVIP.INF
  4. ;
  5. ;        Novell NetWare/IP SETUP INF file.
  6. ;
  7. ;***********************************************************************
  8.  
  9. ;
  10. ; The following is the version info for Novell
  11. ;
  12.  
  13. ;VeRsIoN=v4.10 Novell Client Install for Windows NT (970414)
  14. ;CoPyRiGhT=copyright 1992-1997, by Novell, INC. All rights reserved.
  15.  
  16. [Identification]
  17.     OptionType = NetService
  18.  
  19. [Options]
  20.     NetWareIP
  21.  
  22. [FileConstants]
  23.     UtilityInf        = "UTILITY.INF"
  24.     subroutineinf    = "SUBROUTN.INF"
  25.     NwSubsInf        = "NWSUBS.INF"
  26.     SoftwareType    = "driver"
  27.     Exit_Code        = 0
  28.     DriverToLoad    = ""
  29.  
  30.     ;
  31.     ; EventLog Message File
  32.     ;
  33.     
  34.     NetEventDLL    = "%SystemRoot%\System32\nls\"$(NLSDirName)"\nwevents.dll"
  35.     IoLogMsgDLL    = "%SystemRoot%\System32\IoLogMsg.dll"
  36.     
  37.     ;
  38.     ; Software
  39.     ;
  40.     
  41.     ProductSoftwareName            = "NetWareIP"
  42.     ProductSoftwareImagePath    = "\SystemRoot\system32\drivers\nwip.sys"
  43.     NetRuleSoftwareType            = "NetWareIPSys NetWareIPDriver"
  44.     NetRuleSoftwareUse            = $(SoftwareType)
  45.     NetRuleSoftwareBindForm        = """NetWareIPSys"" yes no container"
  46.     NetRuleSoftwareClass            = {"NetWareIPDriver basic"}
  47.     NetRuleSoftwareBindable        = {"NetWareIPDriver NetWareIPAdapter non exclusive 100"}
  48.     
  49.     ;
  50.     ; Hardware
  51.     ;
  52.     
  53.     ProductHardwareName                = "NetWareIP"
  54.     NetRuleHardwareType                = "NetWareIP NetWareIPAdapter"
  55.     NetRuleHardwareBindForm            = " yes yes container"
  56.     NetRuleHardwareClass                = {"NetWareIPAdapter basic"}
  57.     
  58.     ;
  59.     ; Registry Key
  60.     ;
  61.     
  62.     ProductKeyName    = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  63.     ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  64.  
  65.  
  66. [GeneralConstants]
  67.     ;
  68.     ; Program Flow control variables
  69.     ;
  70.     
  71.     from    = ""
  72.     to        = ""
  73.     
  74.     
  75.     ;
  76.     ; Return Codes; Exit_Code is set to one of these
  77.     ;
  78.     
  79.     ExitCodeOk                = 0
  80.     ExitCodeCancel            = 1
  81.     ExitCodeFatal            = 2
  82.     
  83.     KeyNull                    = ""
  84.     MAXIMUM_ALLOWED        = 33554432
  85.     RegistryErrorIndex    = NO_ERROR
  86.     KeyProduct                = ""
  87.     KeyParameters            = ""
  88.     
  89.     TRUE                        = 1
  90.     FALSE                        = 0
  91.     NoTitle                    = 0
  92.     
  93.     ExitState                = "Active"
  94.     OldVersionExisted        = $(FALSE)
  95.     
  96.     DriverPath                = $(!STF_NTPATH)\drivers
  97.  
  98.     ;
  99.     ; Product Info
  100.     ;
  101.     
  102.     Manufacturer            = "Novell"
  103.     ProductMajorVersion    = 4
  104.     ProductMinorVersion    = 00
  105.     ProductVersion            = $(ProductMajorVersion)"."$(ProductMinorVersion)
  106.     
  107.  
  108.  
  109. ;------------------------------------------------------------------------------
  110. ; 1. Identify    To verify that this INF deals with the smae type of options
  111. ;        as we are choosing currently.
  112. ;
  113. ; Input:    none
  114. ;
  115. ; Output:    $($R0):    STATUS:    STATUS_SUCCESSFUL
  116. ;        $($R1):    Option Type (COMPUTER ...)
  117. ;        $($R2):    Diskette Description
  118. ;------------------------------------------------------------------------------
  119.  
  120. [Identify]
  121.     read-syms Identification
  122.     set Status     = STATUS_SUCCESSFUL
  123.     set Identifier = $(OptionType)
  124.     set Media        = #("Source Media Descriptions", 1, 1)
  125.  
  126.     Return $(Status) $(Identifier) $(Media)
  127.  
  128. ;------------------------------------------------------------------------------
  129. ; 2. ReturnOptions    To return the option list supported by this INF and
  130. ;            the localized text list representing the options.
  131. ; Input:    $($0):    Lang. used (ENG | FRN | ....)
  132. ;
  133. ; Output:    $($R0):    STATUS:    STATUS_SUCCESSFUL    |
  134. ;                STATUS_NOLANGUAGE    |
  135. ;                STATUS_FAILED        |
  136. ;                STATUS_NOTSUPPORTED
  137. ;        $($R1):    Option List
  138. ;        $($R2):    Option Text List
  139. ;
  140. ;------------------------------------------------------------------------------
  141.  
  142. [ReturnOptions]
  143.     set Status        = STATUS_FAILED
  144.     set OptionList     = {}
  145.     set OptionTextList = {}
  146.  
  147.     ;
  148.     ; Check if the language requested is supported
  149.     ;
  150.  
  151.     set LanguageList = ^(LanguagesSupported, 1)
  152.  
  153.     Ifcontains(i) $($0) in $(LanguageList)
  154.         goto returnoptions
  155.     else
  156.         set Status = STATUS_NOLANGUAGE
  157.         goto finish_ReturnOptions
  158.     endif
  159.  
  160.     ;
  161.     ; form a list of all the options and another of the text representing
  162.     ;
  163.  
  164. returnoptions = +
  165.     set OptionList            = ^(Options, 1)
  166.     set OptionTextList    = ^(OptionsText$($0), 1)
  167.     set Status                = STATUS_SUCCESSFUL
  168.  
  169. finish_ReturnOptions = +
  170.     Return $(Status) $(OptionList) $(OptionTextList)
  171.  
  172.  
  173.  
  174. ;------------------------------------------------------------------------------
  175. ; 2. InstallOption    This section is shelled to by main installation processing
  176. ;
  177. ; Function:    To copy files representing Options
  178. ;        To configure the installed option
  179. ;        To update the Registry for the installed option
  180. ;
  181. ; Input:    $($0):    Lang. to use
  182. ;        $($1):    OptionID to install
  183. ;        $($2):    SourceDirectory
  184. ;        $($3):    AddCopy        ( YES | NO )
  185. ;        $($4):    DoCopy        ( YES | NO )
  186. ;        $($5):    DoConfig    ( YES | NO )
  187. ;
  188. ; Output:    $($R0):    STATUS:    STATUS_SUCCESSFUL    |
  189. ;                STATUS_NOLANGUAGE    |
  190. ;                STATUS_USERCANCEL    |
  191. ;                STATUS_FAILED        |
  192. ;                STATUS_NOTSUPPORTED
  193. ;
  194. ;------------------------------------------------------------------------------
  195.  
  196. [InstallOption]
  197.  
  198.     ;
  199.     ; Set default values for
  200.     ;
  201.  
  202.     set Status    = STATUS_FAILED
  203.  
  204.     ;
  205.     ; extract parameters
  206.     ;
  207.  
  208.     set Option    = $($1)
  209.     set !SrcDir    = $($2)
  210.     set !AddCopy    = $($3)
  211.     set !DoCopy    = $($4)
  212.     set !DoConfig = $($5)
  213.  
  214.     ;
  215.     ; Check if the language requested is supported
  216.     ;
  217.  
  218.     set LanguageList = ^(LanguagesSupported, 1)
  219.     Ifcontains(i) $($0) in $(LanguageList)
  220.         goto installoption
  221.     else
  222.         set Status = STATUS_NOLANGUAGE
  223.         goto finish_InstallOption
  224.     endif
  225.  
  226. installoption = +
  227.  
  228.     ;
  229.     ; Call the CommonSection
  230.     ;
  231.  
  232.     shell "" CommonSection $(Option)
  233.     set Status = $($R0)
  234.     ifstr(i) $($R1) != ""
  235.         set DriverToLoad = { $($R1) }
  236.     else
  237.         set DriverToLoad = ""
  238.     endif
  239.     Return $(Status) $(DriverToLoad)
  240.  
  241.  
  242. [CommonSection]
  243.     StartWait
  244.     set Option = $($0)
  245.  
  246.     read-syms GeneralConstants
  247.  
  248.     ;
  249.     ; Find what NLS directory is being used
  250.     ;
  251.  
  252.     set NovellParameters = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\Parameters"
  253.     Debug-OutPut "NovellParameters is "$(NovellParameters)
  254.     OpenRegKey $(!REG_H_LOCAL) "" $(NovellParameters) $(MAXIMUM_ALLOWED) KeyNovellParameters
  255.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  256.         GetRegValue $(KeyNovellParameters) "NWLanguage" LanguageList
  257.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  258.             set NLSDirName = *($(LanguageList), 4)
  259.         else
  260.             goto fatalregistry
  261.         endif
  262.         CloseRegKey $(KeyNovellParameters)
  263.     else
  264.         goto fatalregistry
  265.     Endif
  266.  
  267.     ;
  268.     ; Get NT version
  269.     ;
  270.  
  271.     set CurrentVersion = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion"
  272.     OpenRegKey $(!REG_H_LOCAL) "" $(CurrentVersion) $(MAXIMUM_ALLOWED) CurrentVersionKey
  273.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  274.         GetRegValue $(CurrentVersionKey) "CurrentVersion" VersionList
  275.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  276.             set VersionListData = *($(VersionList), 4)
  277.             Split-string $(VersionListData) "." SplitVersionList
  278.             Set NTMajorVersion = *($(SplitVersionList), 1)
  279.             Set NTMinorVersion = *($(SplitVersionList), 3)
  280.  
  281.             Debug-OutPut "OEMNSVIP.INF: Windows NT current version is "$(VersionListData)
  282.             Debug-OutPut "OEMNSVIP.INF: Windows NT Major version is "$(NTMajorVersion)
  283.             Debug-OutPut "OEMNSVIP.INF: Windows NT Minor version is "$(NTMinorVersion)
  284.         else
  285.             Debug-Output "OEMNSVIP.INF:  Error getting NT version"
  286.         endif
  287.         CloseRegKey $(CurrentVersionKey)
  288.     else
  289.         Debug-Output "OEMNSVIP.INF:  Error opening "$(CurrentVersion)
  290.     endif
  291.  
  292.     set-subst LF = "\n"
  293.     read-syms FileConstants
  294.     read-syms FileConstants$(!STF_LANGUAGE)
  295.     read-syms InstallOption$(!STF_LANGUAGE)
  296.     detect date
  297.     set-title    $(FunctionTitle)
  298.     set to    = Begin
  299.     set from = Begin
  300.     set CommonStatus = STATUS_SUCCESSFUL
  301.     EndWait
  302.  
  303.     set CurrentVersion = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion"
  304.     OpenRegKey $(!REG_H_LOCAL) "" $(CurrentVersion) $(MAXIMUM_ALLOWED) CurrentVersionKey
  305.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  306.         GetRegValue $(CurrentVersionKey) "CurrentVersion" VersionList
  307.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  308.             set VersionListData = *($(VersionList), 4)
  309.             Split-string $(VersionListData) "." SplitVersionList
  310.             Set NTMajorVersion = *($(SplitVersionList), 1)
  311.             Set NTMinorVersion = *($(SplitVersionList), 3)
  312.  
  313.             Debug-OutPut "Windows NT current version is "$(VersionListData)
  314.             Debug-OutPut "Windows NT Major version is "$(NTMajorVersion)
  315.             Debug-OutPut "Windows NT Minor version is "$(NTMinorVersion)
  316.  
  317.         else
  318.             Debug-Output "OEMNPRNW.INF:  Error getting NT version"
  319.         endif
  320.         CloseRegKey $(CurrentVersionKey)
  321.     else
  322.         Debug-Output "OEMNPRNW.INF:  Error opening "$(CurrentVersion)
  323.     endif
  324.  
  325. Begin = +
  326.     Set !G:DebugOutputControl = 0
  327.     Debug-Output "OEMNSVIP.INF: Begin Install Mode = "$(!NTN_InstallMode)
  328.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  329.         set StartLabel = removeadapter
  330.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  331.         set StartLabel = updateadapter
  332.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  333.         set StartLabel = bindadapter
  334.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  335.         set StartLabel = configureadapter
  336.  
  337.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  338.             Debug-Output "OEMNSVIP.INF:  Can't configure the Novell NetWareIP driver software."
  339.             Shell $(UtilityInf), RegistryErrorString, CANNOT_CONFIGURE_SOFTWARE
  340.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  341.                 Debug-Output "OEMNSVIP.INF:  ShellCode error:  can't get an error string."
  342.                 goto ShellCodeError
  343.             endif
  344.             set Error = $($R0)
  345.             set from = end
  346.             set to = end
  347.             goto Warning
  348.         endif
  349.  
  350.     else
  351.         set StartLabel = installadapter
  352.         set OEM_ABANDON_OPTIONS = {}
  353.         set OEM_ABANDON_SOFTWARE = FALSE
  354.         set OEM_ABANDON_ON = TRUE
  355.     endif
  356.     set from = $(fatal)
  357.     set to = $(fatal)
  358.     goto $(StartLabel)
  359.  
  360.  
  361. installadapter = +
  362.     Debug-Output "OEMNSVIP.INF:  Installing NetWareIP adapter"
  363.  
  364.     ;
  365.     ;    Check whether the same version of the software exists
  366.     ;
  367.  
  368.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NetWareIP" $(MAXIMUM_ALLOWED) KeyProduct
  369.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  370.  
  371.         ;
  372.         ; Same version already existed in the local machine
  373.         ;
  374.  
  375.         CloseRegKey $(KeyProduct)
  376.  
  377.         Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(NetWareIPInstalledMessage)
  378.  
  379.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  380.             goto ShellCodeError
  381.         endif
  382.  
  383.         set CommonStatus = STATUS_USERCANCEL
  384.         goto end
  385.     endif
  386.  
  387. ;    OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  388. ;    Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  389. ;        CloseRegKey $(KeyProduct)
  390. ;        ifstr(i) $(!NTN_RegBase) == $(ProductKeyName)
  391. ;            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle), $(ProductVersion)
  392. ;            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  393. ;                Debug-Output $(!STF_ONTEXTINFNAME)":  ShellCode error:  can't get an error string."
  394. ;                goto ShellCodeError
  395. ;            endif
  396. ;            goto end
  397. ;        else
  398. ;            Shell $(UtilityInf), CardExistedDlg
  399. ;            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  400. ;                Debug-Output "OEMNSVIP.INF:  ShellCode error:  can't get an error string."
  401. ;                goto ShellCodeError
  402. ;            endif
  403. ;            ifstr(i) $($R1) != "OK"
  404. ;                goto end
  405. ;            endif
  406. ;            set OldVersionExisted = $(TRUE)
  407. ;        endif
  408. ;    endif
  409.  
  410.     ;
  411.     ; Is this an Advanced Server
  412.     ;
  413.  
  414.     Debug-Output "OEMNSVIP.INF:  Checking to see if advanced server"
  415.     set CanInstall = "NO"
  416.     Set TempKeyName = "SYSTEM\CurrentControlSet\Control\ProductOptions"
  417.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  418.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  419.         Set ValueName = "ProductType"
  420.         GetRegValue $(TempKey) $(ValueName) ValueList
  421.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  422.             set ValueListData = *($(ValueList), 4)
  423.             ifstr(i) $(ValueListData) == "WinNT"
  424.                 set CanInstall = "YES"
  425.                 Debug-Output "OEMNSVIP.INF:  Can install is "$(CanInstall)
  426.             endif
  427.         else
  428.             Debug-Output "OEMNSVIP.INF:  Failed to get ProductType"
  429.         endif
  430.         CloseRegKey $(TempKey)
  431.     else
  432.         Debug-Output "OEMNSVIP.INF:  Failed to open ProductOptions key"
  433.     endif
  434.     
  435. ;    ifstr(i) $(CanInstall) == "NO"
  436. ;        set DlgType            = "MessageBox"
  437. ;        set STF_MB_TITLE    = $(NetWareIPOnASMessageTitle)
  438. ;        set STF_MB_TEXT    = $(NetWareIPOnASMessageText)
  439. ;        set STF_MB_TYPE    = 1
  440. ;        set STF_MB_ICON    = 3
  441. ;        set STF_MB_DEF        = 1
  442. ;        ui start "NetWareIPOnAS"
  443. ;
  444. ;        set CommonStatus = STATUS_USERCANCEL
  445. ;        goto end
  446. ;    endif
  447.  
  448.     ;
  449.     ; Install TCPIP if not already installed.  NetWareIP depends on TCPIP.
  450.     ;
  451.  
  452.     Debug-Output "OEMNSVIP.INF:  Checking if TCPIP is installed"
  453.     shell "" Install-TCPIP
  454.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  455.         Debug-Output "OEMNSVIP.INF:  Install-TCPIP ShellCode error "$($ShellCode)
  456.         goto ShellCodeError
  457.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  458.         Debug-Output "OEMNSVIP.INF:  Install-TCPIP returned error"
  459.         goto fatal
  460.     endif
  461.  
  462.     ;
  463.     ; Start the adapter install stuff
  464.     ;
  465.  
  466.     ;
  467.     ; Add the software component
  468.     ;
  469.  
  470.     ifint $(NTMajorVersion) == "4"
  471.         set GroupToJoin = "NDIS"
  472.     else
  473.         set GroupToJoin = ""
  474.     endif
  475.  
  476.  
  477.     ifint $(OldVersionExisted) == $(FALSE)
  478.         Debug-Output "OEMNSVIP.INF: First Time Install"
  479.         Shell $(UtilityInf), AddSoftwareComponent +
  480.             $(Manufacturer), +
  481.             $(ProductSoftwareName), +
  482.             $(ProductSoftwareName), +
  483.             $(ProductSoftwareTitle), +
  484.             $(STF_CONTEXTINFNAME), +
  485.             $(ProductSoftwareImagePath), +
  486.             "kernelautostart", +
  487.             $(GroupToJoin), +
  488.             "", +
  489.             "", +
  490.             $(NetEventDLL)
  491.  
  492.         Set OEM_ABANDON_SOFTWARE = TRUE
  493.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  494.             Debug-Output "OEMNSVIP.INF: AddSoftwareComponent ShellCode error "$($ShellCode)
  495.             goto ShellCodeError
  496.         endif
  497.         set RegistryErrorIndex = $($R0)
  498.         set KeyProduct        = $($R1)
  499.         Set SoftNetRulesKey = $($R2)
  500.         CloseRegKey $($R3)
  501.         CloseRegKey $($R4)
  502.         CloseRegKey $($R5)
  503.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  504.             EndWait
  505.             Debug-Output "OEMNSVIP.INF: AddSoftwareComponent Registry error "$(RegistryErrorIndex)
  506.             CloseRegKey $(KeyProduct)
  507.             CloseRegKey $(SoftNetRulesKey)
  508.             goto fatalregistry
  509.         endif
  510.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  511.                     {Hidden,$(NoTitle),$(!REG_VT_DWORD),1},+
  512.                     {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  513.                     {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  514.                     {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  515.                     {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  516.                     {Review,$(NoTitle),$(!REG_VT_DWORD),1},+
  517.                     {PathName,$(NoTitle),$(!REG_VT_SZ),$(!STF_CWDDIR)},+
  518.                     {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  519.                     {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  520.         Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  521.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  522.             Debug-Output "OEMNSVIP.INF:  AddValueList ShellCode error "$($ShellCode)
  523.             goto ShellCodeError
  524.         endif
  525.         set RegistryErrorIndex = $($R0)
  526.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  527.             EndWait
  528.             Debug-Output "OEMNSVIP.INF: AddValueList Registry error "$(RegistryErrorIndex)
  529.             CloseRegKey $(KeyProduct)
  530.             CloseRegKey $(SoftNetRulesKey)
  531.             goto fatalregistry
  532.         endif
  533.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  534.                     {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  535.                     {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  536.                     {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  537.                     {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  538.                     {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}, +
  539.                     {Infname ,$(NoTitle),$(!REG_VT_SZ),$(STF_CONTEXTINFNAME)} }
  540.         Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  541.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  542.             Debug-Output "OEMNSVIP.INF: AddValueList ShellCode error "$($ShellCode)
  543.             goto ShellCodeError
  544.         endif
  545.         set RegistryErrorIndex = $($R0)
  546.         CloseRegKey $(KeyProduct)
  547.         CloseRegKey $(SoftNetRulesKey)
  548.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  549.             EndWait
  550.             Debug-Output "OEMNSVIP.INF: AddValueList Registry error "$(RegistryErrorIndex)
  551.             goto fatalregistry
  552.         endif
  553.     endif
  554.  
  555.     ;
  556.     ; Add the hardware component at board two or later
  557.     ;
  558.  
  559.     ;
  560.     ; If on NT 4.00 machine, add the board five times
  561.     ; Otherwise, add it once
  562.     ;
  563.  
  564.     set Count = 0
  565.     ifint $(NTMajorVersion) == "4"
  566.         set endCount = 5
  567.     else
  568.         set endCount = 1
  569.     endif
  570.  
  571. StartHardwareInstallation = +
  572.  
  573.     ifint $(Count) < $(endCount)
  574.         ifint $(Count) > 0
  575.             set HideIt = 1
  576.         else
  577.             set HideIt = 0
  578.         endif
  579.  
  580.         Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName),"","","2"
  581.         ifint $($R4) != -1
  582.             Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  583.         endif
  584.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  585.             Debug-Output "OEMNSVIP.INF: AddHardwareComponent Shell error "$($ShellCode)
  586.             goto ShellCodeError
  587.         endif
  588.  
  589.         set RegistryErrorIndex = $($R0)
  590.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  591.             EndWait
  592.             Debug-Output "OEMNSVIP.INF: AddHardwareComponent Registry error "$(RegistryErrorIndex)
  593.             CloseRegKey $($R1)
  594.             CloseRegKey $($R2)
  595.             CloseRegKey $($R3)
  596.             goto fatalregistry
  597.         endif
  598.         set KeyParameters = $($R3)
  599.         set KeyAdapterRules = $($R2)
  600.         set AdapterNumber = $($R4)
  601.         set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  602.                     {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  603.                     {Hidden,$(NoTitle),$(!REG_VT_DWORD),$(HideIt)},+
  604.                     {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  605.                     {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  606.                     {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  607.                     {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  608.  
  609.         Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  610.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  611.             Debug-Output "OEMNSVIP.INF: AddValueList ShellCode error "$($ShellCode)
  612.             goto ShellCodeError
  613.         endif
  614.         CloseRegKey $($R1)
  615.         set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  616.         set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  617.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  618.                 {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  619.                 {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  620.                 {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}, +
  621.                 {Infname ,$(NoTitle),$(!REG_VT_SZ),$(STF_CONTEXTINFNAME)}}
  622.  
  623.         Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  624.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  625.             Debug-Output "OEMNSVIP.INF: AddValueList ShellCode error "$($ShellCode)
  626.             goto ShellCodeError
  627.         endif
  628.         set RegistryErrorIndex = $($R0)
  629.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  630.             EndWait
  631.             Debug-Output "OEMNSVIP.INF: AddValueList Registry error "$(RegistryErrorIndex)
  632.             CloseRegKey $(KeyParameters)
  633.             CloseRegKey $(KeyAdapterRules)
  634.             goto fatalregistry
  635.         endif
  636.     
  637.         CloseRegKey $(KeyAdapterRules)
  638.  
  639.         set-add Count = $(Count), 1
  640.         goto StartHardwareInstallation
  641.  
  642.     endif
  643.  
  644.     Ifstr(i) $(CalledFromUpdate) == "YES"
  645.         goto ReturnToUpdate
  646.     endif
  647.  
  648.     ;
  649.     ; By default depend on TCPIP
  650.     ;
  651.  
  652.     set DependOnList = {"Tcpip"}
  653.  
  654.     ;
  655.     ; If NT 3.51 Machine, check to see if DHCP is installed.  If it is
  656.     ; depend on it.
  657.     ;
  658.  
  659.     ifint $(NTMajorVersion) == "3"
  660.         Debug-Output "OEMNSVIP.INF:  Check to see if DHCP is installed"
  661.     
  662.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\DHCP" $(MAXIMUM_ALLOWED) KeyDHCP
  663.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  664.     
  665.             ;
  666.             ; Check to see if the service is set to start
  667.             ;
  668.     
  669.             GetRegValue $(KeyDHCP) "Start" StartList
  670.             Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  671.                 Set StartValue = *($(StartList), 4)
  672.                 Ifint $(StartValue) < 3
  673.     
  674.                     ;
  675.                     ; Make NetWareIP depend on the service DHCP
  676.                     ;
  677.     
  678.                     Debug-Output "OEMNSVIP.INF:  Make NetWareIP depend on DHCP service"
  679.                     set DependOnList = {"DHCP"}
  680.                 Endif
  681.             Endif
  682.     
  683.             CloseRegKey $(KeyDHCP)
  684.         Endif
  685.     endif
  686.  
  687.     set TempKeyName = $(!NTN_ServiceBase)"\NetWareIP\Linkage"
  688.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  689.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  690.         SetRegValue $(TempKey) {"OtherDependencies", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DependOnList)}
  691.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  692.             Debug-Output "OEMNSVIP.INF:  Can't set NetWareIP linkage key"
  693.             goto fatalregistry
  694.         endif
  695.         FlushRegKey $(TempKey)
  696.         CloseRegKey $(TempKey)
  697.     else
  698.         Debug-Output "OEMNSVIP.INF:  Can't open NetWareIP linkage key"
  699.         goto fatalregistry
  700.     endif
  701.  
  702.  
  703.     ;
  704.     ; Add 62 and 63 key for NetWareIP
  705.     ;
  706.  
  707.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\DHCP\Parameters\Options" $(MAXIMUM_ALLOWED) KeyDHCPOptions
  708.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  709.         CreateRegKey $(KeyDHCPOptions) {"62", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyOption62
  710.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  711.             SetRegValue $(KeyOption62) {"KeyType", $(NoTitle), $(!REG_VT_DWORD), "1"}
  712.             SetRegValue $(KeyOption62) {"RegLocation", $(NoTitle),$(!REG_VT_SZ), "System\CurrentControlSet\Services\NetWareIP\Parameters\rawdname"}
  713.             CloseRegKey $(KeyOption62)
  714.         Else
  715.             Debug-Output "Error creating DHCP options key 62"
  716.         Endif
  717.         CreateRegKey $(KeyDHCPOptions) {"63", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyOption63
  718.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  719.             SetRegValue $(KeyOption63) {"KeyType", $(NoTitle), $(!REG_VT_DWORD), "1"}
  720.             SetRegValue $(KeyOption63) {"RegLocation", $(NoTitle), $(!REG_VT_SZ), "System\CurrentControlSet\Services\NetWareIP\Parameters\rawinfo"}
  721.             CloseRegKey $(KeyOption63)
  722.         Else
  723.             Debug-Output "Error creating DHCP options key 63"
  724.         Endif
  725.         CloseRegKey $(KeyDHCPOptions)
  726.     Else
  727.         Debug-Output "OEMNSVIP.INF:  DHCP Not Installed"
  728.     Endif
  729.  
  730.  
  731.     ;
  732.     ; Disable OdiSourceRouting if enabled
  733.     ;
  734.  
  735.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiSourceRouting" $(MAXIMUM_ALLOWED) KeyProduct
  736.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  737.         Set KeyValueList = {"Start", $(NoTitle), $(!REG_VT_DWORD), 4}
  738.         SetRegValue $(KeyProduct) $(KeyValueList)
  739.         CloseRegKey $(KeyProduct)
  740.     Endif
  741.  
  742.     ;
  743.     ; Add NwlnkIpx binding for NetWareIPDriver.
  744.     ; Remove binding for ndisDriver
  745.     ;
  746.  
  747.     Shell "" Install-Bindings
  748.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  749.         Debug-Output "OEMNSVIP.INF:  Install-Bindings ShellCode error "$($ShellCode)
  750.         goto ShellCodeError
  751.     else
  752.         Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  753.             Debug-Output "OEMNSVIP.INF:  Install-Bindings returned error"
  754.             goto fatalregistry
  755.         endif
  756.     endif
  757.  
  758.     ;
  759.     ; Configure the NetWareIP Adapter if needed.
  760.     ;
  761.  
  762.     ifstr(i) $(!Remote_Config) == "ON"
  763.         set !HaveNetWareIPParameters = "YES"
  764.     else
  765.         ifstr(i) $(!Preferred_DSS) != ""
  766.             set !HaveNetWareIPParameters = "YES"
  767.         else-ifstr(i) $(!NWIP_Domain_Name) != ""
  768.             set !HaveNetWareIPParameters = "YES"
  769.         endif
  770.     endif
  771.  
  772.     ifstr(i) $(!HaveNetWareIPParameters) != "YES"
  773.         StartWait
  774.         LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\nwsetup.dll" NwLibHandle
  775.         SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.hlp" $(!MinimumID) $(!MaximumID)
  776.         ifint $(NTMajorVersion) < "4"
  777.             SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.hlp" $(!MinimumID) $(!MaximumID)
  778.         endif
  779.  
  780.         set HelpContext = $(IDH_NETWAREWRKSTATIONPARMS)
  781.         LibraryProcedure LibResult $(NwLibHandle) NWIPDialog
  782.     
  783.         Debug-Output "LibResult = "$(LibResult)
  784.     
  785.         ifstr(i) $(LibResult) == "CONTINUE"
  786.             Debug-Output "OEMNSVIP.INF:  OK hit"
  787.         else
  788.     
  789.             ;
  790.             ; Remove NetWareIP.  Cancel button was hit.
  791.             ;
  792.     
  793.             Set OldInstallMode = $(!NTN_InstallMode)
  794.             Set !NTN_InstallMode = deinstall
  795.             goto removeadapter
  796.     
  797.         endif
  798.     
  799.         FreeLibrary $(NwLibHandle)
  800.     endif
  801.  
  802.     goto end
  803.  
  804.  
  805. configureadapter = +
  806.     Debug-Output "OEMNSVIP.INF:  Configuring NetWareIP adapter"
  807.     
  808.     ;
  809.     ; Configure the NetWareIP Adapter.
  810.     ;
  811.     
  812.     StartWait
  813.     LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\nwsetup.dll" NwLibHandle
  814.     SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.hlp" $(!MinimumID) $(!MaximumID)
  815.     ifint $(NTMajorVersion) < "4"
  816.         SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.hlp" $(!MinimumID) $(!MaximumID)
  817.     endif
  818.     set HelpContext = $(IDH_NETWAREWRKSTATIONPARMS)
  819.     LibraryProcedure LibResult $(NwLibHandle) NWIPDialog
  820.     
  821.     Debug-Output "OEMNPRNW.INF:  NWIPDialog returned "$(LibResult)
  822.     ifstr(i) $(LibResult) != "CONTINUE"
  823.         set CommonStatus = STATUS_USERCANCEL
  824.     endif
  825.     
  826.     FreeLibrary $(NwLibHandle)
  827.     goto end
  828.  
  829.  
  830.  
  831. bindadapter =+
  832.     Debug-Output "OEMNSVIP.INF:  Binding NetWareIP adapter"
  833.  
  834.     ;
  835.     ; First make sure tcpip was not removed out from under us.
  836.     ; If it was, pop message warning user.
  837.     ;
  838.  
  839.     set NoTCPIP = 0
  840.     set TempKeyName = $(!NTN_ServiceBase)"\tcpip"
  841.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  842.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  843.         GetRegValue $(TempKey) "DeleteFlag" ValueData
  844.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  845.             set NoTCPIP = 1
  846.         endif
  847.     else
  848.         set NoTCPIP = 1
  849.         Debug-Output "OEMNSVIP.INF:  Failed to open key "$(TempKeyName)
  850.     endif
  851.  
  852.     ifint $(NoTCPIP) == 1
  853.  
  854.         ;
  855.         ; Pop up message warning user that TCPIP is not installed and
  856.         ; that NetWareIP will not function correctly.
  857.         ;
  858.  
  859.         set DlgType         = "MessageBox"
  860.         set STF_MB_TITLE    = $(ErrorMessageTitle)
  861.         set STF_MB_TEXT    = $(NoTcpipMessageText)
  862.         set STF_MB_TYPE    = 1
  863.         set STF_MB_ICON    = 3
  864.         set STF_MB_DEF        = 1
  865.         ui start "NoTcpipError"
  866.  
  867.     endif
  868.  
  869.     ;
  870.     ; By default depend on TCPIP
  871.     ;
  872.  
  873.     set DependOnList = {"Tcpip"}
  874.  
  875.     ;
  876.     ; If NT 3.51 Machine, check to see if DHCP is installed.  If it is
  877.     ; depend on it.
  878.     ;
  879.  
  880.     ifint $(NTMajorVersion) == "3"
  881.         Debug-Output "OEMNSVIP.INF:  Check to see if DHCP is installed"
  882.     
  883.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\DHCP" $(MAXIMUM_ALLOWED) KeyDHCP
  884.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  885.     
  886.             ;
  887.             ; Check to see if the service is set to start
  888.             ;
  889.     
  890.             GetRegValue $(KeyDHCP) "Start" StartList
  891.             Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  892.                 Set StartValue = *($(StartList), 4)
  893.                 Ifint $(StartValue) < 3
  894.     
  895.                     ;
  896.                     ; Make NetWareIP depend on the service DHCP
  897.                     ;
  898.     
  899.                     Debug-Output "OEMNSVIP.INF:  Make NetWareIP depend on DHCP service"
  900.                     set DependOnList = {"DHCP"}
  901.                 Endif
  902.             Endif
  903.     
  904.             CloseRegKey $(KeyDHCP)
  905.         Endif
  906.     endif
  907.  
  908.     set TempKeyName = $(!NTN_ServiceBase)"\NetWareIP"
  909.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  910.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  911.         SetRegValue $(TempKey) {"DependOnService", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DependOnList)}
  912.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  913.             Debug-Output "OEMNSVIP.INF:  Can't set NetWareIP linkage key"
  914.             goto fatalregistry
  915.         endif
  916.         FlushRegKey $(TempKey)
  917.         CloseRegKey $(TempKey)
  918.     else
  919.         Debug-Output "OEMNSVIP.INF:  Can't open NetWareIP linkage key"
  920.         goto fatalregistry
  921.     endif
  922.  
  923.     set TempKeyName = $(!NTN_ServiceBase)"\NetWareIP\Linkage"
  924.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  925.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  926.         SetRegValue $(TempKey) {"OtherDependencies", $(NoTitle), $(!REG_VT_MULTI_SZ), $(DependOnList)}
  927.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  928.             Debug-Output "OEMNSVIP.INF:  Can't set NetWareIP linkage key"
  929.             goto fatalregistry
  930.         endif
  931.         FlushRegKey $(TempKey)
  932.         CloseRegKey $(TempKey)
  933.     else
  934.         Debug-Output "OEMNSVIP.INF:  Can't open NetWareIP linkage key"
  935.         goto fatalregistry
  936.     endif
  937.  
  938.     ;
  939.     ; Disable OdiSourceRouting if enabled
  940.     ;
  941.  
  942.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiSourceRouting" $(MAXIMUM_ALLOWED) KeyProduct
  943.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  944.         Set KeyValueList = {"Start", $(NoTitle), $(!REG_VT_DWORD), 4}
  945.         SetRegValue $(KeyProduct) $(KeyValueList)
  946.         CloseRegKey $(KeyProduct)
  947.     Endif
  948.  
  949.     goto end
  950.  
  951.  
  952.  
  953. removeadapter = +
  954.     Debug-Output "OEMNSVIP.INF:  Removing NetWareIP adapter"
  955.  
  956.     ;
  957.     ; Remove adapter
  958.     ;
  959.  
  960.     ;
  961.     ; Find the NetWareIP adapters
  962.     ;
  963.  
  964.     Shell $(NwSubsInf) GetTotalAdapterList
  965.  
  966.     Set OdiProductNameList            = $($R0)
  967.     Set OdiTitleList                    = $($R1)
  968.     Set OdiCardList                    = $($R2)
  969.     Set NumberOdiAdapters            = $($R3)
  970.     Set NdisProductNameList            = $($R4)
  971.     Set NdisTitleList                    = $($R5)
  972.     Set NdisCardList                    = $($R6)
  973.     Set NumberNdisAdapters            = $($R7)
  974.     Set ODINSUPCardNumber            = $($R8)
  975.     Set NetWareIPCardNumList        = $($R9)
  976.     Set NumberNetWareIPAdapters    = $($R10)
  977.  
  978.     Debug-Output "OEMNSVIP.INF:  NetWareIPCardNumList is "$(NetWareIPCardNumList)
  979.  
  980.     ForListDo $(NetWareIPCardNumList)
  981.         set !NTN_RegBase = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($)
  982.         Debug-Output "OEMNSVIP.INF:  !NTN_RegBase is "$(!NTN_RegBase)
  983.  
  984.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  985.             Debug-Output "OEMNSVIP.INF:  RemoveSoftwareComponent"
  986.             Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), $(ProductSoftwareName)
  987.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  988.                 Debug-Output "OEMNSVIP.INF:  RemoveSoftwareComponent ShellCode error "$($ShellCode)
  989.                 goto ShellCodeError
  990.             endif
  991.             set RegistryErrorIndex = $($R0)
  992.             Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  993.                 goto fatalregistry
  994.             endif
  995.         else
  996.             Debug-Output "OEMNSVIP.INF:  RemoveHardwareComponent"
  997.             Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), $(ProductSoftwareName), $(!NTN_RegBase)
  998.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  999.                 Debug-Output "OEMNSVIP.INF:  RemoveHardwareComponent ShellCode error "$($ShellCode)
  1000.                 goto ShellCodeError
  1001.             endif
  1002.             set RegistryErrorIndex = $($R0)
  1003.             Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1004.                 goto fatalregistry
  1005.             endif
  1006.         endif
  1007.     EndForListDo
  1008.  
  1009.     ;
  1010.     ; Remove DHCP Options 62 & 63 from DHCP
  1011.     ;
  1012.     
  1013.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\DHCP\Parameters\Options" $(MAXIMUM_ALLOWED) KeyDHCPOptions
  1014.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1015.         DeleteRegTree $(KeyDHCPOptions) "62"
  1016.         DeleteRegTree $(KeyDHCPOptions) "63"
  1017.         CloseRegKey $(KeyDHCPOptions)
  1018.     Else
  1019.         Debug-Output "Debug-Output DHCP Not Installed"
  1020.     Endif
  1021.  
  1022.     ;
  1023.     ; Remove NwlnkIpx binding to NetWareIPDriver.
  1024.     ; Add back binding to ndisDriver
  1025.     ;
  1026.  
  1027.     Shell "" Remove-Bindings
  1028.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1029.         Debug-Output "OEMNSVIP.INF:  Remove-Bindings ShellCode error "$($ShellCode)
  1030.         goto ShellCodeError
  1031.     else
  1032.         Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1033.             Debug-Output "OEMNSVIP.INF:  Remove-Bindings returned error"
  1034.             goto fatalregistry
  1035.         endif
  1036.     endif
  1037.  
  1038.     goto end
  1039.  
  1040.  
  1041. updateadapter = +
  1042.     Debug-Output "OEMNSVIP.INF:  Updating NetWareIP adapter"
  1043.  
  1044.     ;
  1045.     ; Remove the old NetWareIP way of preventing NwlnkIpx from binding
  1046.     ; to anything but NetWareIP.  Go straight to the disabled key and
  1047.     ; remove the stuff that the old NetWareIP install put there.
  1048.     ;
  1049.  
  1050.     Shell "" Remove-Oldstyle-Bindings
  1051.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1052.         Debug-Output "OEMNSVIP.INF:  Remove-Oldstyle-Bindings ShellCode error "$($ShellCode)
  1053.         goto ShellCodeError
  1054.     else
  1055.         Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1056.             Debug-Output "OEMNSVIP.INF:  Remove-Oldstyle-Bindings returned error"
  1057.             goto fatalregistry
  1058.         endif
  1059.     endif
  1060.  
  1061.     ;
  1062.     ; Install the new bindings method by changing one of NwlnkIpx's bindable
  1063.     ; rules so that NwlnkIpx will only bind to NetWareIP
  1064.     ;
  1065.  
  1066.     Shell "" Install-Bindings
  1067.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1068.         Debug-Output "OEMNSVIP.INF:  Install-Bindings ShellCode error "$($ShellCode)
  1069.         goto ShellCodeError
  1070.     else
  1071.         Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1072.             Debug-Output "OEMNSVIP.INF:  Install-Bindings returned error"
  1073.             goto fatalregistry
  1074.         endif
  1075.     endif
  1076.  
  1077.     ;
  1078.     ; Hide the software driver for NetWareIP
  1079.     ;
  1080.  
  1081.     Set TempKeyName = $(!NTN_SoftwareBase)"\Novell\NetWareIP\CurrentVersion"
  1082.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey
  1083.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1084.         Debug-Output "OEMNPRNW.INF:  Hiding the NetWareIP software driver"
  1085.  
  1086.         SetRegValue $(TempKey) {"Hidden", $(NoTitle), $(!REG_VT_DWORD), 1}
  1087.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1088.             Debug-Output "OEMNPRNW.INF: Cant update Winsock Transports value"
  1089.         Endif
  1090.  
  1091.         CloseRegKey $(TempKey)
  1092.     else
  1093.         Debug-Output "OEMNPRNW.INF:  Failed to update the Hidden value for "$(TempKeyName)
  1094.     endif
  1095.  
  1096.     ;
  1097.     ; Get a count of NetWareIP adapters.  Add up to 5 adapters for NT 4.00
  1098.     ;
  1099.  
  1100.     Shell $(NwSubsInf) GetTotalAdapterList
  1101.  
  1102.     Set OdiProductNameList            = $($R0)
  1103.     Set OdiTitleList                    = $($R1)
  1104.     Set OdiCardList                    = $($R2)
  1105.     Set NumberOdiAdapters            = $($R3)
  1106.     Set NdisProductNameList            = $($R4)
  1107.     Set NdisTitleList                    = $($R5)
  1108.     Set NdisCardList                    = $($R6)
  1109.     Set NumberNdisAdapters            = $($R7)
  1110.     Set ODINSUPCardNumber            = $($R8)
  1111.     Set NetWareIPCardNumList        = $($R9)
  1112.     Set NumberNetWareIPAdapters    = $($R10)
  1113.  
  1114.     ifint $(NTMajorVersion) == "4"
  1115.         set Count = $(NumberNetWareIPAdapters)
  1116.         set endCount = 5
  1117.     else
  1118.         set Count = 1
  1119.         set endCount = 1
  1120.     endif
  1121.  
  1122.     set CalledFromUpdate = "YES"
  1123.     goto StartHardwareInstallation
  1124.  
  1125. ReturnToUpdate = +
  1126.     goto end
  1127.  
  1128.  
  1129. abandon = +
  1130.     Debug-Output "OEMNSVIP.INF: abandon"
  1131.     ForListDo $(OEM_ABANDON_OPTIONS)
  1132.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), $(ProductSoftwareName), $($)
  1133.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1134.             Debug-Output "OEMNSVIP.INF: RemoveHardwareComponent ShellCode error "$($ShellCode)
  1135.             goto ShellCodeError
  1136.         endif
  1137.         set RegistryErrorIndex = $($R0)
  1138.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1139.             goto fatalregistry
  1140.         endif
  1141.     EndForListDo
  1142.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  1143.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), $(ProductSoftwareName), FALSE
  1144.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1145.             Debug-Output "OEMNSVIP.INF: RemoveSoftwareComponent ShellCode error "$($ShellCode)
  1146.             goto ShellCodeError
  1147.         endif
  1148.         set RegistryErrorIndex = $($R0)
  1149.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1150.             goto fatalregistry
  1151.         endif
  1152.     endif
  1153.     goto end
  1154.  
  1155.  
  1156. warning = +
  1157.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1158.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1159.         goto ShellCodeError
  1160.     endif
  1161.     ifstr(i) $($R1) == "OK"
  1162.         goto $(to)
  1163.     else-ifstr(i) $($R1) == "CANCEL"
  1164.         goto $(from)
  1165.     else
  1166.         goto "end"
  1167.     endif
  1168.  
  1169.  
  1170. nonfatal = +
  1171.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", $(Error)
  1172.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1173.         goto ShellCodeError
  1174.     endif
  1175.     ifstr(i) $($R1) == "OK"
  1176.         goto $(from)
  1177.     else
  1178.         goto "end"
  1179.     endif
  1180.  
  1181.  
  1182. fatalregistry = +
  1183.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1184.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1185.         goto ShellCodeError
  1186.     endif
  1187.     set Error = $($R0)
  1188.     goto fatal
  1189.  
  1190.  
  1191. fatal = +
  1192.     ifstr(i) $(Error) == ""
  1193.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1194.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1195.             goto ShellCodeError
  1196.         endif
  1197.         set Error = $($R0)
  1198.     endif
  1199.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1200.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1201.         goto ShellCodeError
  1202.     endif
  1203.     goto setfailed
  1204.  
  1205.  
  1206. ShellCodeError = +
  1207.     set DlgType            = "MessageBox"
  1208.     set STF_MB_TITLE    = $(ShellCodeErrorTitle)
  1209.     set STF_MB_TEXT    = $(ShellCodeErrorText)
  1210.     set STF_MB_TYPE    = 1
  1211.     set STF_MB_ICON    = 3
  1212.     set STF_MB_DEF        = 1
  1213.     ui start "Error Message"
  1214.     goto setfailed
  1215.  
  1216.  
  1217. setfailed = +
  1218.     set CommonStatus = STATUS_FAILED
  1219.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1220.         set OEM_ABANDON_ON = FALSE
  1221.         goto abandon
  1222.     endif
  1223.     goto end
  1224.  
  1225.  
  1226. end = +
  1227.     goto term
  1228.  
  1229.  
  1230. term = +
  1231.     Return $(CommonStatus) $(DriverToLoad)
  1232.  
  1233.  
  1234. [Install-Option]
  1235.     set STF_VITAL = ""
  1236.     ifstr(i) $(!AddCopy) == "YES"
  1237.         AddSectionFilesToCopyList Files-$(Option) $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)\drivers
  1238.     endif
  1239.     ifstr(i) $(!DoCopy) == "YES"
  1240.         CopyFilesInCopyList
  1241.     endif
  1242.     ifstr(i) $(!DoConfig) == "YES"
  1243.     endif
  1244.     Exit
  1245.  
  1246.  
  1247. [Install-Update]
  1248.     Debug-Output "OEMNSVIP.INF: Install-Update"
  1249.     set STF_VITAL     = ""
  1250.     set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1251.     AddSectionFilesToCopyList Files-$(Option) $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)\drivers
  1252.     AddSectionFilesToCopyList Files-Inf $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)
  1253.     CopyFilesInCopyList
  1254.     exit
  1255.  
  1256.  
  1257.  
  1258. ;*************************************************************************
  1259. ;
  1260. ;        SECTION:        Install-TCPIP
  1261. ;
  1262. ;        PURPOSE:        Called at install time and update time to install the
  1263. ;                        TCPIP transport.
  1264. ;
  1265. ;        ARGUMENTS:    None
  1266. ;
  1267. ;        RETURNS:        None
  1268. ;
  1269. ;        REFERENCES:    None
  1270. ;
  1271. ;        MODIFIES:    None
  1272. ;
  1273. ;*************************************************************************
  1274. [Install-TCPIP]
  1275.     read-syms GeneralConstants
  1276.     read-syms InstallOption$(!STF_LANGUAGE)
  1277.  
  1278.     ;
  1279.     ; Assume all is well until we find out otherwise
  1280.     ;
  1281.  
  1282.     set CommonStatus = STATUS_SUCCESSFUL
  1283.  
  1284.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Tcpip" $(MAXIMUM_ALLOWED) KeyTCPIP
  1285.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1286.         Debug-Output "OEMNSVIP.INF:  Installing TCPIP"
  1287.  
  1288.         ;
  1289.         ; Ask the user if they want to install TCPIP
  1290.         ;
  1291.  
  1292.         set DlgType         = "MessageBox"
  1293.         set STF_MB_TITLE    = $(InstallTcpipMessageTitle)
  1294.         set STF_MB_TEXT    = $(InstallTcpipMessageText)
  1295.         set STF_MB_TYPE    = 3
  1296.         set STF_MB_ICON    = 4
  1297.         set STF_MB_DEF        = 1
  1298.         ui start "InstallTCPIP"
  1299.  
  1300.         Ifstr(i) $(DLGEVENT) == "NO"
  1301.             Debug-Output  "OEMNSVIP.INF:  Don't install TCPIP"
  1302.             set CommonStatus = STATUS_USERCANCEL
  1303.             goto terminate
  1304.         Endif
  1305.  
  1306.         Debug-Output "OEMNSVIP.INF:  Install TCPIP"
  1307.         Set OldInstallMode = $(!NTN_InstallMode)
  1308.         Set !NTN_InstallMode = install
  1309.         Set OldSTF_SRCDIR_OVERRIDE = $(!STF_SRCDIR_OVERRIDE)
  1310.         Set !STF_SRCDIR_OVERRIDE = ""
  1311.         Shell "oemnxptc.inf" InstallOption $(!STF_LANGUAGE) "TC" "" YES YES YES
  1312.         Set !STF_SRCDIR_OVERRIDE = $(OldSTF_SRCDIR_OVERRIDE)
  1313.         Set !NTN_InstallMode = $(OldInstallMode)
  1314.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1315.             set CommonStatus = STATUS_FAILED
  1316.             goto terminate
  1317.         Endif
  1318.         set CommonStatus = $($R0)
  1319.         Ifstr(i) $(CommonStatus) != STATUS_SUCCESSFUL
  1320.             Debug-Output "OEMNSVIP.INF:  Install of TCPIP returned "$(CommonStatus)
  1321.             goto terminate
  1322.         Endif
  1323.     Else
  1324.         CloseRegKey $(KeyTCPIP)
  1325.     Endif
  1326.  
  1327. terminate = +
  1328.     Return $(CommonStatus)
  1329.  
  1330.  
  1331. ;*************************************************************************
  1332. ;
  1333. ;        SECTION:        Install-Bindings
  1334. ;
  1335. ;        PURPOSE:        Called at install time and update time to install the
  1336. ;                        NwlnkIpx bindings.
  1337. ;
  1338. ;        ARGUMENTS:    None
  1339. ;
  1340. ;        RETURNS:        None
  1341. ;
  1342. ;        REFERENCES:    None
  1343. ;
  1344. ;        MODIFIES:    None
  1345. ;
  1346. ;*************************************************************************
  1347. [Install-Bindings]
  1348.     StartWait
  1349.     Read-syms GeneralConstants
  1350.     Set status = STATUS_SUCCESSFUL
  1351.  
  1352.     ;
  1353.     ; Open NwlnkIpx keys
  1354.     ;
  1355.  
  1356.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NwlnkIpx\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) RulesKey
  1357.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1358.         Debug-Output "OEMNSVIP.INF:  Can't open NwlnkIpx NetRules key"
  1359.         set status = STATUS_FAILED
  1360.         Goto IB_Return
  1361.     Endif
  1362.  
  1363.     ;
  1364.     ; Set up bindings for NwlnkIpx
  1365.     ;
  1366.  
  1367.     Set ValueName = "Bindable"
  1368.     GetRegValue $(RulesKey) $(ValueName) ValueList
  1369.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1370.         CloseRegKey $(RulesKey)
  1371.         Debug-Output "OEMNSVIP.INF:  Can't get bindable value for NwlnkIpx"
  1372.         set status = STATUS_FAILED
  1373.         Goto IB_Return
  1374.     endif
  1375.  
  1376.     Set OldList = *($(ValueList), 4)
  1377.     Set NewList = {}
  1378.  
  1379.     Debug-Output "OEMNSVIP.INF:  OldList for NwlnkIpx bind is "$(OldList)
  1380.  
  1381.     ForListDo $(OldList)
  1382.         Set Item = $($)
  1383.         Ifstr(i) $(Item) != "ipxTransport ndisDriver non non 100"
  1384.             Set NewList = >($(NewList), $(Item))
  1385.         else
  1386.             Set NewList = >($(NewList), "ipxTransport NetWareIPDriver non non 100")
  1387.         endif
  1388.     EndForListDo
  1389.  
  1390.     Debug-Output "OEMNSVIP.INF:  NewList for NwlnkIpx bind is "$(NewList)
  1391.  
  1392.     SetRegValue $(RulesKey) {$(ValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
  1393.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1394.         Debug-Ouput "OEMNSVIP.INF:  Can't update Bindable value for NwlnkIpx"
  1395.         set status = STATUS_FAILED
  1396.         goto IB_Return
  1397.     Endif
  1398.  
  1399.     ;
  1400.     ; Close keys
  1401.     ;
  1402.  
  1403.     CloseRegKey $(RulesKey)
  1404.  
  1405. IB_Return = +
  1406.     Return $(status)
  1407.  
  1408.  
  1409. ;*************************************************************************
  1410. ;
  1411. ;        SECTION:        Remove-Bindings
  1412. ;
  1413. ;        PURPOSE:        Called at remove time to remove the    NwlnkIpx bindings.
  1414. ;
  1415. ;        ARGUMENTS:    None
  1416. ;
  1417. ;        RETURNS:        None
  1418. ;
  1419. ;        REFERENCES:    None
  1420. ;
  1421. ;        MODIFIES:    None
  1422. ;
  1423. ;*************************************************************************
  1424. [Remove-bindings]
  1425.     StartWait
  1426.     Read-syms GeneralConstants
  1427.     Set status = STATUS_SUCCESSFUL
  1428.  
  1429.     ;
  1430.     ; Open NwlnkIpx keys
  1431.     ;
  1432.  
  1433.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NwlnkIpx\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) RulesKey
  1434.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1435.         Debug-Output "OEMNSVIP.INF:  Can't open NwlnkIpx NetRules key"
  1436.         set status = STATUS_FAILED
  1437.         Goto RB_Return
  1438.     Endif
  1439.  
  1440.     ;
  1441.     ; Restore bindings for NwlnkIpx
  1442.     ;
  1443.  
  1444.     Set ValueName = "Bindable"
  1445.     GetRegValue $(RulesKey) $(ValueName) ValueList
  1446.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1447.         CloseRegKey $(RulesKey)
  1448.         Debug-Output "OEMNSVIP.INF:  Can't get bindable value for NwlnkIpx"
  1449.         set status = STATUS_FAILED
  1450.         Goto RB_Return
  1451.     endif
  1452.  
  1453.     Set OldList = *($(ValueList), 4)
  1454.     Set NewList = {}
  1455.  
  1456.     Debug-Output "OEMNSVIP.INF:  OldList for NwlnkIpx bind is "$(OldList)
  1457.  
  1458.     ForListDo $(OldList)
  1459.         Set Item = $($)
  1460.         Ifstr(i) $(Item) != "ipxTransport NetWareIPDriver non non 100"
  1461.             Set NewList = >($(NewList), $(Item))
  1462.         else
  1463.             Set NewList = >($(NewList), "ipxTransport ndisDriver non non 100")
  1464.         endif
  1465.     EndForListDo
  1466.  
  1467.     Debug-Output "OEMNSVIP.INF:  NewList for NwlnkIpx bind is "$(NewList)
  1468.  
  1469.     SetRegValue $(RulesKey) {$(ValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
  1470.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1471.         Debug-Ouput "OEMNSVIP.INF:  Can't update Bindable value for NwlnkIpx"
  1472.         set status = STATUS_FAILED
  1473.         goto RB_Return
  1474.     Endif
  1475.  
  1476.     ;
  1477.     ; Close keys
  1478.     ;
  1479.  
  1480.     CloseRegKey $(RulesKey)
  1481.  
  1482. RB_Return = +
  1483.     Return $(status)
  1484.  
  1485.  
  1486. [Remove-Oldstyle-bindings]
  1487.     StartWait
  1488.     Read-syms GeneralConstants
  1489.     Set Status = STATUS_SUCCESSFUL
  1490.  
  1491.     ;
  1492.     ; Open NwlnkIpx key and remove disabled bindings
  1493.     ;
  1494.  
  1495.     set TempKeyName = $(!NTN_ServiceBase)"\NwlnkIpx\Linkage\Disabled"
  1496.     OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) DisabledKey
  1497.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1498.         SetRegValue $(DisabledKey) {"Bind", $(NoTitle), $(!REG_VT_MULTI_SZ), {}}
  1499.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1500.             Debug-Output "OEMNSVIP.INF:  Can't update bind value for NwlnkIpx Disabled key"
  1501.             CloseRegKey $(DisabledKey)
  1502.             set Status = STATUS_FAILED
  1503.             Goto ROB_Return
  1504.         endif
  1505.         SetRegValue $(DisabledKey) {"Export", $(NoTitle), $(!REG_VT_MULTI_SZ), {}}
  1506.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1507.             Debug-Output "OEMNSVIP.INF:  Can't update export value for NwlnkIpx Disabled key"
  1508.             CloseRegKey $(DisabledKey)
  1509.             set Status = STATUS_FAILED
  1510.             Goto ROB_Return
  1511.         endif
  1512.         SetRegValue $(DisabledKey) {"Route", $(NoTitle), $(!REG_VT_MULTI_SZ), {}}
  1513.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1514.             Debug-Output "OEMNSVIP.INF:  Can't update route value for NwlnkIpx Disabled key"
  1515.             CloseRegKey $(DisabledKey)
  1516.             set Status = STATUS_FAILED
  1517.             Goto ROB_Return
  1518.         endif
  1519.         CloseRegKey $(DisabledKey)
  1520.     else
  1521.         Debug-Output "OEMNSVIP.INF:  Can't open NwlnkIpx Disabled key"
  1522.         set Status = STATUS_FAILED
  1523.         Goto ROB_Return
  1524.     endif
  1525.  
  1526.     ;
  1527.     ; Open NetWareIP keys to remove one of the bindable rules that was set
  1528.     ; by previous installs of NetWareIP.  The bindable rule was set under
  1529.     ; NetWareIP and now I want it to replace a rule under NwlnkIpx
  1530.     ;
  1531.  
  1532.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Novell\NetWareIP\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) RulesKey
  1533.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1534.         Debug-Output "OEMNSVIP.INF:  Can't open NetWareIP NetRules key"
  1535.         set status = STATUS_FAILED
  1536.         Goto ROB_Return
  1537.     Endif
  1538.  
  1539.     ;
  1540.     ; Set up bindings for NetWareIP
  1541.     ;
  1542.  
  1543.     Set ValueName = "Bindable"
  1544.     GetRegValue $(RulesKey) $(ValueName) ValueList
  1545.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1546.         CloseRegKey $(RulesKey)
  1547.         Debug-Output "OEMNSVIP.INF:  Can't get bindable value for NetWareIP"
  1548.         set status = STATUS_FAILED
  1549.         Goto ROB_Return
  1550.     endif
  1551.  
  1552.     Set OldList = *($(ValueList), 4)
  1553.     Set NewList = {}
  1554.  
  1555.     Debug-Output "OEMNSVIP.INF:  OldList for NetWareIP bind is "$(OldList)
  1556.  
  1557.     ForListDo $(OldList)
  1558.         Set Item = $($)
  1559.         Ifstr(i) $(Item) != "ipxTransport NetWareIPDriver non non 100"
  1560.             Set NewList = >($(NewList), $(Item))
  1561.         endif
  1562.     EndForListDo
  1563.  
  1564.     Debug-Output "OEMNSVIP.INF:  NewList for NetWareIP bind is "$(NewList)
  1565.  
  1566.     SetRegValue $(RulesKey) {$(ValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
  1567.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1568.         Debug-Ouput "OEMNSVIP.INF:  Can't update Bindable value for NetWareIP"
  1569.         set status = STATUS_FAILED
  1570.         goto ROB_Return
  1571.     Endif
  1572.  
  1573.     ;
  1574.     ; Close keys
  1575.     ;
  1576.  
  1577.     CloseRegKey $(RulesKey)
  1578.  
  1579. ROB_Return = +
  1580.     Return $(Status)
  1581.  
  1582.  
  1583. ;-----------------------------------------------------------------------
  1584. ; LANGUAGES SUPPORTED
  1585. ; -------------------
  1586. ;
  1587. ; The languages supported by the OEM INF, For every language supported
  1588. ; we need to have a separate text section for every displayable text
  1589. ; section.
  1590. ;
  1591. ;-----------------------------------------------------------------------
  1592.  
  1593. [LanguagesSupported]
  1594.     ENG, ENGLISH
  1595.  
  1596. [OptionsTextENG]
  1597.     NetWareIP    = "Novell NetWare/IP Support (NWIP)"
  1598.  
  1599. [FileConstantsENG]
  1600.     ProCaption        = "Windows NT Setup"
  1601.     ProCancel        = "Cance&l"
  1602.     ProCancelMsg    = "Windows NT Networking is not correctly installed.  "+
  1603.                             "Are you sure you want to cancel copying files?"
  1604.     ProCancelCap    = "Network Setup Message"
  1605.     ProText1            = "Copying:"
  1606.     ProText2            = "To:"
  1607.  
  1608.     ;
  1609.     ; Producer Info
  1610.     ;
  1611.     
  1612.     FunctionTitle                                = "Novell NetWare/IP Setup"
  1613.  
  1614.     ;
  1615.     ; Software
  1616.     ;
  1617.         
  1618.     ProductSoftwareTitle            = "Novell NetWare/IP Adapter Driver"
  1619.     ProductSoftwareDescription                = "Novell NetWare/IP Adapter Driver"
  1620.     
  1621.     ;
  1622.     ; Hardware
  1623.     ;
  1624.     
  1625.     ProductHardwareNetWareIPTitle    = "Novell NetWare/IP Adapter"
  1626.     ProductHardwareNetWareIPDescription    = "Novell NetWare/IP Adapter"
  1627.  
  1628.  
  1629. [InstallOptionENG]
  1630.     ErrorMessageTitle = "NetWareIP Error"
  1631.  
  1632.     NoTcpipMessageText = "TCPIP Protocol is NOT installed.  NetWareIP will "+
  1633.         "not function correctly unless the TCPIP Protocol is reinstalled."
  1634.  
  1635.     NotConfiguredMessageText = "NetWareIP has not been configured and "+
  1636.         "will not function properly.  Please reconfigure NetWareIP Adapter"
  1637.  
  1638.     InstallTcpipMessageTitle = "Install TCPIP Protocol"
  1639.  
  1640.     InstallTcpipMessageText = "TCPIP Protocol is NOT installed.  NetWareIP "+
  1641.         "will not function correctly unless the TCPIP Protocol is installed.  "+
  1642.         "Install it now?"
  1643.  
  1644.     NetWareIPOnASMessageTitle = "NetWareIP Installation Error"
  1645.  
  1646.     NetWareIPOnASMessageText = "Novell NetWareIP is only supported with the "+
  1647.         "workstation versions of Microsoft Windows NT.  It is NOT supported "+
  1648.         "with the Advanced Server versions."
  1649.  
  1650.     NetWareIPInstalledMessage = "Novell NetWare/IP is already installed.  "+
  1651.         "Please remove it and then reboot before reinstalling."
  1652.  
  1653.     ShellCodeErrorTitle = "Error:  Novell NetWare/IP Adapter"
  1654.  
  1655.     ShellCodeErrorText = "Shell Code Error"
  1656.  
  1657.     LoadDisk3Text = "Please load the Novell NetWare Client for Windows NT "+
  1658.         "disk 3 into drive "
  1659.  
  1660.  
  1661. [Source Media Descriptions]
  1662.     1    = "Windows NT Setup Disk #1",                TAGFILE = disk1
  1663.     2    = "Windows NT Setup CD-ROM Disk",        TAGFILE = disk2
  1664.     3    = "NetWare for Windows NT Setup Disk",    TAGFILE = NWIP.SYS
  1665.  
  1666.  
  1667. [Files-Inf]
  1668.     3,    oemnsvip.inf,    SIZE=50000,    DECOMPRESS
  1669.  
  1670.  
  1671. [Files-NetWareIP]
  1672.     3,    nwip.sys,        SIZE=50000,    DECOMPRESS
  1673.