home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 February / VPR9602A.ISO / i386 / oemnxpip.in_ / oemnxpip.inf
INI File  |  1995-10-25  |  53KB  |  1,148 lines

  1. [Identification]
  2.     OptionType = NetTransport
  3. [Options]
  4.     NWLNKIPX
  5. [FileConstants]
  6. Manufacturer            = "Microsoft"
  7. ProductMajorVersion     = "3"
  8. ProductMinorVersion     = "51"
  9. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  10. NWLNKIPXEventDLL   = "%SystemRoot%\System32\netevent.dll"
  11. ProductNWLNKIPXName        = "NwlnkIpx"
  12. ProductNWLNKIPXImagePath   = "\SystemRoot\System32\drivers\nwlnkipx.sys"
  13. ProductNWLNKIPXSvcType     = "kernel"
  14. ProviderImagePath          = "%SystemRoot%\System32\nwprovau.dll"
  15. ProductNWLNKIPXWshDllPath  = "%SystemRoot%\System32\wshisn.dll"
  16. NetRuleNWLNKIPXType        = "nwlnkIpx ipxTransport"
  17. NetRuleNWLNKIPXUse         = $(SoftwareType)" yes yes"
  18. NetRuleNWLNKIPXBindForm    = """NwlnkIpx"" yes yes simple"
  19. NetRuleNWLNKIPXBindable    = {"ipxnbTransport ipxTransport non non 100",+
  20.                               "ipxTransport ndisDriver non non 100",+
  21.                               "lmNetService ipxnbTransport non non 100",+
  22.                               "nwcWorkstation ipxTransport non non 100",+
  23.                               "lanmanServer ipxTransport non non 100"}
  24. NetRuleNWLNKIPXClass       = {"ipxnbTransport basic yes", "ipxTransport basic yes"}
  25. ProductNWLNKNBName         = "NwlnkNb"
  26. ProductNWLNKNBImagePath    = "\SystemRoot\System32\drivers\nwlnknb.sys"
  27. ProductNWLNKNBSvcType      = "kernel"
  28. NetRuleNWLNKNBType         = "nwlnkNb ipxnbTransport"
  29. NetRuleNWLNKNBUse          = "transport"
  30. NetRuleNWLNKNBBindForm     = """NwlnkNb"" yes yes container"
  31. ProductNWLNKSPXName         = "NwlnkSpx"
  32. ProductNWLNKSPXImagePath    = "\SystemRoot\System32\drivers\nwlnkspx.sys"
  33. ProductNWLNKSPXSvcType      = "kernel"
  34. NetRuleNWLNKSPXType         = "nwlnkSpx spxTransport"
  35. NetRuleNWLNKSPXBindable     = {"spxTransport ipxTransport non non 100"}
  36. NetRuleNWLNKSPXClass        = {"spxTransport basic yes"}
  37. NetRuleNWLNKSPXUse          = "transport"
  38. NetRuleNWLNKSPXBindForm     = """NwlnkSpx"" yes yes container"
  39. CompetitorServiceName = "IPXSPXII"
  40. CompetitorKeyName  = $(!NTN_ServiceBase)"\"$(CompetitorServiceName)
  41. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(Product$(Option)Name)"\CurrentVersion"
  42. OldProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"Nwlinkipx"\CurrentVersion"
  43. LinkageKeyName  = $(!NTN_ServiceBase)"\NwlnkIpx\Linkage"
  44. ServiceNWLNKKeyName = $(!NTN_ServiceBase)"\NwlnkIpx"
  45. ServiceKeyName  = $(!NTN_ServiceBase)
  46. [GeneralConstants]
  47. UtilityInf       = "UTILITY.INF"
  48. subroutineinf    = "SUBROUTN.INF"
  49. SoftwareType     = "transport"
  50. Exit_Code        = 0
  51. BillboardVisible = 0
  52. from             = ""
  53. to               = ""
  54. ExitCodeOk       = 0
  55. ExitCodeCancel   = 1
  56. ExitCodeFatal    = 2
  57. KeyNull          = ""
  58. MAXIMUM_ALLOWED    = 33554432
  59. RegistryErrorIndex = NO_ERROR
  60. KeyProduct    = ""
  61. KeyParameters = ""
  62. TRUE          = 1
  63. FALSE         = 0
  64. NoTitle       = 0
  65. ExitState     = "Active"
  66. OldVersionExisted = $(FALSE)
  67. DriverPath   = $(!STF_NTPATH)\drivers
  68. [date]
  69.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  70. [Identify]
  71.     read-syms Identification
  72.     set Status     = STATUS_SUCCESSFUL
  73.     set Identifier = $(OptionType)
  74.     set Media      = #("Source Media Descriptions", 1, 1)
  75.     Return $(Status) $(Identifier) $(Media)
  76. [ReturnOptions]
  77.     set Status         = STATUS_FAILED
  78.     set OptionList     = {}
  79.     set OptionTextList = {}
  80.     set LanguageList = ^(LanguagesSupported, 1)
  81.     Ifcontains(i) $($0) in $(LanguageList)
  82.         goto returnoptions
  83.     else
  84.         set Status = STATUS_NOLANGUAGE
  85.         goto finish_ReturnOptions
  86.     endif
  87. returnoptions = +
  88.     set OptionList     = ^(Options, 1)
  89.     set OptionTextList = ^(OptionsText$($0), 1)
  90.     set Status         = STATUS_SUCCESSFUL
  91. finish_ReturnOptions = +
  92.     Return $(Status) $(OptionList) $(OptionTextList)
  93. [InstallOption]
  94.     set Option   = $($1)
  95.     set SrcDir   = $($2)
  96.     set AddCopy  = $($3)
  97.     set DoCopy   = $($4)
  98.     set DoConfig = $($5)
  99.     set InstallFromRas = $($6)
  100.     Debug-Output "NWLNK.INF: At InstallOption"
  101.     set LanguageList = ^(LanguagesSupported, 1)
  102.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  103.         return STATUS_NOLANGUAGE
  104.     endif
  105.     Debug-Output "NWLNK.INF: STF_CWDIR is: "$(!STF_CWDIR)
  106.     Debug-Output "NWLNK.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
  107.     set-subst LF = "\n"
  108.     read-syms GeneralConstants
  109.     read-syms FileConstants
  110.     read-syms DialogConstants$(!STF_LANGUAGE)
  111.     read-syms FileConstants$(!STF_LANGUAGE)
  112.     detect date
  113.     set-title  $(FunctionTitle)
  114.     set to   = Begin
  115.     set from = Begin
  116.     set CommonStatus = STATUS_SUCCESSFUL
  117.     EndWait
  118. Begin = +
  119.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  120.         set StartLabel = removeadapter
  121.         set OEM_ABANDON_OPTIONS = {}
  122.         set OEM_ABANDON_SOFTWARE = {+
  123.             $(ProductNWLNKSPXName),+
  124.             $(ProductNWLNKNBName),+
  125.             $(ProductNWLNKIPXName)}
  126.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  127.         set StartLabel = UpgradeSoftware
  128.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  129.         set StartLabel = configureadapter
  130.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  131.         set StartLabel = bindingadapter
  132.     else
  133.         set StartLabel = installadapter
  134.         set OEM_ABANDON_SOFTWARE = {}
  135.         set OEM_ABANDON_OPTIONS = {}
  136.     endif
  137.     set from = $(fatal)
  138.     set to   = $(fatal)
  139.     goto $(StartLabel)
  140. installadapter = +
  141.     Debug-Output "NWLNK.INF: At installadapter"
  142.     Debug-Output "NWLNK.INF: Opening key for the product"
  143.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  144.     Debug-Output "NWLNK.INF: Back from opening key for the product"
  145.     Ifstr $(KeyProduct) != $(KeyNull)
  146.         CloseRegKey $(KeyProduct)
  147.         Shell $(UtilityInf), VerExistedDlg, $(Product$(Option)Title),+
  148.             $(ProductVersion)
  149.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  150.             Debug-Output "NWLNK.INF: ShellCode error: cannot get an error string."
  151.             goto ShellCodeError
  152.         endif
  153.         goto end
  154.     endif
  155.     OpenRegKey $(!REG_H_LOCAL) "" $(CompetitorKeyName) $(!REG_KEY_READ) BadKey
  156.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  157.         Debug-Output "OEMNXPI1.INF:  Service "$(CompetitorServiceName)" exists.  CANNOT INSTALL!"
  158.         GetRegValue $(BadKey) "DisplayName" DisplayList
  159.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  160.             Set CompetitorDisplayName = *($(DisplayList),4)
  161.         Endif
  162.         CloseRegKey $(BadKey)
  163.         read-syms FatalError1$(!STF_LANGUAGE)
  164.         Goto fatal
  165.     Endif
  166.     Ifstr(i) $(!NTN_InstallMode) == "install"
  167.         Ifstr(i) $(DoCopy) == "YES"
  168.             Debug-Output "NWLNK.INF: Calling DoAskSource 1"
  169.             Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  170.             Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  171.                Goto ShellCodeError
  172.             Else-Ifstr(i) $($R0) == STATUS_FAILED
  173.                Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  174.                ifint $($ShellCode) != $(!SHELL_CODE_OK)
  175.                   goto ShellCodeError
  176.                endif
  177.                set Error = $($R0)
  178.                Goto fatal
  179.             Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  180.                Goto successful
  181.             Endif
  182.             Set SrcDir = $($R1)
  183.         Endif
  184.         install "Install-Option"
  185.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  186.             Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  187.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  188.                 goto ShellCodeError
  189.             endif
  190.             set Error = $($R0)
  191.             goto fatal
  192.         endif
  193.     endif
  194.     Debug-Output "NWLNK.INF: Put up box that we are installing"
  195.     set OEM_ABANDON_ON  = TRUE
  196.     read-syms Billboard1$(!STF_LANGUAGE)
  197.     Shell "subroutn.inf" PushBillboard NETSTATUSDLG $(Status)
  198.     Set BillboardVisible = 1
  199.     Set DoNWLNKIPX   = FALSE
  200.     Set DoNWLNKNB    = FALSE
  201.     Set DoNWLNKSPX   = FALSE
  202.     Ifstr(i) $(Option) == NWLNKIPX
  203.         Set DoNWLNKIPX   = TRUE
  204.         Set DoNWLNKNB    = TRUE
  205.         Set DoNWLNKSPX   = TRUE
  206.     Else
  207.         Debug-Output "NWLNK.INF: Unrecognized option"
  208.     Endif
  209.     Debug-Output "NWLNK.INF: Start the install"
  210.     StartWait
  211.     ifstr(i) $(DoNWLNKIPX) == TRUE
  212.         Set ThisOption = NWLNKIPX
  213.         Set OEM_ABANDON_SOFTWARE = >($(OEM_ABANDON_SOFTWARE), $(Product$(ThisOption)Name))
  214.         Debug-Output "NWLNK.INF: installing NWLNKIPX."
  215.         Shell $(UtilityInf), AddSoftwareComponent,+
  216.             $(Manufacturer),+
  217.             $(Product$(ThisOption)Name),+
  218.             $(Product$(ThisOption)Name),+
  219.             $(Product$(ThisOption)DisplayName),+
  220.             $(STF_CONTEXTINFNAME),+
  221.             $(Product$(ThisOption)ImagePath),+
  222.             $(Product$(ThisOption)SvcType),+
  223.             "TDI",+
  224.             {},"",+
  225.             $(NWLNKIPXEventDLL)
  226.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  227.             Debug-Output "NWLNK.INF: ShellCode error, add software component"
  228.             goto ShellCodeError
  229.         endif
  230.         set RegistryErrorIndex = $($R0)
  231.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  232.             EndWait
  233.             Debug-Output "NWLNK.INF: Registry error: add software components"
  234.             CloseRegKey $($R1)
  235.             CloseRegKey $($R2)
  236.             CloseRegKey $($R3)
  237.             CloseRegKey $($R4)
  238.             CloseRegKey $($R5)
  239.             goto fatalregistry
  240.         endif
  241.         Set NWLNKVersKeyHandle  = $($R1)
  242.         Set NWLNKRulesKeyHandle = $($R2)
  243.         Set NWLNKSvcKeyHandle   = $($R3)
  244.         Set NWLNKParmKeyHandle  = $($R4)
  245.         Set NWLNKLinkageHandle  = $($R5)
  246.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  247.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  248.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  249.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+
  250.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+
  251.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+
  252.                            {Review,$(NoTitle),$(!REG_VT_DWORD),1},+
  253.                            {STF_GUI_UNATTENDED,$(NoTitle),$(!REG_VT_SZ),$(!STF_GUI_UNATTENDED)},+
  254.                            {AUTONETIPXFRAMETYPE,$(NoTitle),$(!REG_VT_DWORD),$(!AUTONETIPXFRAMETYPE)},+
  255.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  256.         Shell  $(UtilityInf), AddValueList, $(NWLNKVersKeyHandle), $(NewValueList)
  257.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  258.             Debug-Output "NWLNK.INF: ShellCode error, add value list"
  259.             goto ShellCodeError
  260.         endif
  261.         set RegistryErrorIndex = $($R0)
  262.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  263.             EndWait
  264.             Debug-Output "NWLNK.INF: Registry error: add value list."
  265.             CloseRegKey $(NWLNKVersKeyHandle)
  266.             CloseRegKey $(NWLNKRulesKeyHandle)
  267.             CloseRegKey $(NWLNKSvcKeyHandle)
  268.             CloseRegKey $(NWLNKParmKeyHandle)
  269.             CloseRegkey $(NWLNKLinkageHandle)
  270.             goto fatalregistry
  271.         Endif
  272.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+
  273.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)},+
  274.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)BindForm)},+
  275.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(ThisOption)Bindable)},+
  276.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(ThisOption)Class)},+
  277.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)} }
  278.         Shell  $(UtilityInf), AddValueList, $(NWLNKRulesKeyHandle), $(NewValueList)
  279.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  280.             Debug-Output "NWLNK.INF: ShellCode error."
  281.             goto ShellCodeError
  282.         endif
  283.         set RegistryErrorIndex = $($R0)
  284.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  285.             CloseRegKey $(NWLNKVersKeyHandle)
  286.             CloseRegKey $(NWLNKRulesKeyHandle)
  287.             CloseRegKey $(NWLNKParmKeyHandle)
  288.             CloseRegKey $(NWLNKLinkageHandle)
  289.             CloseRegKey $(NWLNKSvcKeyHandle)
  290.             EndWait
  291.             Debug-Output "NWLNK.INF: Registry error: add value list."
  292.             goto fatalregistry
  293.         endif
  294.         ifstr(i) $(!STF_PRODUCT) != "WINNT"
  295.             set RipRoute = 1
  296.         else
  297.             set RipRoute = 0
  298.         endif
  299.         Shell $(UtilityInf) AddValueList, $(NWLNKParmKeyHandle),+
  300.             {{"DedicatedRouter", $(NoTitle), $(!REG_VT_DWORD), 0} +
  301.              {"InitDatagrams", $(NoTitle), $(!REG_VT_DWORD), 10} +
  302.              {"MaxDatagrams", $(NoTitle), $(!REG_VT_DWORD), 50} +
  303.              {"RipUsageTime", $(NoTitle), $(!REG_VT_DWORD), 15} +
  304.              {"SourceRouteUsageTime", $(NoTitle), $(!REG_VT_DWORD), 15} +
  305.              {"SocketUniqueness",   $(NoTitle), $(!REG_VT_DWORD), 8} +
  306.              {"SocketStart",   $(NoTitle), $(!REG_VT_DWORD), 16384} +
  307.              {"SocketEnd",   $(NoTitle), $(!REG_VT_DWORD), 24575} +
  308.              {"VirtualNetworkNumber",$(NoTitle), $(!REG_VT_DWORD), 0} +
  309.              {"RipRoute",       $(NoTitle), $(!REG_VT_DWORD), $(RipRoute)} +
  310.              {"RipTimeout",       $(NoTitle), $(!REG_VT_DWORD), 1} +
  311.              {"EnableWANRouter",  $(NoTitle), $(!REG_VT_DWORD), 0} +
  312.              {"ReplaceConfigDialog",  $(NoTitle), $(!REG_VT_DWORD), 0} +
  313.              {"RipCount",         $(NoTitle), $(!REG_VT_DWORD), 5}}
  314.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  315.             Debug-Output "NWLNK.INF: ShellCode error."
  316.             goto ShellCodeError
  317.         endif
  318.         set RegistryErrorIndex = $($R0)
  319.         CloseRegKey $(NWLNKVersKeyHandle)
  320.         CloseRegKey $(NWLNKRulesKeyHandle)
  321.         CloseRegKey $(NWLNKParmKeyHandle)
  322.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  323.             CloseRegKey $(NWLNKLinkageHandle)
  324.             CloseRegKey $(NWLNKSvcKeyHandle)
  325.             EndWait
  326.             Debug-Output "NWLNK.INF: Registry error: add value list."
  327.             goto fatalregistry
  328.         endif
  329.         CreateRegKey $(NWLNKSvcKeyHandle) {"Performance",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyPerformance
  330.         ifstr(i) $(KeyPerformance) != ""
  331.             Set NewValueList = {+
  332.                 {Close,$(NoTitle),$(!REG_VT_SZ),"CloseIPXPerformanceData"},+
  333.                 {Collect,$(NoTitle),$(!REG_VT_SZ),"CollectIPXPerformanceData"},+
  334.                 {Library,$(NoTitle),$(!REG_VT_SZ),"perfctrs.dll"},+
  335.                 {Open,$(NoTitle),$(!REG_VT_SZ),"OpenIPXPerformanceData"},+
  336.                 }
  337.             Shell  $(UtilityInf), AddValueList, $(KeyPerformance), $(NewValueList)
  338.             CloseRegKey $(KeyPerformance)
  339.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  340.                 Debug-Output "NWLNK.INF: ShellCode error."
  341.                 goto ShellCodeError
  342.             endif
  343.         endif
  344.         Shell "" CreateNWLNKConfiguration $(NWLNKSvcKeyHandle)
  345.         CloseRegKey $(NWLNKSvcKeyHandle)
  346.         Set RegistryErrorIndex = $($R0)
  347.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  348.             EndWait
  349.             Debug-Output "NWLNK.INF: Registry error: Create NWLNK configuration."
  350.             goto fatalregistry
  351.         endif
  352.         Shell $(UtilityInf), AddWinsockInfo, +
  353.              $(Product$(ThisOption)Name), +
  354.              $(Product$(ThisOption)WshDllPath), +
  355.              16,14
  356.         Shell $(UtilityInf) AddMixRpcProtocol "Netbios" "nwlnkipx" "ncacn_nb_ipx" "rpcltc5.dll" "rpclts5.dll"
  357.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Browser\Parameters" $(MAXIMUM_ALLOWED) BrowserParamKey
  358.         ifstr(i) $(BrowserParamKey) != ""
  359.             SetRegValue $(BrowserParamKey) {DirectHostBinding,$(NoTitle),$(!REG_VT_MULTI_SZ),{"\Device\NwlnkIpx","\Device\NwlnkNb"}}
  360.             CloseRegKey $(BrowserParamKey)
  361.         Endif
  362.     Endif
  363.     Ifstr(i) $(DoNWLNKNB) == TRUE
  364.         Set ThisOption = NWLNKNB
  365.         Set OEM_ABANDON_SOFTWARE = >($(OEM_ABANDON_SOFTWARE), $(Product$(ThisOption)Name))
  366.         Debug-Output "NWLNK.INF: installing NWLNKNB..."
  367.         Shell $(UtilityInf), AddSoftwareComponent,+
  368.             $(Manufacturer),+
  369.             $(Product$(ThisOption)Name),+
  370.             $(Product$(ThisOption)Name),+
  371.             $(Product$(ThisOption)DisplayName),+
  372.             $(STF_CONTEXTINFNAME),+
  373.             $(Product$(ThisOption)ImagePath),+
  374.             $(Product$(ThisOption)SvcType),+
  375.             "TDI",+
  376.             {},+
  377.             "",+
  378.             $(NWLNKIPXEventDLL)
  379.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  380.             Debug-Output "NWLNK.INF: ShellCode error"
  381.             goto ShellCodeError
  382.         endif
  383.         set RegistryErrorIndex = $($R0)
  384.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  385.             EndWait
  386.             Debug-Output "NWLNK.INF: Registry error: add software components"
  387.             CloseRegKey $($R1)
  388.             CloseRegKey $($R2)
  389.             CloseRegKey $($R3)
  390.             CloseRegKey $($R4)
  391.             CloseRegKey $($R5)
  392.             goto fatalregistry
  393.         endif
  394.         Set NWLNKNBProductKey      = $($R1)
  395.         Set NWLNKNBNetRuleKey      = $($R2)
  396.         Set NWLNKNBServiceKey      = $($R3)
  397.         Set NWLNKNBParameterKey    = $($R4)
  398.         Set NWLNKNBLinkageKey      = $($R5)
  399.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  400.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  401.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  402.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+
  403.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+
  404.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+
  405.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  406.         Shell  $(UtilityInf), AddValueList, $(NWLNKNBProductKey), $(NewValueList)
  407.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  408.             Debug-Output "NWLNK.INF: ShellCode error."
  409.             goto ShellCodeError
  410.         endif
  411.         set RegistryErrorIndex = $($R0)
  412.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  413.             EndWait
  414.             Debug-Output "NWLNK.INF: Registry error: add value list."
  415.             CloseRegKey $(NWLNKNBProductKey)
  416.             CloseRegKey $(NWLNKNBNetRuleKey)
  417.             CloseRegKey $(NWLNKNBServiceKey)
  418.             CloseRegKey $(NWLNKNBParameterKey)
  419.             CloseRegKey $(NWLNKNBLinkageKey)
  420.             goto fatalregistry
  421.         endif
  422.         set NewValueList = {{OtherDependencies,$(NoTitle),$(!REG_VT_MULTI_SZ),{"NWLNKIPX"}}}
  423.         Shell  $(UtilityInf), AddValueList, $(NWLNKNBLinkageKey), $(NewValueList)
  424.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  425.             Debug-Output "NWLNK.INF: ShellCode error."
  426.             goto ShellCodeError
  427.         endif
  428.         set RegistryErrorIndex = $($R0)
  429.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  430.             EndWait
  431.             Debug-Output "NWLNK.INF: Registry error: add value list."
  432.             CloseRegKey $(NWLNKNBProductKey)
  433.             CloseRegKey $(NWLNKNBNetRuleKey)
  434.             CloseRegKey $(NWLNKNBServiceKey)
  435.             CloseRegKey $(NWLNKNBParameterKey)
  436.             CloseRegKey $(NWLNKNBLinkageKey)
  437.             goto fatalregistry
  438.         endif
  439.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+
  440.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)},+
  441.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)BindForm)},+
  442.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)} }
  443.         Shell  $(UtilityInf), AddValueList, $(NWLNKNBNetRuleKey), $(NewValueList)
  444.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  445.             Debug-Output "NWLNK.INF: ShellCode error."
  446.             goto ShellCodeError
  447.         endif
  448.         set RegistryErrorIndex = $($R0)
  449.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  450.             EndWait
  451.             Debug-Output "NWLNK.INF: Registry error: add value list."
  452.             CloseRegKey $(NWLNKNBProductKey)
  453.             CloseRegKey $(NWLNKNBNetRuleKey)
  454.             CloseRegKey $(NWLNKNBServiceKey)
  455.             CloseRegKey $(NWLNKNBParameterKey)
  456.             CloseRegKey $(NWLNKNBLinkageKey)
  457.             goto fatalregistry
  458.         endif
  459.         Set NewValueList = {{NbProvider,$(NoTitle),$(!REG_VT_SZ),"_ipx"},+
  460.                 {EndPoint,$(NoTitle),$(!REG_VT_DWORD),1}}
  461.         Shell  $(UtilityInf), AddValueList, $(NWLNKNBParameterKey), $(NewValueList)
  462.         Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  463.             Debug-Output "NWLNK.INF: ShellCode error."
  464.             goto ShellCodeError
  465.         Endif
  466.         set RegistryErrorIndex = $($R0)
  467.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  468.             EndWait
  469.             CloseRegKey $(NWLNKNBProductKey)
  470.             CloseRegKey $(NWLNKNBNetRuleKey)
  471.             CloseRegKey $(NWLNKNBServiceKey)
  472.             CloseRegKey $(NWLNKNBParameterKey)
  473.             CloseRegKey $(NWLNKNBLinkageKey)
  474.             Debug-Output "NWLNK.INF: Registry error: add value list."
  475.             goto fatalregistry
  476.         endif
  477.         Shell $(UtilityInf) AddValueList, $(NWLNKNBParameterKey),+
  478.             {{"KeepaliveTimeout", $(NoTitle), $(!REG_VT_DWORD), 60} +
  479.              {"KeepaliveCount",   $(NoTitle), $(!REG_VT_DWORD), 8} +
  480.              {"ConnectionTimeout",$(NoTitle), $(!REG_VT_DWORD), 2} +
  481.              {"ConnectionCount",  $(NoTitle), $(!REG_VT_DWORD), 5} +
  482.              {"BroadcastTimeout", $(NoTitle), $(!REG_VT_DWORD), 1} +
  483.              {"BroadcastCount",   $(NoTitle), $(!REG_VT_DWORD), 3} +
  484.              {"Internet",         $(NoTitle), $(!REG_VT_DWORD), 1}}
  485.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  486.             Debug-Output "NWLNK.INF: ShellCode error."
  487.             goto ShellCodeError
  488.         endif
  489.         set RegistryErrorIndex = $($R0)
  490.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  491.             EndWait
  492.             CloseRegKey $(NWLNKNBProductKey)
  493.             CloseRegKey $(NWLNKNBNetRuleKey)
  494.             CloseRegKey $(NWLNKNBServiceKey)
  495.             CloseRegKey $(NWLNKNBParameterKey)
  496.             CloseRegKey $(NWLNKNBLinkageKey)
  497.             Debug-Output "NWLNK.INF: Registry error: add value list."
  498.             goto fatalregistry
  499.         endif
  500.         CreateRegKey $(NWLNKNBServiceKey) {"Performance",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyPerformance
  501.         ifstr(i) $(KeyPerformance) != ""
  502.             Set NewValueList = {+
  503.                 {Close,$(NoTitle),$(!REG_VT_SZ),"CloseNWNBPerformanceData"},+
  504.                 {Collect,$(NoTitle),$(!REG_VT_SZ),"CollectNWNBPerformanceData"},+
  505.                 {Library,$(NoTitle),$(!REG_VT_SZ),"perfctrs.dll"},+
  506.                 {Open,$(NoTitle),$(!REG_VT_SZ),"OpenNWNBPerformanceData"},+
  507.                 }
  508.             Shell  $(UtilityInf), AddValueList, $(KeyPerformance), $(NewValueList)
  509.             CloseRegKey $(KeyPerformance)
  510.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  511.                 Debug-Output "NWLNK.INF: ShellCode error."
  512.                 goto ShellCodeError
  513.             endif
  514.             set RegistryErrorIndex = $($R0)
  515.         endif
  516.         CloseRegKey $(NWLNKNBProductKey)
  517.         CloseRegKey $(NWLNKNBNetRuleKey)
  518.         CloseRegKey $(NWLNKNBServiceKey)
  519.         CloseRegKey $(NWLNKNBParameterKey)
  520.         CloseRegKey $(NWLNKNBLinkageKey)
  521.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  522.             EndWait
  523.             Debug-Output "NWLNK.INF: Registry error: add value list."
  524.             goto fatalregistry
  525.         endif
  526.     Endif
  527.     Ifstr(i) $(DoNWLNKSPX) == TRUE
  528.         Set ThisOption = NWLNKSPX
  529.         Set OEM_ABANDON_SOFTWARE = >($(OEM_ABANDON_SOFTWARE), $(Product$(ThisOption)Name))
  530.         Debug-Output "NWLNK.INF: installing NWLNKSPX..."
  531.         Shell $(UtilityInf), AddSoftwareComponent,+
  532.             $(Manufacturer),+
  533.             $(Product$(ThisOption)Name),+
  534.             $(Product$(ThisOption)Name),+
  535.             $(Product$(ThisOption)DisplayName),+
  536.             $(STF_CONTEXTINFNAME),+
  537.             $(Product$(ThisOption)ImagePath),+
  538.             $(Product$(ThisOption)SvcType),+
  539.             "",+
  540.             {"+NDIS"},"",+
  541.             $(NWLNKIPXEventDLL)
  542.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  543.             Debug-Output "NWLNK.INF: ShellCode error"
  544.             goto ShellCodeError
  545.         endif
  546.         set RegistryErrorIndex = $($R0)
  547.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  548.             EndWait
  549.             Debug-Output "NWLNK.INF: Registry error: add software components"
  550.             CloseRegKey $($R1)
  551.             CloseRegKey $($R2)
  552.             CloseRegKey $($R3)
  553.             CloseRegKey $($R4)
  554.             CloseRegKey $($R5)
  555.             goto fatalregistry
  556.         endif
  557.         Set NWLNKSPXProductKey      = $($R1)
  558.         Set NWLNKSPXNetRuleKey      = $($R2)
  559.         Set NWLNKSPXServiceKey      = $($R3)
  560.         Set NWLNKSPXParameterKey    = $($R4)
  561.         Set NWLNKSPXLinkageKey      = $($R5)
  562.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  563.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  564.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  565.                            {Hidden,$(NoTitle),$(!REG_VT_DWORD),1},+
  566.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+
  567.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+
  568.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+
  569.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  570.         Shell  $(UtilityInf), AddValueList, $(NWLNKSPXProductKey), $(NewValueList)
  571.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  572.             Debug-Output "NWLNK.INF: ShellCode error."
  573.             goto ShellCodeError
  574.         endif
  575.         set RegistryErrorIndex = $($R0)
  576.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  577.             EndWait
  578.             Debug-Output "NWLNK.INF: Registry error: add value list."
  579.             CloseRegKey $(NWLNKSPXProductKey)
  580.             CloseRegKey $(NWLNKSPXNetRuleKey)
  581.             CloseRegKey $(NWLNKSPXServiceKey)
  582.             CloseRegKey $(NWLNKSPXParameterKey)
  583.             CloseRegKey $(NWLNKSPXLinkageKey)
  584.             goto fatalregistry
  585.         endif
  586.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+
  587.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)},+
  588.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)BindForm)},+
  589.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(ThisOption)Bindable)},+
  590.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(ThisOption)Class)},+
  591.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)} }
  592.         Shell  $(UtilityInf), AddValueList, $(NWLNKSPXNetRuleKey), $(NewValueList)
  593.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  594.             Debug-Output "NWLNK.INF: ShellCode error."
  595.             goto ShellCodeError
  596.         endif
  597.         set RegistryErrorIndex = $($R0)
  598.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  599.             EndWait
  600.             Debug-Output "NWLNK.INF: Registry error: add value list."
  601.             CloseRegKey $(NWLNKSPXProductKey)
  602.             CloseRegKey $(NWLNKSPXNetRuleKey)
  603.             CloseRegKey $(NWLNKSPXServiceKey)
  604.             CloseRegKey $(NWLNKSPXParameterKey)
  605.             CloseRegKey $(NWLNKSPXLinkageKey)
  606.             goto fatalregistry
  607.         endif
  608.         Shell $(UtilityInf) AddValueList, $(NWLNKSPXParameterKey),+
  609.             {{"ConnectionCount", $(NoTitle), $(!REG_VT_DWORD), 5} +
  610.              {"ConnectionTimeout",   $(NoTitle), $(!REG_VT_DWORD), 2} +
  611.              {"InitPackets",$(NoTitle), $(!REG_VT_DWORD), 5} +
  612.              {"MaxPackets",  $(NoTitle), $(!REG_VT_DWORD), 48} +
  613.              {"InitialRetransmissionTime", $(NoTitle), $(!REG_VT_DWORD), 500} +
  614.              {"KeepAliveCount",   $(NoTitle), $(!REG_VT_DWORD), 8} +
  615.              {"WindowSize",   $(NoTitle), $(!REG_VT_DWORD), 4} +
  616.              {"SpxSocketRangeStart",   $(NoTitle), $(!REG_VT_DWORD), 24576} +
  617.              {"SpxSocketRangeEnd",   $(NoTitle), $(!REG_VT_DWORD), 32767} +
  618.              {"SpxSocketUniqueness",   $(NoTitle), $(!REG_VT_DWORD), 1} +
  619.              {"MaxPacketSize",   $(NoTitle), $(!REG_VT_DWORD), 4096} +
  620.              {"RetransmissionCount",   $(NoTitle), $(!REG_VT_DWORD), 8} +
  621.              {"KeepAliveTimeout",         $(NoTitle), $(!REG_VT_DWORD), 12}}
  622.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  623.             Debug-Output "NWLNK.INF: ShellCode error."
  624.             goto ShellCodeError
  625.         endif
  626.         set RegistryErrorIndex = $($R0)
  627.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  628.             EndWait
  629.             CloseRegKey $(NWLNKSPXProductKey)
  630.             CloseRegKey $(NWLNKSPXNetRuleKey)
  631.             CloseRegKey $(NWLNKSPXServiceKey)
  632.             CloseRegKey $(NWLNKSPXParameterKey)
  633.             CloseRegKey $(NWLNKSPXLinkageKey)
  634.             Debug-Output "NWLNK.INF: Registry error: add value list."
  635.             goto fatalregistry
  636.         endif
  637.         CreateRegKey $(NWLNKSPXServiceKey) {"Performance",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyPerformance
  638.         ifstr(i) $(KeyPerformance) != ""
  639.             Set NewValueList = {+
  640.                 {Close,$(NoTitle),$(!REG_VT_SZ),"CloseSPXPerformanceData"},+
  641.                 {Collect,$(NoTitle),$(!REG_VT_SZ),"CollectSPXPerformanceData"},+
  642.                 {Library,$(NoTitle),$(!REG_VT_SZ),"perfctrs.dll"},+
  643.                 {Open,$(NoTitle),$(!REG_VT_SZ),"OpenSPXPerformanceData"},+
  644.                 }
  645.             Shell  $(UtilityInf), AddValueList, $(KeyPerformance), $(NewValueList)
  646.             CloseRegKey $(KeyPerformance)
  647.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  648.                 Debug-Output "NWLNK.INF: ShellCode error."
  649.                 goto ShellCodeError
  650.             endif
  651.             set RegistryErrorIndex = $($R0)
  652.         endif
  653.         CloseRegKey $(NWLNKSPXProductKey)
  654.         CloseRegKey $(NWLNKSPXNetRuleKey)
  655.         CloseRegKey $(NWLNKSPXServiceKey)
  656.         CloseRegKey $(NWLNKSPXParameterKey)
  657.         CloseRegKey $(NWLNKSPXLinkageKey)
  658.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  659.             EndWait
  660.             Debug-Output "NWLNK.INF: Registry error: add value list."
  661.             goto fatalregistry
  662.         endif
  663.         Shell $(UtilityInf), AddWinsockInfo, +
  664.              $(Product$(ThisOption)Name), +
  665.              $(ProductNWLNKIPXWshDllPath), +
  666.              16,14
  667.     Shell $(UtilityInf), AddServiceProvider, $(ProductNWLNKIPXName), +
  668.         $(ProviderImagePath), $(ProductNWLNKIPXDisplayName), 8
  669.         Shell $(UtilityInf) AddClientRpcProtocol "ncadg_ipx" "rpcdgc6.dll"
  670.         Shell $(UtilityInf) AddClientRpcProtocol "ncacn_spx" "rpcltc6.dll"
  671.     Endif
  672.     ifstr(i) $(!STF_GUI_UNATTENDED) != YES
  673.         ifstr(i) $(InstallFromRas) != "YES"
  674.             OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\RASMan" $(MAXIMUM_ALLOWED) RASKey
  675.             ifstr(i) $(RASKey) != ""
  676.                 Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(RASRebindError)
  677.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  678.                     goto ShellCodeError
  679.                 endif
  680.                 CloseRegKey $(RASKey)
  681.                 ifstr(i) $($R1) == "OK"
  682.                     set SaveNTN_InstallMode = $(!NTN_InstallMode)
  683.                     set !NTN_InstallMode = configure
  684.                     Shell "oemnsvra.inf" InstallOption $(!STF_LANGUAGE) "RAS" $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig) 
  685.                     set !NTN_InstallMode = $(SaveNTN_InstallMode)
  686.                 endif
  687.             endif
  688.         endif
  689.     endif
  690.     LibraryProcedure DontCare $(!NCPA_HANDLE), CPlSetup $(!STF_HWND),+
  691.               SECURESVC, $(ProductNWLNKSPXName), 3
  692.     EndWait
  693.     Ifint $(BillboardVisible) != 0
  694.         Shell "subroutn.inf" PopBillboard
  695.         Set BillboardVisible = 0
  696.     Endif
  697.     goto successful
  698. configureadapter = +
  699.     Debug-Output "NWLNK.INF: At ConfigureAdapter"
  700.     ifstr(i) $(Option) == "NWLNKIPX"
  701.         Set BindList = {}
  702.         OpenRegKey $(!REG_H_LOCAL) "" $(LinkageKeyName) $(MAXIMUM_ALLOWED) LinkageKey
  703.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  704.             GetRegValue $(LinkageKey) "Bind" BindList
  705.             ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  706.                set BindList = *($(BindList),4)
  707.             else
  708.                Set BindList = {}
  709.             endif
  710.             CloseRegKey $(LinkageKey)
  711.         endif
  712.         ifstr(i) $(BindList) == {}
  713.             debug-output "NWLNK.INF: no binding info; warning user"
  714.             read-syms InfoDlgCantConfigure
  715.             goto infomsg
  716.         endif
  717.         Debug-Output "NWLNK.INF: configureadapter, BindList = "$(BindList)
  718.         set OldVersionExisted = $(TRUE)
  719.         set CardList = ""
  720.         ForListDo $(BindList)
  721.             Split-String $($), "\", BindInfo
  722.             QueryListSize BindElem $(BindInfo)
  723.             Set BindName = *($(BindInfo),$(BindElem))
  724.             OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(BindName) $(MAXIMUM_ALLOWED) CardServiceKey
  725.             ifstr(i) $(CardServiceKey) != ""
  726.                 CloseRegKey $(CardServiceKey)
  727.                 Set CardList = $(CardList)"@"$(BindName)
  728.             endif
  729.         EndForListDo
  730.         ifstr(i) $(CardList) != ""
  731.             Debug-Output "NWLNK.INF: configureadapter, CardList = "$(CardList)
  732.             LoadLibrary "x", $(!STF_WINDOWSSYSPATH)\ipxcfg.dll NWLNKLIB_HANDLE
  733.             set FLibraryErrCtl = 1
  734.             ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  735.             LibraryProcedure ResultList, $(NWLNKLIB_HANDLE), RunIpxDlg, $(!STF_HWND) $(!STF_PRODUCT) "YES" $(!AUTONETIPXFRAMETYPE)
  736.             else
  737.                 LibraryProcedure ResultList, $(NWLNKLIB_HANDLE), RunIpxDlg, $(!STF_HWND) $(!STF_PRODUCT)
  738.             endif
  739.             FreeLibrary $(NWLNKLIB_HANDLE)
  740.             set FLibraryErrCtl = 0
  741.             Debug-Output "NWLNK.INF: configureadapter, ResultList = "$(ResultList)
  742.             Set Result = *($(ResultList),1)
  743.             Ifint $(Result) == 0
  744.                 set CommonStatus = STATUS_NO_EFFECT
  745.             Else
  746.                 set CommonStatus = STATUS_REBOOT
  747.             Endif
  748.         else
  749.             set CommonStatus = STATUS_USERCANCEL
  750.         endif
  751.     else
  752.         Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  753.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  754.             Debug-Output "OEMNXPI1.INF: ShellCode error: cannot get an error string."
  755.             goto ShellCodeError
  756.         endif
  757.         set Error = $($R0)
  758.         set from = end
  759.         set to = end
  760.         set CommonStatus = STATUS_NO_EFFECT
  761.         goto nonfatal
  762.     endif
  763.     goto end
  764. bindingadapter =+
  765.     OpenRegKey $(!REG_H_LOCAL) "" $(LinkageKeyName) $(MAXIMUM_ALLOWED) KeyLinkage
  766.     ifstr(i) $(KeyLinkage) != ""
  767.         SetRegValue $(KeyLinkage) {Export,$(NoTitle),$(!REG_VT_MULTI_SZ),{"\Device\NwlnkIpx"}}
  768.         CloseRegKey $(KeyLinkage)
  769.     endif
  770.     Shell "nbinfo.inf" CheckMixRpcProtocol "NwlnkNb" 7 "nwlnkipx" "ncacn_nb_ipx" "rpcltc5.dll" "rpclts5.dll"
  771.     LoadLibrary "x", $(!STF_WINDOWSSYSPATH)\ipxcfg.dll NWLNKLIB_HANDLE
  772.     set FLibraryErrCtl = 1
  773.     LibraryProcedure ResultList, $(NWLNKLIB_HANDLE), IPXCfgChk
  774.     FreeLibrary $(NWLNKLIB_HANDLE)
  775.     set FLibraryErrCtl = 0
  776.     Set Result = *($(ResultList),1)
  777.     ifint $(Result) == 0
  778.         Debug-Output "OEMNXPI1.INF:  reconfiguration not required"
  779.         set CommonStatus = STATUS_USERCANCEL
  780.         goto successful
  781.     else
  782.         Debug-Output "OEMNXPI1.INF:  reconfiguration required"
  783.     endif
  784.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  785.     ifstr(i) $(KeyProduct) != ""
  786.         GetRegValue $(KeyProduct) "STF_GUI_UNATTENDED" UnattendedList
  787.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  788.         set !STF_GUI_UNATTENDED = *($(UnattendedList),4)
  789.         DeleteRegValue $(KeyProduct) "STF_GUI_UNATTENDED"
  790.     endif
  791.         GetRegValue $(KeyProduct) "AUTONETIPXFRAMETYPE" FrameTypeList
  792.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  793.         set !AUTONETIPXFRAMETYPE = *($(FrameTypeList),4)
  794.         DeleteRegValue $(KeyProduct) "AUTONETIPXFRAMETYPE"
  795.     endif
  796.     CloseRegKey $(KeyProduct)
  797.     endif
  798.     goto configureadapter
  799. removeadapter = +
  800.     Shell $(UtilityInf), IsRefCountEqualZero $(ProductKeyName)
  801.     ifint $($R1) == 0
  802.         read-syms InUse$(!STF_LANGUAGE)
  803.         goto infomsg
  804.     endif
  805.     Debug-Output "NWLNK.INF: At removeadapter"
  806.     Shell $(UtilityInf), RemoveWinsockInfo, $(ProductNWLNKIPXName)
  807.     Shell $(UtilityInf), RemoveWinsockInfo, $(ProductNWLNKSPXName)
  808.     Shell $(UtilityInf) RemoveRpcProtocol "ncacn_nb_ipx"
  809.     Shell $(UtilityInf) RemoveClientRpcProtocol "ncadg_ipx"
  810.     Shell $(UtilityInf) RemoveClientRpcProtocol "ncacn_spx"
  811.     ForListDo $(OEM_ABANDON_SOFTWARE)
  812.         DEBUG-OUTPUT "Remove component: "$($)
  813.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), $($)
  814.     EndForListDo
  815.     ForListDo  $(OEM_ABANDON_OPTIONS)
  816.         DEBUG-OUTPUT "Remove component: "$($)
  817.         Set UseSvcctrl = "YES"
  818.         Shell $(UtilityInf), RemoveService, $($), $(UseSvcctrl)
  819.     EndForListDo
  820.     Shell $(UtilityInf) RemoveServiceProvider $(ProductNWLNKIPXName)
  821.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Browser\Parameters" $(MAXIMUM_ALLOWED) BrowserParamKey
  822.     ifstr(i) $(BrowserParamKey) != ""
  823.         DeleteRegValue $(BrowserParamKey) "DirectHostBinding"
  824.         CloseRegKey $(BrowserParamKey)
  825.     Endif
  826.     goto end
  827. UpgradeSoftware = +
  828.     OpenRegKey $(!REG_H_LOCAL) "" $(OldProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  829.     Ifstr $(KeyProduct) != $(KeyNull)
  830.         install "Install-Update"
  831.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  832.             goto fatal
  833.         endif
  834.         GetRegValue $(KeyProduct),"RefCount", RefCountInfo
  835.         CloseRegKey $(KeyProduct)
  836.         set OEM_ABANDON_OPTIONS = {+
  837.             "NWLINKSYS",+
  838.             "NWLINKSPX",+
  839.             "NWNBLINKSYS"}
  840.         set OEM_ABANDON_SOFTWARE = {+
  841.             "NWNBLINK",+
  842.             "NWLINKIPX",+
  843.             Streams}
  844.         Debug-Output "NWLINK.INF: At removeadapter"
  845.         Shell $(UtilityInf), RemoveWinsockInfo, "NWLINKIPX"
  846.         Shell $(UtilityInf) RemoveRpcProtocol "ncacn_nb_ipx"
  847.         Ifstr(i) $($0) != NO_ERROR
  848.             Debug-Output "OEMNXPIP.INF: ERROR deleting IPX RPC protocol data"
  849.         Endif
  850.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NWCWorkstation" $(MAXIMUM_ALLOWED) NwcKey
  851.         ifstr(i) $(NwcKey) == ""
  852.             Shell $(UtilityInf) RemoveServerRpcProtocol "ncadg_ipx"
  853.             Ifstr(i) $($0) != NO_ERROR
  854.                 Debug-Output "OEMNXPIP.INF: ERROR deleting IPX RPC protocol data"
  855.             Endif
  856.             Shell $(UtilityInf) RemoveServerRpcProtocol "ncacn_spx"
  857.             Ifstr(i) $($0) != NO_ERROR
  858.                 Debug-Output "OEMNXPIP.INF: ERROR deleting SPX RPC protocol data"
  859.             Endif
  860.         else
  861.             CloseRegKey $(NwcKey)
  862.         endif
  863.         ForListDo $(OEM_ABANDON_SOFTWARE)
  864.             DEBUG-OUTPUT "Remove component: "$($)
  865.             ifstr(i) $($) == "Streams"
  866.                 Shell $(UtilityInf), RemoveStreams
  867.             else
  868.                 Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), $($), FALSE
  869.             endif
  870.         EndForListDo
  871.         ForListDo  $(OEM_ABANDON_OPTIONS)
  872.             DEBUG-OUTPUT "Remove component: "$($)
  873.             ifstr(i) $($) != "NWLINKSPX"
  874.                 Set UseSvcctrl = "YES"
  875.             else
  876.                 Set UseSvcctrl = "NO"
  877.             endif
  878.             Shell $(UtilityInf), RemoveService, $($), $(UseSvcctrl)
  879.         EndForListDo
  880.         set OldInstallMode = $(!NTN_InstallMode)
  881.         set !NTN_InstallMode = install
  882.         Shell "" "InstallOption" $(!STF_LANGUAGE) "NWLNKIPX" +
  883.            $(!STF_SRCDIR) "NO" "NO" $(DoConfig)
  884.         set !NTN_InstallMode = $(OldInstallMode)
  885.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  886.         ifstr(i) $(KeyProduct) != ""
  887.             SetRegValue $(KeyProduct), $(RefCountInfo)
  888.             CloseRegKey $(KeyProduct)
  889.         endif
  890.     else
  891.         install "Install-Update"
  892.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  893.             goto fatal
  894.         endif
  895.         CloseRegKey $(KeyProduct)
  896.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NwlnkIpx\Parameters" $(MAXIMUM_ALLOWED) KeyParameters
  897.         ifstr(i) $(KeyParameters) != ""
  898.             GetRegValue $(KeyParameters), "ReplaceConfigDialog", ReplaceInfo
  899.             Debug-Output "GetRegValue returned "$(RegLastError)
  900.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  901.             SetRegValue $(KeyParameters) {ReplaceConfigDialog,$(NoTitle),$(!REG_VT_DWORD),0}
  902.             endif
  903.             CloseRegKey $(KeyParameters)
  904.         endif
  905.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NwlnkSpx\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) KeyNetRules
  906.         ifstr(i) $(KeyNetRules) != ""
  907.             set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleNWLNKSPXType)},+
  908.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleNWLNKSPXBindable)},+
  909.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleNWLNKSPXClass)},+
  910.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleNWLNKSPXUse)},+
  911.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleNWLNKSPXBindForm)}}
  912.             Shell  $(UtilityInf), AddValueList, $(KeyNetRules), $(NewValueList)
  913.             CloseRegKey $(KeyNetRules)
  914.         endif
  915.     Shell $(UtilityInf), AddServiceProvider, $(ProductNWLNKIPXName), +
  916.         $(ProviderImagePath), 8
  917.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NWCWorkstation" $(MAXIMUM_ALLOWED) NwcKey
  918.         ifstr(i) $(NwcKey) == ""
  919.             Shell $(UtilityInf) RemoveServerRpcProtocol "ncadg_ipx"
  920.             Shell $(UtilityInf) RemoveServerRpcProtocol "ncacn_spx"
  921.         else
  922.             CloseRegKey $(NwcKey)
  923.         endif
  924.         Shell $(UtilityInf) AddClientRpcProtocol "ncadg_ipx" "rpcdgc6.dll"
  925.         Shell $(UtilityInf) AddClientRpcProtocol "ncacn_spx" "rpcltc6.dll"
  926.     endif
  927.     LibraryProcedure DontCare $(!NCPA_HANDLE), CPlSetup $(!STF_HWND),+
  928.               SECURESVC, $(ProductNWLNKSPXName), 3
  929.     goto end
  930. successful = +
  931.     goto end
  932. infomsg =+
  933.    read-syms InfoDlg
  934.    ui start "Warning"
  935.    set CommonStatus = STATUS_USERCANCEL
  936.    goto end
  937. warning = +
  938.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  939.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  940.         goto ShellCodeError
  941.     endif
  942.     ifstr(i) $($R1) == "OK"
  943.         goto $(to)
  944.     else-ifstr(i) $($R1) == "CANCEL"
  945.         goto $(from)
  946.     else
  947.         goto "end"
  948.     endif
  949. nonfatal = +
  950.     ifstr(i) $(Error) == ""
  951.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  952.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  953.             goto ShellCodeError
  954.         endif
  955.         set Error = $($R0)
  956.     endif
  957.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", $(Error)
  958.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  959.         goto ShellCodeError
  960.     endif
  961.     ifstr(i) $($R1) == "OK"
  962.         goto $(from)
  963.     else
  964.         goto "end"
  965.     endif
  966. fatalregistry = +
  967.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  968.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  969.         goto ShellCodeError
  970.     endif
  971.     set Error = $($R0)
  972.     goto fatal
  973. fatal = +
  974.     ifstr(i) $(Error) == ""
  975.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  976.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  977.             goto ShellCodeError
  978.         endif
  979.         set Error = $($R0)
  980.     endif
  981.     Ifint $(BillboardVisible) != 0
  982.         Shell "subroutn.inf" PopBillboard
  983.         Set BillboardVisible = 0
  984.     Endif
  985.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  986.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  987.         goto ShellCodeError
  988.     endif
  989.    goto setfailed
  990. ShellCodeError = +
  991.     set DlgType      = "MessageBox"
  992.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  993.     set STF_MB_TEXT  = $(ShellCodeErrorText)
  994.     set STF_MB_TYPE  = 1
  995.     set STF_MB_ICON  = 3
  996.     set STF_MB_DEF   = 1
  997.     ui start "Error Message"
  998.     goto setfailed
  999. setfailed = +
  1000.     set CommonStatus = STATUS_FAILED
  1001.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1002.         set OEM_ABANDON_ON = FALSE
  1003.         goto removeadapter
  1004.     endif
  1005.     goto end
  1006. end = +
  1007.     goto term
  1008. term = +
  1009.     Return $(CommonStatus)
  1010. [CreateNWLNKConfiguration]
  1011.     read-syms GeneralConstants
  1012.     Set NWLNKSvcKeyHandle = $($0)
  1013.     Debug-Output "NWLNK.INF: installing NWLNK configuration:"
  1014.     CreateRegKey $(NWLNKSvcKeyHandle) {"NetConfig",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyNetConfig
  1015.     CloseRegKey $(KeyNetConfig)
  1016. CreateNWLNKConfigDone = +
  1017.     Debug-Output "NWLNK.INF: installing NWLNK.....done."
  1018.     Return NO_ERROR
  1019. [Install-Option]
  1020.     set STF_VITAL = ""
  1021.     ifstr(i) $(AddCopy) == "YES"
  1022.         Debug-Output "NWLNK.INF: Adding files to copy list"
  1023.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1024.         AddSectionFilesToCopyList Files-NWLNKEXE $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1025.     endif
  1026.     ifstr(i) $(DoCopy) == "YES"
  1027.        Debug-Output "NWLNK.INF: Copying Files"
  1028.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1029.        CopyFilesInCopyList
  1030.     endif
  1031.     ifstr(i) $(DoConfig) == "YES"
  1032.     endif
  1033.     Exit
  1034. [Install-Update]
  1035.    set STF_VITAL        = ""
  1036.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1037.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1038.    AddSectionFilesToCopyList Files-NWLNKEXE $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1039.    Exit
  1040. [Source Media Descriptions]
  1041.      1 = "Windows NT Server CD-ROM または セットアップ ディスク #5" , TAGFILE = disk1.s
  1042.      2 = "Windows NT Server CD-ROM または セットアップ ディスク #6" , TAGFILE = disk2.s
  1043.      3 = "Windows NT Server CD-ROM または セットアップ ディスク #7" , TAGFILE = disk3.s
  1044.      4 = "Windows NT Server CD-ROM または セットアップ ディスク #8" , TAGFILE = disk4.s
  1045.      5 = "Windows NT Server CD-ROM または セットアップ ディスク #9" , TAGFILE = disk5.s
  1046.      6 = "Windows NT Server CD-ROM または セットアップ ディスク #10" , TAGFILE = disk6.s
  1047.      7 = "Windows NT Server CD-ROM または セットアップ ディスク #11", TAGFILE = disk7.s
  1048.      8 = "Windows NT Server CD-ROM または セットアップ ディスク #12", TAGFILE = disk8.s
  1049.      9 = "Windows NT Server CD-ROM または セットアップ ディスク #13", TAGFILE = disk9.s
  1050.     10 = "Windows NT Server CD-ROM または セットアップ ディスク #14", TAGFILE = disk10.s
  1051.     11 = "Windows NT Server CD-ROM または セットアップ ディスク #15", TAGFILE = disk11.s
  1052.     12 = "Windows NT Server CD-ROM または セットアップ ディスク #16", TAGFILE = disk12.s
  1053.     13 = "Windows NT Server CD-ROM または セットアップ ディスク #17", TAGFILE = disk13.s
  1054.     14 = "Windows NT Server CD-ROM または セットアップ ディスク #18", TAGFILE = disk14.s
  1055.     15 = "Windows NT Server CD-ROM または セットアップ ディスク #19", TAGFILE = disk15.s
  1056.     16 = "Windows NT Server CD-ROM または セットアップ ディスク #20", TAGFILE = disk16.s
  1057.     17 = "Windows NT Server CD-ROM または セットアップ ディスク #21", TAGFILE = disk17.s
  1058.     18 = "Windows NT Server CD-ROM または セットアップ ディスク #22", TAGFILE = disk18.s
  1059.     19 = "Windows NT Server CD-ROM または セットアップ ディスク #23", TAGFILE = disk19.s
  1060.     20 = "Windows NT Server CD-ROM または セットアップ ディスク #24", TAGFILE = disk20.s
  1061.     21 = "Windows NT Server CD-ROM または セットアップ ディスク #25", TAGFILE = disk21.s
  1062.     22 = "Windows NT Server CD-ROM または セットアップ ディスク #26", TAGFILE = disk22.s
  1063.     23 = "Windows NT Server CD-ROM または セットアップ ディスク #27", TAGFILE = disk23.s
  1064.     24 = "Windows NT Server CD-ROM または セットアップ ディスク #28", TAGFILE = disk24.s
  1065.     25 = "Windows NT Server CD-ROM または セットアップ ディスク #29", TAGFILE = disk25.s
  1066.     26 = "Windows NT Server CD-ROM または セットアップ ディスク #30", TAGFILE = disk26.s
  1067.     27 = "Windows NT Server CD-ROM または セットアップ ディスク #31", TAGFILE = disk27.s
  1068.     28 = "Windows NT Server CD-ROM または セットアップ ディスク #32", TAGFILE = disk28.s
  1069.     29 = "Windows NT Server CD-ROM または セットアップ ディスク #33", TAGFILE = disk29.s
  1070.     30 = "Windows NT Server CD-ROM または セットアップ ディスク #34", TAGFILE = disk30.s
  1071.     50 = "Windows NT Server CD-ROM または リモートブート ディスク #1", TAGFILE = disk50.s
  1072.     51 = "Windows NT Server CD-ROM または リモートブート ディスク #2", TAGFILE = disk51.s
  1073. [Signature]
  1074.     FileType = MICROSOFT_FILE
  1075. [GetSignature]
  1076.     read-syms Signature
  1077.     return $(FileType)
  1078. [ProductType]
  1079. STF_PRODUCT  = LanmanNT
  1080. STF_PLATFORM = I386
  1081. [Files-Inf]
  1082. 2,    oemsetup.inf,     SIZE=1000,    RENAME=$(!UG_Filename)
  1083. [Files-NWLNKEXE]
  1084. 17,IPXCFG.DLL , SIZE=28672
  1085. 17,IPXROUTE.EXE , SIZE=15360
  1086. 24,NWPROVAU.DLL , SIZE=83968
  1087. [Files-NWLNKIPX]
  1088. 17,NWLNKIPX.SYS , SIZE=55296
  1089. 17,NWLNKNB.SYS , SIZE=61440
  1090. 17,NWLNKSPX.SYS , SIZE=58368
  1091. [LanguagesSupported]
  1092.     ENG
  1093. [OptionsTextENG]
  1094.     NWLNKIPX     = "NWLink IPX/SPX 互換トランスポート"
  1095. [FileConstantsENG]
  1096. ProCaption   = "Windows NT セットアップ"
  1097. ProCancel    = "キャンセル"
  1098. ProCancelMsg = "Windows NT ネットワークは正しく組み込まれていません。"+
  1099.                "ファイルのコピーを中止しますか?"
  1100. ProCancelCap = "ネットワーク セットアップ メッセージ"
  1101. ProText1     = "コピー元:"
  1102. ProText2     = "コピー先:"
  1103. FunctionTitle            = "NWLink IPX/SPX 互換トランスポート セットアップ"
  1104. ProductNWLNKIPXDescription  = "NWLink IPX/SPX 互換トランスポート ドライバ"
  1105. ProductNWLNKIPXDisplayName = "NWLink IPX/SPX 互換トランスポート プロトコル"
  1106. ProductNWLNKIPXTitle       = "NWLink IPX/SPX 互換トランスポート"
  1107. ProductNWLNKNBDescription   = "NWLink NetBIOS ドライバ"
  1108. ProductNWLNKNBDisplayName  = "NWLink NetBIOS"
  1109. ProductNWLNKNBTitle        = "NWLink NetBIOS"
  1110. ProductNWLNKNBSYSDisplayName = "NWLinkNBsys"
  1111. ProductNWLNKNBSYSTitle     = "NWLINK NetBIOS ドライバ"
  1112. ProductNWLNKSPXDescription  = "NWLink SPX プロトコル ドライバ"
  1113. ProductNWLNKSPXDisplayName = "NWLink SPX/SPXII Protocol"
  1114. ProductNWLNKSPXTitle       = "NWLink SPX プロトコル"
  1115. CompetitorDisplayName = "NWLink IPX/SPX II Transport"
  1116. ShellCodeErrorTitle     = "エラー: "$(FunctionTitle)
  1117. ShellCodeErrorText      = "シェル コード エラーです。"
  1118. RASRebindError = "セットアップはリモート アクセス サービスが組み込まれているのを検出しました。NWLINK プロトコルをサポートするように RAS を構成しますか?"
  1119. [DialogConstantsENG]
  1120. Help        = "ヘルプ(&H)"
  1121. Exit        = "キャンセル"
  1122. OK          = "OK"
  1123. HelpContext = ""
  1124. Continue    = "続行(&O)"
  1125. Cancel      = "キャンセル(&A)"
  1126. [FileDependentDlgENG]
  1127. [InfoDlg]
  1128. STF_MB_TITLE = "情報メッセージ"
  1129. DlgType      = "MessageBox"
  1130. STF_MB_TEXT  = $(InfoMsgText)
  1131. STF_MB_TYPE  = 1
  1132. STF_MB_ICON  = 5
  1133. STF_MB_DEF   = 1
  1134. [InfoDlgCantConfigure]
  1135. InfoMsgText = "現在 IPX プロトコル サービスは、アダプタを使用するように構成されていません。"+
  1136.     "組み込みの直後であれば、[ネットワーク]ダイアログ ボックスに戻って[OK]ボタンを"+
  1137.     "クリックしてください。このアダプタの構成を行うことができます。"
  1138. [InUseENG]
  1139. InfoMsgText = "IPX プロトコル サービスは、ほかのサービスで使用されています。"+
  1140.     "IPX プロトコルを削除する前に、ほかの関連コンポーネントを削除してください。"
  1141. [Billboard1ENG]
  1142. Status = "IPX プロトコルおよび関連するサービスを組み込んでいます..."
  1143. [FatalError1ENG]
  1144. Error = "現在ほかの IPX/SPX プロトコル ドライバがこのマシンに組み込まれています。"+
  1145.         "両方のドライバを組み込むと、ネットワーク インターフェイスが正しく動作しません。"+
  1146.         "NWLINK プロトコル ドライバを組み込む場合は、"+
  1147.         "まず、"$(CompetitorDisplayName)" コンポーネントを削除し、マシンを再起動しなければなりません。"
  1148.