home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / d / d423_liu / 8.ddi / OEMNADD1.IN_ / OEMNADD1.IN
Encoding:
INI File  |  1993-07-24  |  32.3 KB  |  837 lines

  1. [Identification]
  2.     OptionType = NetAdapter
  3. [PlatformsSupported]
  4.     ISA
  5.     EISA
  6.     "Jazz-Internal Bus"
  7. [Options]
  8.     DEC100
  9.     DEC101
  10. [FileConstants]
  11. UtilityInf      = "UTILITY.INF"
  12. subroutineinf   = "SUBROUTN.INF"
  13. ParamInf        = "NCPARAM.INF"
  14. SoftwareType    = "driver"
  15. Exit_Code       = 0
  16. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  17. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  18. Manufacturer    = "Microsoft"
  19. ProductMajorVersion     = "3"
  20. ProductMinorVersion     = "1"
  21. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  22. ProductSoftwareName     = "Lance"
  23. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\lance.sys"
  24. NetRuleSoftwareType     = "lanceSys ndisDriver lanceDriver"
  25. NetRuleSoftwareUse      = $(SoftwareType)
  26. NetRuleSoftwareBindForm = """LanceSys"" yes no container"
  27. NetRuleSoftwareClass    = {"lanceDriver basic"}
  28. ProductHardwareName             = "Lance"
  29. NetRuleHardwareDEC100Type       = "dec100 dec100Adapter"
  30. NetRuleHardwareDEC101Type       = "dec101 dec101Adapter"
  31. NetRuleHardwareBindForm         = " yes yes container"
  32. NetRuleHardwareDEC100Class      = {"dec100Adapter basic"}
  33. NetRuleHardwareDEC101Class      = {"dec101Adapter basic"}
  34. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  35. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  36. [GeneralConstants]
  37. from      = ""
  38. to        = ""
  39. ExitCodeOk     = 0
  40. ExitCodeCancel = 1
  41. ExitCodeFatal  = 2
  42. KeyNull         = ""
  43. MAXIMUM_ALLOWED   = 33554432
  44. RegistryErrorIndex = NO_ERROR
  45. KeyProduct      = ""
  46. KeyParameters   = ""
  47. TRUE            = 1
  48. FALSE           = 0
  49. NoTitle            = 0
  50. ExitState   = "Active"
  51. OldVersionExisted = $(FALSE)
  52. DriverPath      = $(!STF_NTPATH)\drivers
  53. [date]
  54.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  55. [Identify]
  56.     read-syms Identification
  57.     set Status     = STATUS_SUCCESSFUL
  58.     set Identifier = $(OptionType)
  59.     set Media      = #("Source Media Descriptions", 1, 1)
  60.     Return $(Status) $(Identifier) $(Media)
  61. [ReturnOptions]
  62.     set Status        = STATUS_FAILED
  63.     set OptionList     = {}
  64.     set OptionTextList = {}
  65.     set LanguageList = ^(LanguagesSupported, 1)
  66.     Ifcontains(i) $($0) in $(LanguageList)
  67.         ifstr(i) $($1) == ""
  68.            goto returnoptions
  69.         endif
  70.         set PlatformList = ^(PlatformsSupported, 1)
  71.         Ifcontains(i) $($1) in $(PlatformList)
  72.            goto returnoptions
  73.         else
  74.            set Status = STATUS_NOTSUPPORTED
  75.            goto finish_ReturnOptions
  76.         endif
  77.     else
  78.         set Status = STATUS_NOLANGUAGE
  79.         goto finish_ReturnOptions
  80.     endif
  81. returnoptions = +
  82.     set OptionList     = ^(Options, 1)
  83.     set OptionTextList = ^(OptionsText$($0), 1)
  84.     set Status         = STATUS_SUCCESSFUL
  85. finish_ReturnOptions = +
  86.     Return $(Status) $(OptionList) $(OptionTextList)
  87. [InstallOption]
  88.     set Option   = $($1)
  89.     set SrcDir   = $($2)
  90.     set AddCopy  = $($3)
  91.     set DoCopy   = $($4)
  92.     set DoConfig = $($5)
  93.     set LanguageList = ^(LanguagesSupported, 1)
  94.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  95.         Return STATUS_NOLANGUAGE
  96.     endif
  97.     set-subst LF = "\n"
  98.     read-syms GeneralConstants
  99.     read-syms FileConstants
  100.     Shell $(UtilityInf), GetBindingInfo, "DEC"
  101.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  102.         Debug-Output "ShellCode error: cannot get an error string."
  103.         goto ShellCodeError
  104.     endif
  105.     set NetRuleSoftwareBindable = $($R1)
  106.     read-syms DialogConstants$(!STF_LANGUAGE)
  107.     ifstr(i) $(!NTN_Origination) == "NCPA"
  108.         set Continue = $(OK)
  109.     endif
  110.     read-syms FileConstants$(!STF_LANGUAGE)
  111.     detect date
  112.     set-title  $(FunctionTitle$(Option))
  113.     set to   = Begin
  114.     set from = Begin
  115.     set CommonStatus = STATUS_SUCCESSFUL
  116.     EndWait
  117. Begin = +
  118.     Set ActivateDetection = FALSE
  119.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  120.         set StartLabel = removeadapter
  121.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  122.         set StartLabel = UpgradeSoftware
  123.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  124.         set StartLabel = bindingadapter
  125.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  126.         set CommonStatus = STATUS_REBOOT
  127.         Set ActivateDetection = TRUE
  128.         set StartLabel = configureadapter
  129.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  130.             Debug-Output "Cannot configure the DEC 100 driver software."
  131.             Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  132.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  133.                 Debug-Output "ShellCode error: cannot get an error string."
  134.                 goto ShellCodeError
  135.             endif
  136.             set Error = $($R0)
  137.             set from = end
  138.             set to = end
  139.             goto nonfatalinfo
  140.         endif
  141.     else
  142.         set StartLabel = installadapter
  143.         set OEM_ABANDON_OPTIONS = {}
  144.         set OEM_ABANDON_SOFTWARE = FALSE
  145.         set OEM_ABANDON_ON = TRUE
  146.         Set ActivateDetection = TRUE
  147.     endif
  148.     Debug-Output "OEMNADD1.INF: =================================================="
  149.     Debug-Output "OEMNADD1.INF: STF_CWDIR is: "$(!STF_CWDIR)
  150.     Debug-Output "OEMNADD1.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
  151.     Debug-Output "OEMNADD1.INF: Option is: "$(Option)
  152.     Debug-Output "OEMNADD1.INF: !STF_NCDETECT  is: "$(!STF_NCDETECT)
  153.     Debug-Output "OEMNADD1.INF: !STF_NCOPTION  is: "$(!STF_NCOPTION)
  154.     Debug-Output "OEMNADD1.INF: !STF_NCDETCARD is: "$(!STF_NCDETCARD)
  155.     Debug-Output "OEMNADD1.INF: !STF_NCDETINFO is: "$(!STF_NCDETINFO)
  156.     Debug-Output "OEMNADD1.INF: =================================================="
  157.     Set DetectedCard = FALSE
  158.     Ifstr(i) $(ActivateDetection) != TRUE
  159.         Goto skipdetection
  160.     Endif
  161.     Set TypeList = {{IRQ,IRQ_List,IRQLevel},+
  162.                     {IOADDR, IOADDR_Addr_List, IOBaseAddress},+
  163.                     {MEMADDR, MemBaseAddrDecList MemBaseAddrDec}}
  164.     Debug-Output "OEMNADD1.INF: Calling Param_BuildTypeLists"
  165.     Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
  166.     Set Status = $($R0)
  167.     ifstr(i) $(Status) != STATUS_SUCCESSFUL
  168.         Goto fataldetect
  169.     Endif
  170.     Debug-Output "OEMNADD1.INF: Calling Param_SetDefaults"
  171.     Shell $(ParamInf) Param_SetDefaults {}
  172.     Set IOADDR_Base_List = {1,2}
  173.     Shell $(ParamInf) HexListFromDecList $(MemBaseAddrDecList)
  174.     Set MemBaseAddrHexList = $($R0)
  175.     Ifstr(i) $(!STF_NCDETECT) == YES
  176.         Ifstr(i) $(!STF_NCOPTION) == $(Option)
  177.            Set DetectedCard = TRUE
  178.            Debug-Output "OEMNADD1.INF: Setting DetectedCard to TRUE"
  179.         Endif
  180.     Endif
  181. skipdetection =+
  182.     set from = $(fatal)
  183.     set to = $(fatal)
  184.     goto $(StartLabel)
  185. installadapter = +
  186.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  187.     Ifstr $(KeyProduct) != $(KeyNull)
  188.         CloseRegKey $(KeyProduct)
  189.         ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  190.            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  191.                $(ProductVersion)
  192.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  193.                Debug-Output "ShellCode error: cannot get an error string."
  194.                goto ShellCodeError
  195.            endif
  196.            goto end
  197.         else
  198.            Shell $(UtilityInf), CardExistedDlg
  199.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  200.                Debug-Output "ShellCode error: cannot get an error string."
  201.                goto ShellCodeError
  202.            endif
  203.            ifstr(i) $($R1) != "OK"
  204.                set CommonStatus = STATUS_USERCANCEL
  205.                goto end
  206.            endif
  207.            set OldVersionExisted = $(TRUE)
  208.         endif
  209.     endif
  210.     Ifstr(i) $(DetectedCard) != TRUE
  211.         Goto adaptersetup
  212.     Endif
  213.     StartWait
  214.     Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
  215.     EndWait
  216.     Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  217.         Goto adaptersetup
  218.     Endif
  219.     Set DetectedParams = $($R1)
  220.     Debug-Output "OEMNADD1.INF: Calling Param_SetDefaults to merge detected params"
  221.     Shell $(ParamInf) Param_SetDefaults $(DetectedParams)
  222.     Goto adaptersetup
  223. configureadapter = +
  224.     Ifstr $(KeyProduct) == $(KeyNull)
  225.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  226.         Ifstr $(KeyProduct) == $(KeyNull)
  227.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  228.             Debug-Output "Cannot find component product key"
  229.             goto fatalregistry
  230.         Endif
  231.     Endif
  232.     Debug-Output "INF: Shelling to FindService"
  233.     Shell $(UtilityInf) FindService, $(KeyProduct)
  234.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  235.         Debug-Output "INF: FindService shell failure"
  236.         Goto ShellCodeError
  237.     Endif
  238.     Ifstr(i) $($R0) != NO_ERROR
  239.         Debug-Output "INF: FindService Shell error: "$($R0)
  240.         Goto fatalregistry
  241.     endif
  242.     set KeyParameters = $($R2)
  243.     CloseRegKey $($R1)
  244.     Ifstr $(KeyParameters) == $(KeyNull)
  245.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  246.         Debug-Output "Cannot find component service"
  247.         goto fatalregistry
  248.     endif
  249.     set OldVersionExisted = $(TRUE )
  250.     set ValueName = ""
  251.     set ValueData = ""
  252.     set ValueStr  = ""
  253.     set ValueList = {}
  254.     set IOBaseChoice = 1
  255.     EnumRegValue $(KeyParameters) ValueList
  256.     ForListDo $(ValueList)
  257.         set ValueItem = $($)
  258.         set ValueName = *($(ValueItem),1)
  259.         set ValueData = *($(ValueItem),4)
  260.         Ifstr(i) $(ValueName) == "InterruptNumber"
  261.             set IRQLevel = $(ValueData)
  262.         else-Ifstr(i) $(ValueName) == "IOBaseAddress"
  263.             set IOBaseChoice = $(ValueData)
  264.         else-Ifstr(i) $(ValueName) == "MemoryMappedBaseAddress"
  265.             set MemBaseAddrDec = $(ValueData)
  266.         endif
  267.     EndForListDo
  268.     Set Iox = ~($(IOADDR_Base_List),$(IOBaseChoice))
  269.     Ifint $(Iox) == 0
  270.         Set Iox = 1  
  271.     Endif
  272.     Set IOBaseAddress = *($(IOADDR_Addr_List),$(Iox))
  273.     Debug-Output "OEMNADD1.INF: setting IOBaseAddress to: "$(IOBaseAddress)
  274. adaptersetup =+
  275.     Set IOBaseChoice = *($(IOADDR_Base_List),~($(IOADDR_Addr_List),$(IOBaseAddress)))
  276.     Debug-Output "OEMNADD1.INF: setting IOBaseChoice to: "$(IOBaseChoice)
  277.     Set MemBaseAddrHex = *($(MemBaseAddrHexList), ~($(MemBaseAddrDecList),+
  278.                             $(MemBaseAddrDec)))
  279.     Shell $(ParamInf) Param_ParameterConfidence
  280.     Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  281.         Debug-Output "OEMNADE2.INF: parameter confidence too low to bypass configuration"
  282.         Goto adapteroptions
  283.     Endif
  284.     Ifstr(i) $(DetectedCard) == TRUE
  285.         Ifstr(i) $(!STF_INSTALL_MODE) != CUSTOM
  286.             Goto adapterverify
  287.         Endif
  288.     Endif
  289. adapteroptions = +
  290.     set from = adapteroptions
  291.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  292.     ui start "InputDlg"
  293.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  294.         set IRQLevel = $(Combo1Out)
  295.         set MemBaseAddrHex = $(Combo2Out)
  296.         set IOBaseChoice = *($(RadioOut),1)
  297.         ui pop 1
  298.     else-ifstr(i) $(DLGEVENT) == "BACK"
  299.         set CommonStatus = STATUS_USERCANCEL
  300.         Debug-Output "OEMNADD1.INF: Action: exit. Bye."
  301.         ui pop 1
  302.         goto end
  303.     else
  304.         ui pop 1
  305.         Debug-Output "OEMNADD1.INF: Action: unknown. Bye."
  306.         goto end
  307.     endif
  308.     Set IOBaseAddress = *($(IOADDR_Addr_List),~($(IOADDR_Base_List),$(IOBaseChoice)))
  309.     Debug-Output "OEMNADD1.INF: setting IOBaseAddress to: "$(IOBaseAddress)
  310.     Set MemBaseAddrDec = *($(MemBaseAddrDecList), ~($(MemBaseAddrHexList),+
  311.                             $(MemBaseAddrHex)))
  312.     Debug-Output "OEMNADD1.INF: setting mem base addr to: "$(MemBaseAddrDec)
  313. adapterverify =+
  314.     Ifstr(i) $(DetectedCard) != TRUE
  315.         Goto skipoptions
  316.     Endif
  317.     Debug-Output "OEMNADD1.INF: Calling Param_VerifyCard"
  318.     Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD)
  319.     Ifstr(i) $($R0) == STATUS_SUCCESSFUL
  320.         Debug-Output "OEMNADD1.INF: Param_VerifyCard succeeded"
  321.         Goto skipoptions
  322.     Endif
  323.     Set from = adapteroptions
  324.     Set to = skipoptions
  325.     Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
  326.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  327.         Debug-Output "ShellCode error: cannot get an error string."
  328.         goto ShellCodeError
  329.     endif
  330.     set Error = $($R0)
  331.     Goto Warning
  332. skipoptions =+
  333.     ifint $(OldVersionExisted) == $(TRUE)
  334.         ifstr(i) $(!NTN_InstallMode) == configure
  335.             goto writeparameters
  336.         endif
  337.     endif
  338.     StartWait
  339.     ifint $(OldVersionExisted) == $(FALSE)
  340.         ifstr(i) $(!NTN_InstallMode) == "install"
  341.            Ifstr(i) $(DoCopy) == "YES"
  342.               Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  343.               Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  344.                   Goto ShellCodeError
  345.               Else-Ifstr(i) $($R0) == STATUS_FAILED
  346.                   Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  347.                   ifint $($ShellCode) != $(!SHELL_CODE_OK)
  348.                      goto ShellCodeError
  349.                   endif
  350.                   set Error = $($R0)
  351.                   Goto fatal
  352.               Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  353.                   Goto successful
  354.               Endif
  355.               Set SrcDir = $($R1)
  356.            Endif
  357.            install "Install-Option"
  358.            ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  359.               Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  360.               ifint $($ShellCode) != $(!SHELL_CODE_OK)
  361.                   goto ShellCodeError
  362.               endif
  363.               set Error = $($R0)
  364.               goto fatal
  365.            endif
  366.         endif
  367.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  368.             $(ProductSoftwareName), +
  369.             $(ProductSoftwareName), +
  370.             $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  371.             $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  372.             $(NetEventDLL)
  373.         Set OEM_ABANDON_SOFTWARE = TRUE
  374.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  375.             Debug-Output "ShellCode error"
  376.             goto ShellCodeError
  377.         endif
  378.         set RegistryErrorIndex = $($R0)
  379.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  380.             EndWait
  381.             Debug-Output "Registry error: add software components"
  382.             CloseRegKey $($R1)
  383.             CloseRegKey $($R2)
  384.             CloseRegKey $($R3)
  385.             CloseRegKey $($R4)
  386.             CloseRegKey $($R5)
  387.             goto fatalregistry
  388.         endif
  389.         set SoftProductKey      = $($R1)
  390.         Set SoftNetRuleKey      = $($R2)
  391.         Set SoftServiceKey      = $($R3)
  392.         Set SoftParameterKey    = $($R4)
  393.         Set SoftLinkageKey      = $($R5)
  394.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  395.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  396.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  397.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  398.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  399.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  400.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  401.         Shell  $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
  402.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  403.             Debug-Output "ShellCode error."
  404.             goto ShellCodeError
  405.         endif
  406.         set RegistryErrorIndex = $($R0)
  407.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  408.             EndWait
  409.             Debug-Output "Resgitry error: add value list."
  410.             CloseRegKey $(SoftProductKey)
  411.             CloseRegKey $(SoftNetRuleKey)
  412.             CloseRegKey $(SoftServiceKey)
  413.             CloseRegKey $(SoftParameterKey)
  414.             CloseRegKey $(SoftLinkageKey)
  415.             goto fatalregistry
  416.         endif
  417.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  418.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  419.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  420.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  421.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  422.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  423.         Shell  $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
  424.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  425.             Debug-Output "ShellCode error."
  426.             goto ShellCodeError
  427.         endif
  428.         set RegistryErrorIndex = $($R0)
  429.         CloseRegKey $(SoftProductKey)
  430.         CloseRegKey $(SoftNetRuleKey)
  431.         CloseRegKey $(SoftServiceKey)
  432.         CloseRegKey $(SoftParameterKey)
  433.         CloseRegKey $(SoftLinkageKey)
  434.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  435.             EndWait
  436.             Debug-Output "Resgitry error: add value list."
  437.             goto fatalregistry
  438.         endif
  439.     endif
  440.     Shell $(UtilityInf), AddHardwareComponent,$(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  441.     ifint $($R4) != -1
  442.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  443.     endif
  444.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  445.         Debug-Output "Cannot add hardware component"
  446.         goto ShellCodeError
  447.     endif
  448.     set RegistryErrorIndex = $($R0)
  449.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  450.         EndWait
  451.         Debug-Output "Registry error: add hardware component"
  452.         Debug-Output $(RegistryErrorIndex)
  453.         CloseRegKey $($R1)
  454.         CloseRegKey $($R2)
  455.         CloseRegKey $($R3)
  456.         goto fatalregistry
  457.     endif
  458.     set KeyParameters = $($R3)
  459.     set KeyAdapterRules = $($R2)
  460.     set AdapterNumber = $($R4)
  461.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  462.                        {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  463.                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  464.                        {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  465.                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  466.                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  467.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  468.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  469.         Debug-Output "ShellCode error"
  470.         goto ShellCodeError
  471.     endif
  472.     CloseRegKey $($R1)
  473.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  474.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  475.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardware$(Option)Type)},+
  476.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  477.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardware$(Option)Class)}, +
  478.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  479.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  480.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  481.         Debug-Output "ShellCode error."
  482.         goto ShellCodeError
  483.     endif
  484.     set RegistryErrorIndex = $($R0)
  485.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  486.         EndWait
  487.         Debug-Output "Resgitry error: add value list."
  488.         CloseRegKey $(KeyParameters)
  489.         CloseRegKey $(KeyAdapterRules)
  490.         goto fatalregistry
  491.     endif
  492.     CloseRegKey $(KeyAdapterRules)
  493.     goto writeparameters
  494. writeparameters = +
  495.     set MemBaseAddrDec = *($(MemBaseAddrDecList), ~($(MemBaseAddrHexList),+
  496.                           $(MemBaseAddrHex)))
  497.     ifstr(i) $(Option) == "DEC100"
  498.         set CardTypeValue = 1
  499.     else
  500.         set CardTypeValue = 7
  501.     endif
  502.     Shell $(UtilityInf), GetBusTypeNum
  503.     set BusTypeNum = $($R1)
  504.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  505.         Debug-Output "ShellCode error."
  506.         goto ShellCodeError
  507.     endif
  508.     set NewValueList = {+
  509.                        {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  510.                        {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  511.                        {CardType,$(NoTitle),$(!REG_VT_DWORD),$(CardTypeValue)},+
  512.                        {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQLevel)},+
  513.                        {IOBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseChoice)},+
  514.                        {MemoryMappedBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(MemBaseAddrDec)}+
  515.                        }
  516.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  517.     CloseRegKey $(KeyParameters)
  518.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  519.         Debug-Output "ShellCode error."
  520.         goto ShellCodeError
  521.     endif
  522.     set RegistryErrorIndex = $($R0)
  523.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  524.         Debug-Output "Registry error: Add value list"
  525.         goto fatalregistry
  526.     endif
  527.     EndWait
  528.     goto successful
  529. bindingadapter =+
  530.     set Error = "Binding: Sorry, not yet implemented."
  531.     goto fatal
  532. removeadapter = +
  533.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  534.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  535.             $(ProductSoftwareName)
  536.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  537.             Debug-Output "ShellCode error"
  538.             goto ShellCodeError
  539.         endif
  540.         set RegistryErrorIndex = $($R0)
  541.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  542.             goto fatalregistry
  543.         endif
  544.     else
  545.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  546.             $(ProductSoftwareName), $(!NTN_RegBase)
  547.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  548.             Debug-Output "ShellCode error"
  549.             goto ShellCodeError
  550.         endif
  551.         set RegistryErrorIndex = $($R0)
  552.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  553.             goto fatalregistry
  554.         endif
  555.     endif
  556.     goto end
  557. UpgradeSoftware = +
  558.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  559.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  560.         Ifstr $(KeyProduct) != $(KeyNull)
  561.             GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  562.             set Version = *($(VersionInfo), 4)
  563.             Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  564.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  565.                 Debug-Output "ShellCode error"
  566.                 goto ShellCodeError
  567.             endif
  568.             set !UG_Filename = $($R0)
  569.             ifstr(i) $(!UG_Filename) != ""
  570.                 install "Install-Update"
  571.                 ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  572.                     goto fatal
  573.                 endif
  574.             endif
  575.             SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  576.             SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  577.             ifint $(Version) != $(ProductVersion)
  578.             endif
  579.             CloseRegKey $(KeyProduct)
  580.         else
  581.             goto fatalregistry
  582.         endif
  583.     else
  584.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  585.               $(MAXIMUM_ALLOWED) NetworkCardKey
  586.         Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  587.             GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  588.             set ServiceName = *($(ServiceNameInfo), 4)
  589.             OpenRegKey $(NetworkCardKey) "" "NetRules" +
  590.                 $(MAXIMUM_ALLOWED) NetRuleKey
  591.             Ifstr(i) $(NetRuleKey) != $(KeyNull)
  592.             else
  593.                 goto fatalregistry
  594.             endif
  595.             CloseRegKey $(NetRules)
  596.             CloseRegKey $(NetworkCardKey)
  597.         else
  598.             goto fatalregistry
  599.         endif
  600.         OpenRegKey $(!REG_H_LOCAL) "" +
  601.               $(!NTN_ServiceBase)"\"$(ServiceName) +
  602.               $(MAXIMUM_ALLOWED) ServiceKey
  603.         Ifstr(i) $(ServiceKey) != $(KeyNull)
  604.             CloseRegKey $(ServiceKey)
  605.         else
  606.             goto fatalregistry
  607.         endif
  608.     endif
  609.     goto end
  610. successful = +
  611.     goto end
  612. abandon = +
  613.     ForListDo $(OEM_ABANDON_OPTIONS)
  614.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  615.             $(ProductSoftwareName), $($)
  616.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  617.             Debug-Output "ShellCode error"
  618.             goto ShellCodeError
  619.         endif
  620.         set RegistryErrorIndex = $($R0)
  621.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  622.             goto fatalregistry
  623.         endif
  624.     EndForListDo
  625.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  626.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  627.             $(ProductSoftwareName), FALSE
  628.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  629.             Debug-Output "ShellCode error"
  630.             goto ShellCodeError
  631.         endif
  632.         set RegistryErrorIndex = $($R0)
  633.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  634.             goto fatalregistry
  635.         endif
  636.     endif
  637.     goto end
  638. warning = +
  639.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  640.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  641.         goto ShellCodeError
  642.     endif
  643.     ifstr(i) $($R1) == "OK"
  644.         goto $(to)
  645.     else-ifstr(i) $($R1) == "CANCEL"
  646.         goto $(from)
  647.     else
  648.         goto "end"
  649.     endif
  650. nonfatalinfo = +
  651.     Set CommonStatus = STATUS_USERCANCEL
  652.     Set Severity = STATUS
  653.     goto nonfatalmsg
  654. nonfatal = +
  655.     Set Severity = NONFATAL
  656.     goto nonfatalmsg
  657. nonfatalmsg = +
  658.     ifstr(i) $(Error) == ""
  659.         Set Severity = NONFATAL
  660.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  661.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  662.             goto ShellCodeError
  663.         endif
  664.         set Error = $($R0)
  665.     endif
  666.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  667.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  668.         goto ShellCodeError
  669.     endif
  670.     ifstr(i) $($R1) == "OK"
  671.         goto $(from)
  672.     else
  673.         goto "end"
  674.     endif
  675. fatalregistry = +
  676.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  677.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  678.         goto ShellCodeError
  679.     endif
  680.     set Error = $($R0)
  681.     goto fatal
  682. fataldetect = +
  683.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  684.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  685.         Debug-Output "ShellCode error: cannot get an error string."
  686.         goto ShellCodeError
  687.     endif
  688.     set Error = $($R0)
  689.     Goto fatal
  690. fatal = +
  691.     ifstr(i) $(Error) == ""
  692.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  693.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  694.             goto ShellCodeError
  695.         endif
  696.         set Error = $($R0)
  697.     endif
  698.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  699.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  700.         goto ShellCodeError
  701.     endif
  702.     goto setfailed
  703. ShellCodeError = +
  704.     set DlgType      = "MessageBox"
  705.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  706.     set STF_MB_TEXT  = $(ShellCodeErrorText)
  707.     set STF_MB_TYPE  = 1
  708.     set STF_MB_ICON  = 3
  709.     set STF_MB_DEF   = 1
  710.     ui start "Error Message"
  711.     goto setfailed
  712. setfailed = +
  713.     set CommonStatus = STATUS_FAILED
  714.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  715.         set OEM_ABANDON_ON = FALSE
  716.         goto abandon
  717.     endif
  718.     goto end
  719. end = +
  720.     goto term
  721. term = +
  722.     Return $(CommonStatus)
  723. [Install-Option]
  724.     set STF_VITAL = ""
  725.     ifstr(i) $(AddCopy) == "YES"
  726.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  727.     endif
  728.     ifstr(i) $(DoCopy) == "YES"
  729.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  730.        CopyFilesInCopyList
  731.     endif
  732.     ifstr(i) $(DoConfig) == "YES"
  733.     endif
  734.     Exit
  735. [Install-Update]
  736.    set STF_VITAL        = ""
  737.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  738.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  739.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  740.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  741.    CopyFilesInCopyList
  742.    exit
  743. [Source Media Descriptions]
  744.     1    = "Windows NT Advanced Server Setup Disk #1"   , TAGFILE = disk1
  745.     2    = "Windows NT Advanced Server Setup Disk #2"   , TAGFILE = disk2
  746.     3    = "Windows NT Advanced Server Setup Disk #3"   , TAGFILE = disk3
  747.     4    = "Windows NT Advanced Server Setup Disk #4"   , TAGFILE = disk4
  748.     5    = "Windows NT Advanced Server Setup Disk #5"   , TAGFILE = disk5
  749.     6    = "Windows NT Advanced Server Setup Disk #6"   , TAGFILE = disk6
  750.     7    = "Windows NT Advanced Server Setup Disk #7"   , TAGFILE = disk7
  751.     8    = "Windows NT Advanced Server Setup Disk #8"   , TAGFILE = disk8
  752.     9    = "Windows NT Advanced Server Setup Disk #9"   , TAGFILE = disk9
  753.     10    = "Windows NT Advanced Server Setup Disk #10"  , TAGFILE = disk10
  754.     11    = "Windows NT Advanced Server Setup Disk #11"  , TAGFILE = disk11
  755.     12    = "Windows NT Advanced Server Setup Disk #12"  , TAGFILE = disk12
  756.     13    = "Windows NT Advanced Server Setup Disk #13"  , TAGFILE = disk13
  757.     14    = "Windows NT Advanced Server Setup Disk #14"  , TAGFILE = disk14
  758.     15    = "Windows NT Advanced Server Setup Disk #15"  , TAGFILE = disk15
  759.     16    = "Windows NT Advanced Server Setup Disk #16"  , TAGFILE = disk16
  760.     17    = "Windows NT Advanced Server Setup Disk #17"  , TAGFILE = disk17
  761.     18    = "Windows NT Advanced Server Setup Disk #18"  , TAGFILE = disk18
  762.     19    = "Windows NT Advanced Server Setup Disk #19"  , TAGFILE = disk19
  763.     20    = "Windows NT Advanced Server Setup Disk #20"  , TAGFILE = disk20
  764.     21    = "Windows NT Advanced Server Setup Disk #21"  , TAGFILE = disk21
  765.     22    = "Windows NT Advanced Server Setup Disk #22"  , TAGFILE = disk22
  766.     23    = "Windows NT Advanced Server Setup Disk #23"  , TAGFILE = disk23
  767.     24    = "Windows NT Advanced Server Setup Disk #24"  , TAGFILE = disk24
  768.     25    = "Windows NT Advanced Server Setup Disk #25"  , TAGFILE = disk25
  769.     26    = "Windows NT Advanced Server Setup Disk #26"  , TAGFILE = disk26
  770.     27    = "Windows NT Advanced Server Setup Disk #27"  , TAGFILE = disk27
  771.     28    = "Windows NT Advanced Server Setup Disk #28"  , TAGFILE = disk28
  772.     29    = "Windows NT Advanced Server Setup Disk #29"  , TAGFILE = disk29
  773. [ProductType]
  774. STF_PRODUCT  = LanmanNT
  775. STF_PLATFORM = I386
  776. [Files-Inf]
  777. 2,    oemsetup.inf,     SIZE=1000,    RENAME=$(!UG_Filename)
  778. [Files-DEC100]
  779. 22,LANCE.SYS , SIZE=34304
  780. [Files-DEC101]
  781. 22,LANCE.SYS , SIZE=34304
  782. [LanguagesSupported]
  783.     ENG
  784. [OptionsTextENG]
  785.     DEC100     = "DEC EtherWORKS LC Adapter"
  786.     DEC101     = "DEC EtherWORKS Turbo/LC Adapter"
  787. [FileConstantsENG]
  788. ProCaption   = "Windows NT Setup"
  789. ProCancel    = "Cancel"
  790. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  791.                "Are you sure you want to cancel copying files?"
  792. ProCancelCap = "Network Setup Message"
  793. ProText1     = "Copying:"
  794. ProText2     = "To:"
  795. FunctionTitleDEC100   = "DEC EtherWORKS LC Adapter Card Setup"
  796. FunctionTitleDEC101   = "DEC EtherWORKS Turbo/LC Adapter Card Setup"
  797. ProductSoftwareDescription      = "DEC Lance Adapter Driver"
  798. ProductHardwareDEC100Description        = "DEC EtherWORKS LC Adapter"
  799. ProductHardwareDEC101Description        = "DEC EtherWORKS Turbo/LC Adapter"
  800. ProductSoftwareTitle    = "DEC Lance Adapter Driver"
  801. ProductHardwareDEC100Title      = "DEC EtherWORKS LC Adapter"
  802. ProductHardwareDEC101Title      = "DEC EtherWORKS Turbo/LC Adapter"
  803. ShellCodeErrorTitle     = "Error: "$(FunctionTitle$(Option))
  804. ShellCodeErrorText      = "Shell Code Error."
  805. [DialogConstantsENG]
  806. Help        = "&Help"
  807. Exit        = "Cancel"
  808. OK          = "OK"
  809. HelpContext = ""
  810. Continue    = "Continue"
  811. Cancel      = "Cancel"
  812. [FileDependentDlgENG]
  813. Label1 = "&IRQ Level:"
  814. Label2 = "&Memory Base Address:"
  815. Group1 = "I/O Port Base Address"
  816. Radio1 = "&Primary"
  817. Radio2 = "&Secondary"
  818. DlgType = "RadioCombination"
  819. DlgTemplate = "DEC_SETUP"
  820. Caption = $(FunctionTitle$(Option))
  821. CBOptionGreyed = {}
  822. RadioOptionGreyed = {}
  823. RadioIn = {$(IOBaseChoice)}
  824. Combo1List = $(IRQ_List)
  825. Combo1Out  = $(IRQLevel)
  826. Combo2List = $(MemBaseAddrHexList)
  827. Combo2Out  = $(MemBaseAddrHex)
  828. ComboListItemsIn  = {Combo1List, Combo2List}
  829. ComboListItemsOut = {Combo1Out, Combo2Out}
  830. EditTextIn = ""
  831. EditTextLim = ""
  832. NotifyFields = {NO, NO}
  833. HelpContext = $(!IDH_DB_OEMNADD1_INS)
  834.  
  835.  
  836.  
  837.