[Identification] OptionType = NetAdapter [PlatformsSupported] EISA PCI "Jazz-Internal Bus" [Options] DEC300 [FileConstants] UtilityInf = "UTILITY.INF" subroutineinf = "SUBROUTN.INF" SoftwareType = "driver" Exit_Code = 0 NetEventDLL = "%SystemRoot%\System32\netevent.dll" IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll" DEC300_1BYTE = 3187472 Manufacturer = "DigitalEquipment" ProductMajorVersion = "4" ProductMinorVersion = "0" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) ProductSoftwareName = "Defea" ProductSoftwareImagePath = "\SystemRoot\System32\drivers\defea.sys" NetRuleSoftwareType = "defeaSys ndisDriver defeaDriver" NetRuleSoftwareUse = $(SoftwareType) NetRuleSoftwareBindForm = """DefeaSys"" yes no container" NetRuleSoftwareClass = {"defeaDriver basic"} ProductHardwareName = "Defea" NetRuleHardwareType = "dec300 dec300Adapter" NetRuleHardwareBindForm = " yes yes container" NetRuleHardwareClass = {"dec300Adapter basic"} ProductOpSupport = 134 ; 0x0086 ; Display,Removable,Properties,Not Updatable ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters" [GeneralConstants] from = "" to = "" ExitCodeOk = 0 ExitCodeCancel = 1 ExitCodeFatal = 2 KeyNull = "" MAXIMUM_ALLOWED = 33554432 RegistryErrorIndex = NO_ERROR KeyProduct = "" KeyParameters = "" TRUE = 1 FALSE = 0 NoTitle = 0 ExitState = "Active" OldVersionExisted = $(FALSE) DriverPath = $(!STF_NTPATH)\drivers Successful_Install = 0 [date] Now = {} ? $(!LIBHANDLE) GetSystemDate [processor] PROC_TYPE = "" ? $(LIBHANDLE) GetProcessor [Identify] read-syms Identification set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) [ReturnOptions] set Status = STATUS_FAILED set OptionList = {} set OptionTextList = {} set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) ifstr(i) $($1) == "" goto returnoptions endif set PlatformList = ^(PlatformsSupported, 1) Ifcontains(i) $($1) in $(PlatformList) goto returnoptions else set Status = STATUS_NOTSUPPORTED goto finish_ReturnOptions endif else set Status = STATUS_NOLANGUAGE goto finish_ReturnOptions endif returnoptions = + set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL finish_ReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) [InstallOption] ; set !DebugOutputControl = 1 set Option = $($1) set SrcDir = $($2) set AddCopy = $($3) set DoCopy = $($4) set DoConfig = $($5) set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) NOT-IN $(LanguageList) Return STATUS_NOLANGUAGE endif Debug-Output "OEMNADD4.INF: STF_CWDIR is: "$(!STF_CWDIR) Debug-Output "OEMNADD4.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE) set-subst LF = "\n" SetHelpFile "defddi.hlp" 1 600 read-syms GeneralConstants read-syms FileConstants Shell $(UtilityInf), GetBindingInfo, "DEC" ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error: cannot get an error string." goto ShellCodeError endif set NetRuleSoftwareBindable = $($R1) read-syms DialogConstants$(!STF_LANGUAGE) ifstr(i) $(!NTN_Origination) == "NCPA" set Continue = $(OK) endif read-syms FileConstants$(!STF_LANGUAGE) detect date set-title $(FunctionTitle) set to = Begin set from = Begin set CommonStatus = STATUS_SUCCESSFUL EndWait Begin = + ; set !DebugOutputControl = 1 Ifstr(i) $(!NTN_InstallMode) == deinstall set StartLabel = removeadapter else-Ifstr(i) $(!NTN_InstallMode) == Update set StartLabel = UpgradeSoftware else-Ifstr(i) $(!NTN_InstallMode) == bind set StartLabel = bindingadapter else-Ifstr(i) $(!NTN_InstallMode) == configure set CommonStatus = STATUS_REBOOT Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) Debug-Output "Cannot configure the dec 300 driver software." Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error: cannot get an error string." goto ShellCodeError endif set Error = $($R0) set from = end set to = end goto nonfatalinfo else set StartLabel = configureadapter endif else set StartLabel = installadapter set OEM_ABANDON_OPTIONS = {} set OEM_ABANDON_SOFTWARE = FALSE set OEM_ABANDON_ON = TRUE endif ;************ Detect Processor Type ***************** ; LoadLibrary "" $(!STF_CWDDIR)setupdll.dll LIBHANDLE ; detect processor ; FreeLibrary $(LIBHANDLE) ; ifstr(i) $(PROC_TYPE) == Alpha_AXP ; set SourceDir = $(SrcDir)WINNT\ALPHA\ ; set UpdateDir = $(SrcDir)WINNT\ALPHA\ ; else-ifstr(i) $(PROC_TYPE) == R4000 ; set SourceDir = $(SrcDir)WINNT\MIPS\ ; set UpdateDir = $(SrcDir)WINNT\MIPS\ ; else ; set SourceDir = $(SrcDir)WINNT\INTEL\ ; set UpdateDir = $(SrcDir)WINNT\INTEL\ ; endif ; endif Debug-Output "NTN_Origination"$(!NTN_Origination) set from = $(fatal) set to = $(fatal) goto $(StartLabel) installadapter = + goto nextstep configureadapter = + Ifstr $(KeyProduct) == $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) == $(KeyNull) set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE Debug-Output "Cannot find component product key" goto fatalregistry Endif Endif Debug-Output "INF: Shelling to FindService" Shell $(UtilityInf) FindService, $(KeyProduct) Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "INF: FindService shell failure" Goto ShellCodeError Endif Ifstr(i) $($R0) != NO_ERROR Debug-Output "INF: FindService Shell error: "$($R0) Goto fatalregistry endif Set KeyParameters = $($R2) CloseRegKey $($R1) Ifstr $(KeyParameters) == $(KeyNull) set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE Debug-Output "Cannot find component service" goto fatalregistry endif set OldVersionExisted = $(TRUE) set ValueName = "" set ValueData = "" set ValueStr = "" set ValueList = {} EnumRegValue $(KeyParameters) ValueList ;***************** Read Registry Info for Defaults ***************** ForListDo $(ValueList) set ValueItem = $($) set ValueName = *($(ValueItem),1) set ValueData = *($(ValueItem),4) ifstr(i) $(ValueName) == "BurstSize" set BurstSizeIndex = $(ValueData) else-ifstr(i) $(ValueName) == "FullDuplexEnable" set FullDuplexEnableIndex = $(ValueData) else-ifstr(i) $(ValueName) == "RcvBuffCnt" set RcvBuffCntIndex = $(ValueData) else-ifstr(i) $(ValueName) == "XmtBuffCnt" set XmtBuffCntIndex = $(ValueData) else-ifstr(i) $(ValueName) == "RequestedTTRT" set RequestedTTRTIndex = $(ValueData) else-ifstr(i) $(ValueName) == "SlotNumber" set SlotNumber = $(ValueData) endif EndForListDo Set Caption = $(FunctionTitle) Set Label1 = "Slot #"$(SlotNumber) ifstr(i) $(FullDuplexEnableIndex) == 1 set RadioIn = {1} else set RadioIn = {2} endif ifstr(i) $(RequestedTTRTIndex) == "" set EditTextIn = {8} else set EditTextIn = {$(RequestedTTRTIndex)} endif set BurstSizeValue = *($(BurstSizeList), ~($(BurstSizeValues),$(BurstSizeIndex))) ifstr(i) $(BurstSizeValue) == "" set BurstSizeValue = 16 endif set ReceiveBuffValue = *($(ReceiveBuffList), ~($(ReceiveBuffValues),$(RcvBuffCntIndex))) ifstr(i) $(ReceiveBuffValue) == "" set ReceiveBuffValue = 4 endif set TransmitBuffValue = *($(TransmitBuffList), ~($(TransmitBuffValues),$(XmtBuffCntIndex))) ifstr(i) $(TransmitBuffValue) == "" set TransmitBuffValue = 32 endif set RequestedTTRTValue = RequestedTTRTIndex ifstr(i) $(RequestedTTRTValue) == "" set RequestedTTRTValue = 8 endif ;***************** Display the Dialog ****************************** displaydialog = + set ExitButton = "" LoadLibrary "x" $(!STF_WINDOWSSYSPATH)\$(DialogDllName) hLib read-syms FileDependentDlg$(!STF_LANGUAGE) restart = + set NotifyFields = {YES,NO,NO} ui start "InputDlg" $(hLib) set ExitButton = $(DLGEVENT) ifstr(i) $(DLGEVENT) == "CONTINUE" ifint *($(EditTextOut),1) < 4 shell $(subroutineinf) SetupMessage ENG NONFATAL "Value of Requested TTRT must be between 4 and 165 ms" goto restart else-ifint *($(EditTextOut),1) > 165 shell $(subroutineinf) SetupMessage ENG NONFATAL "Value of Requested TTRT must be between 4 and 165 ms" goto restart endif set BurstSizeIndex = *($(BurstSizeValues), ~($(BurstSizeList),$(Combo1Out))) set TransmitBuffIndex = *($(TransmitBuffValues), ~($(TransmitBuffList),$(Combo3Out))) set ReceiveBuffIndex = *($(ReceiveBuffValues), ~($(ReceiveBuffList),$(Combo2Out))) ifstr(i) *($(RadioOut),1) == 1 Set FullDuplexEnableIndex = 1 else Set FullDuplexEnableIndex = 2 endif set RequestedTTRTIndex = *($(EditTextOut),1) FreeLibrary $(hLib) ui pop 1 ifstr(i) $(StartLabel) == installadapter Set Successful_Install = 1 goto returnpoint endif else-ifstr(i) $(DLGEVENT) == "NOTIFY" ; ifstr(i) $(Combo1Out) != 16 ; shell $(subroutineinf) SetupMessage ENG NONFATAL "If supported by the adapter, a burst size of 16 longwords is recommended." ; endif goto restart else-ifstr(i) $(DLGEVENT) == "BACK" FreeLibrary $(hLib) ui pop 1 ifstr(i) $(StartLabel) == installadapter goto returnpoint else CloseRegKey $(KeyParameters) set CommonStatus = STATUS_USERCANCEL goto end endif else FreeLibrary $(hLib) ui pop 1 goto end endif set NewValueList = {{RcvBuffCnt,$(NoTitle),$(!REG_VT_DWORD),$(ReceiveBuffIndex)},+ {BurstSize,$(NoTitle),$(!REG_VT_DWORD),$(BurstSizeIndex)},+ {XmtBuffCnt,$(NoTitle),$(!REG_VT_DWORD),$(TransmitBuffIndex)},+ {FullDuplexEnable,$(NoTitle),$(!REG_VT_DWORD),$(FullDuplexEnableIndex)},+ {RequestedTTRT,$(NoTitle),$(!REG_VT_DWORD),$(RequestedTTRTIndex)}} Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif CloseRegKey $(KeyParameters) goto successful nextstep = + StartWait installproduct = + Shell $(UtilityInf), EISAFindBus, $(DEC300_1BYTE) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr $($R0) != "NO_ERROR" set Error = $($R0) goto fatal endif ifstr(i) $($R1) == {} set Error = $(CANNOT_FIND_ANY_CARD) set CommonStatus = STATUS_USERCANCEL set from = end goto nonfatal endif set AdapterList = $($R1) ;**************** Install Hardware Component For Each*********************** ;**************** Card and Store Params. In a List ************************* Set AllAdaptersInstalled = $(TRUE) ForListDo $(AdapterList) set BusNum = *($($),1) set SlotNum = *($($),2) Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNum), + $(SlotNum), $(ProductHardwareDescription), $(ProductHardwareName) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr $($R0) != "NO_ERROR" set Error = $($R0) goto fatal endif ifstr(i) $($R1) != "YES" Set AllAdaptersInstalled = $(FALSE) Set ReceiveBuffValue = 4 Set TransmitBuffValue = 32 Set BurstSizeValue = 16 Set EditTextIn = {"8"} Set RadioIn = {2} Set Caption = $(FunctionTitle) Set Label1 = "Slot #"$(SlotNum) Set ExitButton = "" goto displaydialog else Set ExitButton = "" Set OldVersionExisted = $(TRUE) endif returnpoint = + ifstr(i) $(ExitButton) == "CONTINUE" Set List1 = >($(List1),$(BusNum)) Set List2 = >($(List2),$(SlotNum)) Set List3 = >($(List3),$(ReceiveBuffIndex)) Set List4 = >($(List4),$(BurstSizeIndex)) Set List5 = >($(List5),$(TransmitBuffIndex)) Set List6 = >($(List6),$(FullDuplexEnableIndex)) Set List7 = >($(List7),$(RequestedTTRTIndex)) endif EndForListDo ifstr(i) $(AllAdaptersInstalled) == $(TRUE) shell $(subroutineinf) SetupMessage ENG NONFATAL "All DEC FDDIcontroller/EISA adapters already installed" endif ;*************** Install Software Component If Needed******************* ifstr(i) $(Successful_Install) == 1 Debug-Output "Successful Install" ifint $(OldVersionExisted) == $(FALSE) Ifstr(i) $(DoCopy) == "YES" Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES Ifint $($ShellCode) != $(!SHELL_CODE_OK) Goto ShellCodeError Else-Ifstr(i) $($R0) == STATUS_FAILED Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) Goto fatal Else-Ifstr(i) $($R0) == STATUS_USERCANCEL Goto successful Endif Set SrcDir = $($R1) Endif install "Install-Option" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal endif Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), + $(ProductSoftwareName), + $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+ $(NetEventDLL) Set OEM_ABANDON_SOFTWARE = TRUE ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR" EndWait CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) CloseRegKey $($R4) CloseRegKey $($R5) goto fatalregistry endif Set SoftProductKey = $($R1) Set SoftNetRuleKey = $($R2) Set SoftServiceKey = $($R3) Set SoftParameterKey = $($R4) Set SoftLinkageKey = $($R5) set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR" EndWait CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) goto fatalregistry endif set BindableTxt = {"defeaDriver dec300Adapter non exclusive 100"} set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+ {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, + {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, + {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(BindableTxt)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR" EndWait goto fatalregistry endif endif else set CommonStatus = STATUS_USERCANCEL goto successful endif ;*********** Add Hardware Component For Each Card ********************** ForListDo $(List1) ifstr(i) $($) != "" Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName) ifint $($R4) != -1 Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4)) endif ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR" EndWait CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) goto fatalregistry endif Set HardNetCardKey = $($R1) Set HardNetRuleKey = $($R2) Set HardParameterKey = $($R3) set AdapterNumber = $($R4) set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+ {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+ {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+ {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set NewValueList = {{CardType,$(NoTitle),$(!REG_VT_DWORD),5},+ {BusType,$(NoTitle),$(!REG_VT_DWORD),2},+ {MediaType,$(NoTitle),$(!REG_VT_DWORD),3},+ {EisaCompressedId,$(NoTitle),$(!REG_VT_DWORD),$(DEC300_1BYTE)},+ {BusNumber,$(NoTitle),$(!REG_VT_DWORD),*($(List1),$(#))},+ {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),*($(List2),$(#))},+ {RcvBuffCnt,$(NoTitle),$(!REG_VT_DWORD),*($(List3),$(#))},+ {BurstSize,$(NoTitle),$(!REG_VT_DWORD),*($(List4),$(#))},+ {XmtBuffCnt,$(NoTitle),$(!REG_VT_DWORD),*($(List5),$(#))},+ {FullDuplexEnable,$(NoTitle),$(!REG_VT_DWORD),*($(List6),$(#))},+ {RequestedTTRT,$(NoTitle),$(!REG_VT_DWORD),*($(List7),$(#))}} Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)"""" set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm) set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+ {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif CloseRegKey $(HardNetCardKey) CloseRegKey $(HardNetRuleKey) CloseRegKey $(HardParameterKey) endif EndForListDo goto writeparameters writeparameters = + EndWait goto successful bindingadapter =+ set Error = "Binding: Sorry, not yet implemented." goto fatal removeadapter = + Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif else Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $(!NTN_RegBase) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif endif goto end UpgradeSoftware = + ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) GetRegValue $(KeyProduct),"MajorVersion", VersionInfo set Version = *($(VersionInfo), 4) Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set !UG_Filename = $($R0) ifstr(i) $(!UG_Filename) != "" install "Install-Update" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS goto fatal endif endif SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)} SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)} ifint $(Version) != $(ProductVersion) endif CloseRegKey $(KeyProduct) ; ; Upgrade MediaType to correct value (3 instead of 4). OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Linkage" $(MAXIMUM_ALLOWED) LinkageKey ifstr(i) $(LinkageKey) != "" GetRegValue $(LinkageKey) Bind BindInfo ForListDo *($(BindInfo),4) Split-String $($) "\" CardInfo QueryListSize CardPos $(CardInfo) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"*($(CardInfo),$(CardPos))"\Parameters" $(MAXIMUM_ALLOWED) ParamKey ifstr $(ParamKey) != "" SetRegValue $(ParamKey) {MediaType,$(NoTitle),$(!REG_VT_DWORD),3} CloseRegKey $(ParamKey) endif EndForListDo CloseRegKey $(LinkageKey) endif else goto fatalregistry endif else OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) + $(MAXIMUM_ALLOWED) NetworkCardKey Ifstr(i) $(NetworkCardKey) != $(KeyNull) GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo set ServiceName = *($(ServiceNameInfo), 4) OpenRegKey $(NetworkCardKey) "" "NetRules" + $(MAXIMUM_ALLOWED) NetRuleKey Ifstr(i) $(NetRuleKey) != $(KeyNull) else goto fatalregistry endif CloseRegKey $(NetRules) CloseRegKey $(NetworkCardKey) else goto fatalregistry endif OpenRegKey $(!REG_H_LOCAL) "" + $(!NTN_ServiceBase)"\"$(ServiceName) + $(MAXIMUM_ALLOWED) ServiceKey Ifstr(i) $(ServiceKey) != $(KeyNull) CloseRegKey $(ServiceKey) else goto fatalregistry endif endif ; ; Enumerate all netcards installed of this type and update them ; set iSearch = 1 nextnetcard = + Shell $(UtilityInf), FindNextNetworkCard, $(ProductHardwareName), $(iSearch) set KeyNetcard = $($R0) set iSearch = $($R1) Debug-Output "OemNadEp.Inf: FindNextNetworkCard "$(KeyNetcard)","$(iSearch) Ifstr $(KeyNetcard) != $(KeyNull) Debug-Output "OemNadEp.Inf: Setting OperationsSupport value" SetRegValue $(KeyNetcard) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)} CloseRegKey $(KeyNetcard) goto nextnetcard Endif goto end successful = + goto end abandon = + ForListDo $(OEM_ABANDON_OPTIONS) Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $($) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif EndForListDo Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), FALSE ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif endif goto end warning = + Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R1) == "OK" goto $(to) else-ifstr(i) $($R1) == "CANCEL" goto $(from) else goto "end" endif nonfatalinfo = + Set CommonStatus = STATUS_USERCANCEL Set Severity = STATUS goto nonfatalmsg nonfatal = + Set Severity = NONFATAL goto nonfatalmsg nonfatalmsg = + ifstr(i) $(Error) == "" Set Severity = NONFATAL Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) endif Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R1) == "OK" goto $(from) else goto "end" endif fatalregistry = + Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal fatal = + ifstr(i) $(Error) == "" Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) endif Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif goto setfailed ShellCodeError = + set DlgType = "MessageBox" set STF_MB_TITLE = $(ShellCodeErrorTitle) set STF_MB_TEXT = $(ShellCodeErrorText) set STF_MB_TYPE = 1 set STF_MB_ICON = 3 set STF_MB_DEF = 1 ui start "Error Message" goto setfailed setfailed = + set CommonStatus = STATUS_FAILED ifstr(i) $(OEM_ABANDON_ON) == TRUE set OEM_ABANDON_ON = FALSE goto abandon endif goto end end = + goto term term = + Return $(CommonStatus) [Install-Option] set STF_VITAL = "" ifstr(i) $(AddCopy) == "YES" AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers endif ifstr(i) $(DoCopy) == "YES" set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList endif ifstr(i) $(DoConfig) == "YES" endif Exit [Install-Update] set STF_VITAL = "" set STF_OVERWRITE = "VERIFYSOURCEOLDER" AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH) set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList exit