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

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