home *** CD-ROM | disk | FTP | other *** search
INI File | 1995-05-19 | 37.6 KB | 1,256 lines |
-
- [Identification]
- OptionType = NetAdapter
-
- [PlatformsSupported]
- ISA
- EISA
- "Jazz-Internal Bus"
-
- [LanguagesSupported]
- ENG
-
- [Options]
- NI6510
-
- [OptionsTextENG]
- NI6510 = "Racal InterLan EtherBlaster/NI6510 Adapter"
-
- [IRQ_Level]
- IRQ_3 = "3"
- IRQ_4 = "4"
- IRQ_5 = "5"
- IRQ_9 = "9"
- IRQ_12 = "12"
- IRQ_15 = "15"
-
- [IOAddrChoices]
- IOAddr_1 = "0x0300", 768
- IOAddr_2 = "0x0320", 800
- IOAddr_3 = "0x0340", 832
- IOAddr_4 = "0x0360", 864
-
- [DMAChoices]
- DMA_0 = 0
- DMA_3 = 3
- DMA_5 = 5
- DMA_6 = 6
- DMA_7 = 7
-
- [FileConstants]
- UtilityInf = "UTILITY.INF"
- ParamInf = "NCPARAM.INF"
- subroutineinf = "SUBROUTN.INF"
- SoftwareType = "driver"
- Exit_Code = 0
-
- NetEventDLL = "%SystemRoot%\System32\netevent.dll"
- IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
-
- IRQ_List = ^(IRQ_Level, 1)
- DMA_List = ^(DMAChoices, 1)
- ;IOADDR_Addr_List = ^(IOBaseAddrValue,1)
- IOBaseAddressList = ^(IOAddrChoices, 1)
- IOBaseAddressValue = ^(IOAddrChoices, 2)
- Manufacturer = "Microsoft"
- ProductMajorVersion = "3"
- ProductMinorVersion = "1"
- ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
-
- ProductSoftwareName = "NI6510"
- ProductSoftwareTitle = "Racal InterLan EtherBlaster/NI6510 Adapter Driver"
- ProductSoftwareImagePath = "\SystemRoot\System32\drivers\NI6510.sys"
- NetRuleSoftwareType = "NI6510Sys ndisDriver NI6510Driver"
- NetRuleSoftwareUse = $(SoftwareType)
- NetRuleSoftwareBindForm = """NI6510Sys"" yes no container"
- NetRuleSoftwareClass = {"NI6510Driver basic"}
- NetRuleSoftwareBindable = {"NI6510Driver NI6510Adapter non exclusive 100"}
-
- ProductHardwareName = "NI6510"
- ProductHardwareTitle = "Racal InterLan EtherBlaster/NI6510 Adapter"
- NetRuleHardwareType = "NI6510 NI6510Adapter"
- NetRuleHardwareBindForm = " yes yes container"
- NetRuleHardwareClass = {"NI6510Adapter basic"}
- ;
- ; Registry Key
- ;
- ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
- ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
-
-
- [GeneralConstants]
- ;
- ; Program flow control variables.
- ;
- from = ""
- to = ""
- ;
- ; Return codes; Exit_Code is set to one of these
- ;
- 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
-
- ;***********************************************************************
- ; Language-Dependent Dialog Constants
- ;***********************************************************************
-
- [FileConstantsENG]
- ;
- ; Variables to support thermometer gauge and error dialogs
- ;
- ProCaption = "Windows NT Setup"
- ProCancel = "Cancel"
- ProCancelMsg = "Windows NT Networking is not correctly installed. "+
- "Are you sure you want to cancel copying files?"
-
- ProCancelCap = "Network Setup Message"
- ProText1 = "Copying:"
- ProText2 = "To:"
-
- FunctionTitle = "Racal InterLan EtherBlaster/NI6510 Ethernet Adapter Card Setup"
-
- ProductSoftwareDescription = "Racal InterLan EtherBlaster/NI6510 Adapter Driver"
- ProductHardwareDescription = "Racal InterLan EtherBlaster/NI6510 Adapter"
-
- [DialogConstantsENG]
- Help = "&Help"
- Exit = "Cancel"
- OK = "OK"
- HelpContext = ""
- Continue = "Continue"
- Cancel = "Cancel"
-
- [date]
- ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
- ; Minute, Second }
- Now = {} ? $(!LIBHANDLE) GetSystemDate
-
-
- [FileDependentDlgENG]
- DlgType = "MultiCombo"
-
- DlgTemplate = "WD"
- Caption = $(FunctionTitle)
-
- DlgText = "Please select values for the follwing fields:"
-
- Combo1Label = "&IRQ Level:"
- Combo2Label = "I/O &Port Address:"
- Combo3Label = "&DMA Channel:"
- Combo1List = $(IRQ_List)
- Combo1Out = $(IRQ_Level)
- ;Combo2List = $(IOADDR_Addr_List)
- ;Combo2Out = $(IOBaseAddrValue)
- Combo2List = $(IOBaseAddressList)
- Combo2Out = $(IOBaseAddress)
- Combo3List = $(DMA_List)
- Combo3Out = $(DMAChannel)
-
- ComboListItemsIn = {Combo1List, Combo2List,Combo3List}
- ComboListItemsOut = {Combo1Out, Combo2Out,Combo3Out}
-
- EditTextIn = ""
- EditTextLim = ""
- CBOptionsGreyed = {}
- NotifyFields = {NO, NO}
-
- HelpContext = $(!IDH_DB_OEMNADE2_INS)
-
- [Identify]
- ; set STF_DISPLAYDEBUGOUTPUT = 1
- ; set !DebugOutputControl = 1
-
- 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 Status = STATUS_FAILED
- 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
-
- set-subst LF = "\n"
-
- read-syms GeneralConstants
- read-syms FileConstants
-
- 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 ActivateDetection = FALSE
-
- 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 ActivateDetection = TRUE
- set StartLabel = configureadapter
- ;
- ; You cannot config the software component
- ;
- Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
- Debug-Output "Cannot configure the Elink II 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
- endif
- else
- ; set ActivateDetection = TRUE
- set StartLabel = installadapter
- set OEM_ABANDON_OPTIONS = {}
- set OEM_ABANDON_SOFTWARE = FALSE
- set OEM_ABANDON_ON = TRUE
- endif
-
-
- ;===================================================
- ; Netcard Detection logic
- ;
- ; Initialize use of netcard detection;
- ; Construct require global parameter variables
- ;
- Debug-Output "OEMNADE2.INF: =================================================="
- Debug-Output "OEMNADE2.INF: STF_CWDIR is: "$(!STF_CWDIR)
- Debug-Output "OEMNADE2.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
- Debug-Output "OEMNADE2.INF: Option is: "$(Option)
- Debug-Output "OEMNADE2.INF: !STF_NCDETECT is: "$(!STF_NCDETECT)
- Debug-Output "OEMNADE2.INF: !STF_NCOPTION is: "$(!STF_NCOPTION)
- Debug-Output "OEMNADE2.INF: !STF_NCDETCARD is: "$(!STF_NCDETCARD)
- Debug-Output "OEMNADE2.INF: !STF_NCDETINFO is: "$(!STF_NCDETINFO)
- Debug-Output "OEMNADE2.INF: =================================================="
-
- Set DetectedCard = FALSE
-
- Ifstr(i) $(ActivateDetection) != TRUE
- Goto $(StartLabel)
- Endif
- ;
- ; Set !STF_NC_PARAMS and !STF_NC_PNAMES by calling
- ; PARAM.INF!Param_BuildTypeLists.
- ; Pass it a list of the form:
- ;
- ; { { <param name>,
- ; <name of choice list var>,
- ; <name of default var> },
- ; ...
- ; }
- ;
- Set TypeList = {{IRQ, IRQ_List, IRQ_Level},+
- {IOADDR, IOBaseAddressList, IOBaseAddr},+
- {DMA, DMA_List, DMAChannel}+
- }
-
- Debug-Output "OEMNADE2.INF: Calling Param_BuildTypeLists"
- Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
- Set Status = $($R0)
- ifstr(i) $(Status) != STATUS_SUCCESSFUL
- Goto fataldetect
- Endif
-
- Debug-Output "OEMNADE2.INF: Calling Param_SetDefaults"
- Shell $(ParamInf) Param_SetDefaults {}
-
- ; Establish presentation versions of choice lists.
-
- ; Shell $(ParamInf) HexListFromDecList $(IOADDR_Addr_List)
- ; Set IOADDR_Hex_List = $($R0)
-
- ; If this is a detected card, set the flag.
-
- Ifstr(i) $(!STF_NCDETECT) == YES
- Ifstr(i) $(!STF_NCOPTION) == $(Option)
- Set DetectedCard = TRUE
- Debug-Output "OEMNADE2.INF: Setting DetectedCard to TRUE"
- Endif
- Endif
- ;
- ; End Netcard Detection logic
- ;===================================================
-
- Shell "" DebugConfiguration "After parameter querying"
-
- Set from = $(fatal)
- Set to = $(fatal)
- Goto $(StartLabel)
-
- ;-----------------------------------------------
- ; Installation Section
- ;-----------------------------------------------
-
- installadapter = +
- ;
- ; First, check whether the same version of the software exists
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
-
- Ifstr $(KeyProduct) != $(KeyNull)
- ;
- ; Same version already existed in the local machine
- ; Popup the dialog and ask the user whether he wants to continue
- ;
- CloseRegKey $(KeyProduct)
-
- ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
- ;
- ; Cannot Install the same software again
- ;
- Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
- $(ProductVersion)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error: cannot get an error string."
- goto ShellCodeError
- endif
-
- goto end
- else
- ;
- ; Add a new adapter card?
- ;
- Shell $(UtilityInf), CardExistedDlg
-
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error: cannot get an error string."
- goto ShellCodeError
- endif
-
- ifstr(i) $($R1) != "OK"
- goto end
- endif
- set OldVersionExisted = $(TRUE)
- endif
- endif
-
- ;===================================================
- ; Netcard Detection logic
- ;
- ; If this is a detected card, query its parameters
- ; and merge them into the default list.
- ;
- Ifstr(i) $(DetectedCard) != TRUE
- Goto adaptersetup
- Endif
- ;
- ; Get the detected parameters
- ;
- StartWait
- Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
- EndWait
- Ifstr(i) $($R0) != STATUS_SUCCESSFUL
- Goto adaptersetup
- Endif
- ;
- ; Merge the detected values in.
- ;
- Set DetectedParams = $($R1)
- Debug-Output "OEMNADE2.INF: Calling Param_SetDefaults to merge detected params"
- Shell $(ParamInf) Param_SetDefaults $(DetectedParams)
- ;
- ; End Netcard Detection logic
- ;===================================================
-
- goto adaptersetup
-
- ;-----------------------------------------------
- ; Configuration Section
- ;-----------------------------------------------
- ;
- ; Get the current values of all the parameters
- ;
- 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
-
- ;
- ; Get the other parameters; they're attached to the service parameters key
- ;
- 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)
-
- ;
- ; We don't need the services key, so close it.
- ;
- 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 = {}
-
- ;
- ; Get the old values
- ;
-
- Debug-Output "Before EnumRegValue"
- EnumRegValue $(KeyParameters) ValueList
- Debug-Output "After EnumRegValue"
- ForListDo $(ValueList)
- set ValueItem = $($)
- set ValueName = *($(ValueItem),1)
- set ValueData = *($(ValueItem),4)
- Debug-Output " ForListDo LOOP"
- Ifstr(i) $(ValueName) == "CardType"
- set CardType = $(ValueData)
- else-Ifstr(i) $(ValueName) == "InterruptNumber"
- set IRQLevel = $(ValueData)
- else-Ifstr(i) $(ValueName) == "IOBaseAddress"
- set IOAddrValue = $(ValueData)
- else-Ifstr(i) $(ValueName) == "DMAChannel"
- set DMAChannel = $(ValueData)
- endif
- ;
- ; Put up the adapter configuration dialog if necessary.
- ;
- adaptersetup = +
-
- Shell "" DebugConfiguration "before displaying dialog"
-
- Set from = adapteroptions
-
- Set IOADDR_Hex_Value = *($(IOADDR_Hex_List), ~($(IOADDR_Addr_List),$(IOBaseAddrValue)))
-
- ;===================================================
- ; Netcard Detection logic
- ;
- ; Check that this card's parameters can be
- ; fully detected.
- ;
- Shell $(ParamInf) Param_ParameterConfidence
- Ifstr(i) $($R0) != STATUS_SUCCESSFUL
- Debug-Output "OEMNADE2.INF: parameter confidence too low to bypass configuration"
- Goto adapteroptions
- Endif
- ;
- ; If this is a detected card and we're in EXPRESS mode,
- ; see if the parameters as they currently exist are
- ; verifiably correct.
- ;
- Ifstr(i) $(DetectedCard) == TRUE
- Ifstr(i) $(!STF_INSTALL_MODE) != CUSTOM
- Goto adapterverify
- Endif
- Endif
- ;
- ; End Netcard Detection logic
- ;===================================================
-
- adapteroptions = +
-
- read-syms FileDependentDlg$(!STF_LANGUAGE)
-
- ui start "InputDlg"
-
- ifstr(i) $(DLGEVENT) == "CONTINUE"
- set IRQ_Level = $(Combo1Out)
- set IOBaseAddress = $(Combo2Out)
- set DMAChannel = $(Combo3Out)
- set IOAddrValue = *($(IOBaseAddressValue), ~($(IOBaseAddressList),+
- $(IOBaseAddress)))
- ui pop 1
- else-ifstr(i) $(DLGEVENT) == "BACK"
- set CommonStatus = STATUS_USERCANCEL
- Debug-Output "Action: exit. Bye."
- ui pop 1
- goto end
- else
- Debug-Output "Action: unknown. Bye."
- ui pop 1
- goto end
- endif
-
- adapterverify = +
-
- Shell "" DebugConfiguration "after running dialog"
-
- ;===================================================
- ; Netcard Detection logic
- ;
- ; If this is a detected card, attempt to validate the options
- ;
- Ifstr(i) $(DetectedCard) != TRUE
- Goto skipoptions
- Endif
-
- Debug-Output "OEMNADE2.INF: Calling Param_VerifyCard"
- Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD)
- Ifstr(i) $($R0) == STATUS_SUCCESSFUL
- Debug-Output "OEMNADE2.INF: Param_VerifyCard succeeded"
- Goto skipoptions
- Endif
- ;
- ; Give the user a chance to retry or force the options given.
- ;
- Set from = adapteroptions
- Set to = skipoptions
- Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error: cannot get an error string."
- goto ShellCodeError
- endif
- set Error = $($R0)
- Goto Warning
- ;
- ; End Netcard Detection logic
- ;===================================================
-
- ;
- ; If installing, go create the necessary keys;
- ; if configuring, they're already open.
- ;
- skipoptions =+
- Shell "" DebugConfiguration "SkipOptions"
- ifint $(OldVersionExisted) == $(TRUE)
- ifstr(i) $(!NTN_InstallMode) == configure
- goto writeparameters
- endif
- endif
- StartWait
- ;
- ; Add Software Component
- ;
- Debug-Output "After Start Wait"
- ifint $(OldVersionExisted) == $(FALSE)
- ifstr(i) $(!NTN_InstallMode) == "install"
- 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
- Debug-Output "Calling Install-Option "
- 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
- endif
- Debug-Output "Calling Shell 1"
- Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
- $(ProductSoftwareName), +
- $(ProductSoftwareName), +
- $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
- $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
- $(NetEventDLL)
-
- Set OEM_ABANDON_SOFTWARE = TRUE
-
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error"
- goto ShellCodeError
- endif
- ;
- ; At this point:
- ; $R1 contains the product version key handle;
- ; $R2 contains the NetRules subkey handle;
- ; $R3 contains the new Services key handle; and
- ; $R4 contains the Parameters key
- ; $R5 contains the Linkage Key
- ;
- set RegistryErrorIndex = $($R0)
- set KeyProduct = $($R1)
- Set SoftNetRulesKey = $($R2)
- CloseRegKey $($R3)
- CloseRegKey $($R4)
- CloseRegKey $($R5)
-
- Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
- EndWait
- Debug-Output "Registry error: add software components"
- CloseRegKey $(KeyProduct)
- CloseRegKey $(SoftNetRulesKey)
- goto fatalregistry
- endif
-
- Shell "" DebugConfiguration "Before NewValueList 1 "
- 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, $(KeyProduct), $(NewValueList)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error."
- goto ShellCodeError
- endif
-
- set RegistryErrorIndex = $($R0)
-
- Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
- EndWait
- Debug-Output "Registry error: add value list."
- CloseRegKey $(KeyProduct)
- CloseRegKey $(SoftNetRulesKey)
- goto fatalregistry
- endif
- Shell "" DebugConfiguration "Before NewValueList 2 "
- 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),$(NetRuleSoftwareBindable)}, +
- {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
-
- Shell $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error."
- goto ShellCodeError
- endif
-
- set RegistryErrorIndex = $($R0)
-
- CloseRegKey $(KeyProduct)
- CloseRegKey $(SoftNetRulesKey)
-
- Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
- EndWait
- Debug-Output "Resgitry error: add value list."
- goto fatalregistry
- endif
- endif
- ;
- ; Create the HARDWARE\Netcard region and its corresponding service
- ;
- 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)
- Debug-Output "Cannot add hardware component"
- goto ShellCodeError
- endif
-
- set RegistryErrorIndex = $($R0)
-
- Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
- EndWait
- Debug-Output "Registry error: add hardware component"
- CloseRegKey $($R1)
- CloseRegKey $($R2)
- CloseRegKey $($R3)
- goto fatalregistry
- endif
-
- ;
- ; At this point:
- ; $R1 Registry key variable for HARDWARE\Netcard\(n)
- ; $R2 Registry key variable for HARDWARE\Netcard\(n)\\NetRules
- ; $R3 Registry key handle for <service>\Parameters key
- ; $R4 Adapter number assigned to adapter
- ; $R5 Service name generated by combining svc name with adapter number
- ;
- set KeyParameters = $($R3)
- set KeyAdapterRules = $($R2)
- set AdapterNumber = $($R4)
-
- Shell "" DebugConfiguration "Before NewValueList 3 "
- 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)},+
- {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
-
- Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error"
- goto ShellCodeError
- endif
-
- CloseRegKey $($R1)
-
- set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
- set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
- Shell "" DebugConfiguration "Before NewValueList 4 "
- 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, $(KeyAdapterRules), $(NewValueList)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error."
- goto ShellCodeError
- endif
-
- set RegistryErrorIndex = $($R0)
- Debug-Output "After RegistryErrorIndex "
- Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
- EndWait
- Debug-Output "Resgitry error: add value list."
- CloseRegKey $(KeyParameters)
- CloseRegKey $(KeyAdapterRules)
- goto fatalregistry
- endif
-
- CloseRegKey $(KeyAdapterRules)
-
- goto writeparameters
- ;
- ; REQUIRED: $(KeyParameters) contains service Parameters key handle
- ;
- writeparameters = +
- Debug-Output "After writeparameters "
- Shell $(UtilityInf), GetBusTypeNum
- set BusTypeNum = $($R1)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error."
- goto ShellCodeError
- endif
- ;
- ; Add the rest of the parameters to the Services area
- ;
- Debug-Output "NewValueList 5 "
- set NewValueList = {+
- {MediaType,$(NoTitle),$(!REG_VT_DWORD),2},+
- {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
- {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQ_Level)},+
- {IoBase,$(NoTitle),$(!REG_VT_DWORD),$(IOAddrValue)},+
- {DMAChannel,$(NoTitle),$(!REG_VT_DWORD),$(DMAChannel)}+
- }
- Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
-
- CloseRegKey $(KeyParameters)
-
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error."
- goto ShellCodeError
- endif
-
- set RegistryErrorIndex = $($R0)
-
- Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
- Debug-Output "Registry error: Add value list"
- goto fatalregistry
- endif
-
- EndWait
-
- goto successful
-
- ;-----------------------------------------------
- ; Binding section
- ;-----------------------------------------------
- bindingadapter =+
- set Error = "Binding: Sorry, not yet implemented."
- goto fatal
-
- ;-----------------------------------------------
- ; Removeadapter section
- ;-----------------------------------------------
-
- removeadapter = +
- Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
- ; Remove Software Component
- 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
-
- ;-----------------------------------------------
- ; Upgrade Software section
- ;-----------------------------------------------
-
- UpgradeSoftware = +
- ;
- ; First determine whether we want to do upgrade or update for software
- ; or hardware component. Then we will determine whether the Mode is
- ; update or upgrade.
- ;
- ; If the same version of the product existed in the registry, we do
- ; update. Otherwise, we will do a upgrade
- ;
- ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
- ; Upgrade software component
- ;
- ; see whether the same version exist or not
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
-
- Ifstr $(KeyProduct) != $(KeyNull)
- GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
- set Version = *($(VersionInfo), 4)
-
- ;
- ; Update the binaries
- ;
- Split-String $(!NTN_Infname), "\", FilenameList
- QueryListSize ListSize $(FilenameList)
- set !UG_Filename = *($(FilenameList), $(ListSize))
-
- install "Install-Update"
- ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
- goto fatal
- endif
-
- ; Upgrade the version number
- ;
- SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
- SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
-
- ;
- ; do nothing for update
- ;
- ifint $(Version) != $(ProductVersion)
- ;
- ; If the major version number is not the same,
- ; it is major upgrade. So let Upgrade the product
- ;
- ;
- ; make other upgrade change if necessary
- ;
- endif
- CloseRegKey $(KeyProduct)
- else
- ;
- ; Cannot Open software key, goto ERROR
- ;
- goto fatalregistry
- endif
- else
- ;
- ; upgrade/update hardware component
- ; There is no different between upgrade and update for hardware
- ; component
- ;
- ; 1. Get the Service Name
- ; 2. Change the NetRule section if necessary
- ;
- OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
- $(MAXIMUM_ALLOWED) NetworkCardKey
- Ifstr(i) $(NetworkCardKey) != $(KeyNull)
- ;
- ; Get Service name
- ;
- GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
- set ServiceName = *($(ServiceNameInfo), 4)
-
- ;
- ; Change the NetRule if necessary
- ;
- OpenRegKey $(NetworkCardKey) "" "NetRules" +
- $(MAXIMUM_ALLOWED) NetRuleKey
- Ifstr(i) $(NetRuleKey) != $(KeyNull)
- ;
- ; Make the change....
- ;
- else
- ;
- ; Error, cannot open net rules key
- ;
- goto fatalregistry
- endif
-
- CloseRegKey $(NetRules)
- CloseRegKey $(NetworkCardKey)
- else
- ;
- ; Error, cannot open network card key
- ;
- goto fatalregistry
- endif
- ;
- ; 3. Change the service section of the hardware. i.e.,
- ; ParameterName change, value change, etc.
- ;
- OpenRegKey $(!REG_H_LOCAL) "" +
- $(!NTN_ServiceBase)"\"$(ServiceName) +
- $(MAXIMUM_ALLOWED) ServiceKey
-
- Ifstr(i) $(ServiceKey) != $(KeyNull)
- ;
- ; Get the ServiceKey to change the Start value
- ; or Type value. Or open Parameters key to
- ; change the hardware parameters if necessary.
- ;
- CloseRegKey $(ServiceKey)
- else
- ;
- ; Error, cannot open network card key
- ;
- goto fatalregistry
- endif
- endif
-
- goto end
- ;
- ; End of Upgrade Software
- ;
-
- ;
- ; Escape hatches
- ;
- 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
- ; Remove Software Component
- 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 display
- ;
- 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
- ;
- ; non fatal error display
- ;
- nonfatalinfo = +
- Set Severity = STATUS
- Set CommonStatus = STATUS_USERCANCEL
- 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
-
- ;
- ; Registry is broken
- ;
- fatalregistry = +
- Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- goto ShellCodeError
- endif
- set Error = $($R0)
- goto fatal
- ;
- ; Netcard detection failure
- ;
- fataldetect = +
- Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "ShellCode error: cannot get an error string."
- goto ShellCodeError
- endif
- set Error = $($R0)
- Goto fatal
- ;
- ; fatal error display
- ;
- 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
-
- ;
- ; Shelling error
- ;
- ShellCodeError = +
- set DlgType = "MessageBox"
- set STF_MB_TITLE = "Error: "$(FunctionTitle)
- set STF_MB_TEXT = "Shell Code Error"
- 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
- ;
- ; if OEM_ABANDON_ON == TRUE, then remove the registry entries
- ;
- ifstr(i) $(OEM_ABANDON_ON) == TRUE
- set OEM_ABANDON_ON = FALSE
- goto abandon
- endif
- goto end
-
- end = +
- goto term
-
- term = +
-
- Return $(CommonStatus)
-
- [DebugConfiguration]
-
- Set InfName = "OEMNADE2.INF"
- Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
- Debug-Output $(InfName)" IRQ_Level is "$(!p:IRQ_Level)
- Debug-Output $(InfName)" IOBaseAddr is "$(!p:IOAddrValue)
- Debug-Output $(InfName)" DMA is "$(!p:DMAChannel)
- Debug-Output $(InfName)"ProductHardwareTitle"$(!p:ProductHardwareTitle)
- Debug-Output $(InfName)"ProductSoftwareDescription"$(!p:ProductSoftwareDescription)
- Debug-Output $(InfName)"ProductHardwareDescription"$(!p:ProductHardwareDescription)
-
- return
-
-
- ;***************************************************************
- ; INSTALL SECTIONS
- ;***************************************************************
- [Install-Option]
- set STF_VITAL = ""
-
- ifstr(i) $(AddCopy) == "YES"
-
- ;
- ; Add the files to the copy list
- ;
- ; BUGBUG: eliminate the "nt2" in the next line when Sunil fixes
- ; the other INF files
- ;
- AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
-
- endif
-
- ifstr(i) $(DoCopy) == "YES"
-
- ;
- ; Copy files in the copy list
- ;
- set !STF_NCPA_FLUSH_COPYLIST = TRUE
- CopyFilesInCopyList
-
- endif
-
- Exit
-
- [Install-Update]
- set STF_VITAL = ""
- set STF_OVERWRITE = "VERIFYSOURCEOLDER"
- ;set STF_VERSION = "YES"
-
- AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
- AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
-
- set !STF_NCPA_FLUSH_COPYLIST = TRUE
- CopyFilesInCopyList
-
- exit
-
- [Source Media Descriptions]
- 1 = "Windows NT Setup Disk #1" , TAGFILE = disk1
- 2 = "Windows NT Setup CD-ROM Disk" , TAGFILE = disk2
- 99 = "LMHOST disk", TAGFILE = lmhosts
- [ProductType]
- STF_PRODUCT = Winnt
- STF_PLATFORM = I386
- [Files-Inf]
- 2, oemsetup.inf, SIZE=1000, RENAME=$(!UG_Filename)
- [Files-NI6510]
- 1,NI6510.sys , SIZE=44032
-
-
-
-