; "OEMSETUP.INF" -- Windows/NT Installation Script for 100VG/AnyLAN Adapters.
; Written 27-May-97 by Jack R. Ellis of Racore Corporation, Salt Lake City UT.
;
[Identification]
OptionType = NetAdapter
[GeneralConstants]
MAXIMUM_ALLOWED = 33554432
RegErrorNo = NO_ERROR
ErrorMsg = ""
ProductKey = ""
ParameterKey = ""
AdapterRulesKey = ""
NetRulesKey = ""
TRUE = 1
FALSE = 0
NoTitle = 0
ExitState = "Active"
DriverPath = $(!STF_NTPATH)\drivers
;
; Product Information
;
Mfgr = "Racore"
ProdMajV = "3"
ProdMinV = "11"
ProdVer = $(ProdMajV)"."$(ProdMinV)
;
; Filenames
;
UShell = "UTILITY.INF"
SShell = "SUBROUTN.INF"
SWType = "driver"
NetEventDLL = "%SystemRoot%\System32\netevent.dll"
;
; Software Configuration Registry Information
;
ProdSWName = "Rvgndis"
ProdSWImagePath = "%SystemRoot%\System32\drivers\rvgndis.sys"
NetRuleSWType = "rvgndisSys ndisDriver rvgndisDriver"
NetRuleSWUse = $(SWType)
NetRuleSWBindForm = """RvgndisSys"" yes no container"
NetRuleSWClass = {"rvgndisDriver basic"}
NetRuleSWBindable = {"rvgndisDriver rvgndisAdapter non exclusive 100"}
;
; Hardware Configuration Registry Information
;
ProdHWName = "Rvgndis"
NetRuleHWType = "rvgndis rvgndisAdapter"
NetRuleHWBindForm = " yes yes container"
NetRuleHWClass = {"rvgndisAdapter basic"}
;
; Registry Keys
;
ProdKeyName = $(!NTN_SoftwareBase)"\"$(Mfgr)"\"$(ProdSWName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProdHWName)"\Parameters"
[ProductType]
STF_PRODUCT = Winnt
STF_PLATFORM = I386
[LangSupport]
ENG
[BusSupport]
ISA
EISA
PCI
[Options]
RVGNDIS
[Source Media Descriptions]
1 = "Racore 100VG Windows/NT Driver, V1.14 (970527).", TAGFILE = disk.id
[Files-Inf]
2, oemsetup.inf, SIZE=1000, RENAME=$(!UG_Filename)
[Files-Rvgndis]
1 = 1, rvgndis.sys
[Files-Dll]
1 = 1, rvgndis.dll
[OptionsTextENG]
RVGNDIS = "Racore 100VG/AnyLAN NDIS Driver"
[FileConstantsENG]
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 = "RVGNDIS 100VG/AnyLAN Adapter Setup"
ProdSWDescr = "Rvgndis 100VG/AnyLAN Adapter Driver"
ProdHWDescr = "Racore 100VG/AnyLAN Adapter"
ProdSWTitle = "Rvgndis 100VG/AnyLAN Adapter Driver"
ProdHWTitle = "Racore 100VG/AnyLAN Adapter"
ShellErrorTitle = "Error: "$(FunctionTitle)
ShellErrorText = "Shell Code Error."
BIOTxtList = ^(BIOTable, 1)
BIOValList = ^(BIOTable, 2)
IRQTxtList = ^(IRQTable, 1)
IRQValList = ^(IRQTable, 2)
[DialogConstantsENG]
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"
[FileConfigDlgENG]
DlgText = "Please select values for the follwing fields:"
DlgType = "RadioCombination"
DlgTemplate = "RVGNDIS"
Caption = $(FunctionTitle)
CBOptionsGreyed = {}
NotifyFields = {NO, NO}
Combo1Label = "&Base I-O Port:"
Combo2Label = "&IRQ Level:"
Edit1Label = "&Network Address:"
Check1Label = "&Priority Transmissions"
ComboListItemsIn = {Combo1List, Combo2List}
ComboListItemsOut = {Combo1Out, Combo2Out}
EditTextLim = {"",""}
;
; Identify -- Verifies that this script file deals with the same type of
; options as we are choosing currently.
;
; OUTPUT: $($R0): STATUS_SUCCESSFUL
; $($R1): Option Type (COMPUTER ...)
; $($R2): Diskette description
;
[Identify]
set Status = STATUS_SUCCESSFUL
set Ident = NetAdapter
set Media = #("Source Media Descriptions", 1, 1)
return $(Status) $(Ident) $(Media)
;
; ReturnOptions -- Returns the option list supported by this INF and the
; localized text list representing the options.
;
; INPUT: $($0): Language used (ENG, FRN, etc.).
;
; OUTPUT: $($R0): Status (SUCCESSFUL, NOLANGUAGE, or NOTSUPPORTED)
; $($R1): Option List
; $($R2): Option Text List
;
[ReturnOptions]
set Status = STATUS_SUCCESSFUL ;Default return status to "success".
set OptionList = {} ;Default return list/text to "empty".
set OptionText = {} ;(In case of errors below).
set LangList = ^(LangSupport, 1) ;See if caller's language is supported.
ifcontains(i) $($0) not-in $(LangList)
set Status = STATUS_NOLANGUAGE ;No?? Goodbye!!
return $(Status) $(OptionList) $(OptionText)
endif
ifstr(i) $($1) == "" ;Did caller specify a CPU bus type?
set OptionList = ^(Options, 1) ;No, just pass options back to caller.
set OptionText = ^(OptionsText$($0), 1)
return $(Status) $(OptionList) $(OptionText)
endif
set BusList = ^(BusSupport, 1) ;See if caller's CPU bus is supported.
ifcontains(i) $($1) not-in $(BusList)
set Status = STATUS_NOTSUPPORTED ;No?? Goodbye!!
return $(Status) $(OptionList) $(OptionText)
endif
set OptionList = ^(Options, 1) ;Pass options back to caller & exit.
set OptionText = ^(OptionsText$($0), 1)
return $(Status) $(OptionList) $(OptionText)
;
; Installation -- This section is invoked as a "shell" by main installation
; processing or by NCPASHEL.INF during a reconfig, removal,
; update, etc.
;
; INPUT: $($0): Language to use
; $($1): OptionID to install
; $($2): SourceDirectory
; $($3): AddCopy (YES | NO)
; $($4): DoCopy (YES | NO)
; $($5): DoConfig (YES | NO)
;
; OUTPUT: $($R0): Status (SUCCESSFUL, NOLANGUAGE, USERCANCEL, FAILED, etc.)
;
[InstallOption]
debug-output "Starting 100VG scripts"
set OEM_ABANDON_OPTIONS = "" ;Set default exiting status.
set OEM_ABANDON_SOFTWARE = FALSE
set OEM_ABANDON_ON = TRUE
set Option = $($1) ;Get operator parameters.
set SrcDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)
set LangList = ^(LangSupport, 1) ;See if desired language is supported.
Ifcontains(i) $($0) NOT-IN $(LangList)
return STATUS_NOLANGUAGE
endif
read-syms GeneralConstants ;Set up all our internal variables.
read-syms DialogConstants$(!STF_LANGUAGE)
read-syms FileConstants$(!STF_LANGUAGE)
set Status = STATUS_SUCCESSFUL
set-title $(FunctionTitle)
detect date ;Get current system date.
endwait ;Get rid of the "wait" icon.
set BIOText = *($(BIOTxtList), 1) ;Set default 100VG parameters.
set IRQText = *($(IRQTxtList), 1)
set NetAddrValue = ""
set PriorityValue = "0"
set StartLabel = installadapter ;Default to our installation routine.
ifstr(i) $(!NTN_InstallMode) == deinstall ;See what our boy wants to do --
set StartLabel = removeadapter
endif
ifstr(i) $(!NTN_InstallMode) == Update
set StartLabel = Upgrade
endif
ifstr(i) $(!NTN_InstallMode) == bind
set Error = "100VG Binding: Sorry, not yet implemented."
goto fatalmsg
endif
ifstr(i) $(!NTN_InstallMode) == configure
ifstr(i) $(ProdKeyName) == $(!NTN_RegBase)
debug-output "Cannot configure the Rvgndis driver software."
shell $(UShell), RegistryErrorString, CANNOT_CONFIGURE_SOFTWARE
set ErrorMsg = "getting config-error message."
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto shellerror
endif
shell $(SShell) SetupMessage, $(!STF_LANGUAGE), "STATUS", $($R0)
set ErrorMsg = "displaying config-error message."
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto shellerror
endif
return STATUS_USERCANCEL
endif
set Status = STATUS_REBOOT
set StartLabel = configureadapter
set SrcDir = $(!STF_CWDDIR)
endif
goto $(StartLabel) ;Go do what our boy wants.
;
; Install-Adapter & Install-Software Setup Routine.
;
installadapter = +
set StartLabel = addnewsoftware ;Add new software/adapter after dialog.
set Combo1List = $(BIOTxtList) ;Set default dialog-list parameters.
set Combo1Out = {}
set Combo2List = $(IRQTxtList)
set Combo2Out = {}
set CheckItemsIn = {OFF}
set CheckItemsOut = {}
openregkey $(!REG_H_LOCAL) "" $(ProdKeyName) $(MAXIMUM_ALLOWED) ProductKey
ifstr $(ProductKey) != "" ;Is same version already installed?
closeregkey $(ProductKey) ;Yes, close product key.
set ProductKey = ""
ifstr(i) !(NTN_RegBase) == $(ProdKeyName) ;Can't install same software!
shell $(UShell), VerExistedDlg, $(ProdSWTitle), $(ProdVer)
set ErrorMsg = "getting software version-exists message."
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto shellerror
endif
return $(Status)
endif
shell $(UShell), CardExistedDlg ;Confirm that we are adding an adapter.
set ErrorMsg = "getting hardware version-exists message."
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto shellerror
endif
ifstr(i) $($R1) != "OK" ;Is another adapter really wanted?
return STATUS_USERCANCEL ;No?? Goodbye!!
endif
set StartLabel = addnewadapter ;Add only a new adapter after dialog.
goto adapterdialog ;Go run operator dialog (below).
endif
shell $(UShell), DoAskSource, $(!STF_CWDDIR), "" ;Input new adapter files.
set ErrorMsg = "getting source-file directory."
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto shellerror
endif
ifstr(i) $($R0) == STATUS_FAILED
return STATUS_FAILED
endif
ifstr(i) $($R0) == STATUS_USERCANCEL
return STATUS_USERCANCEL
endif
install "Copy-Files"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
set Error = "100VG Install: file copy failed."
goto fatalmsg
endif
goto adapterdialog ;Go run operator dialog (below).
;
; Configure-Adapter Setup Routine. First, get current registry parameters.
;
configureadapter = +
openregkey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) ProductKey
ifstr $(ProductKey) == ""
set ErrorMsg = "cannot find component product key"
set RegErrorNo = CANNOT_FIND_COMPONENT_SERVICE
goto registryerror
endif
debug-output "INF: Shelling to FindService"
shell $(UShell) FindService, $(ProductKey)
set ErrorMsg = "finding component service."
set chkerrexit = chkreturn1
goto checkerrors
chkreturn1 = +
set ParameterKey = $($R2)
closeregkey $($R1)
ifstr $(ParameterKey) == ""
set ErrorMsg = "cannot find component service"
set RegErrorNo = CANNOT_FIND_COMPONENT_SERVICE
goto registryerror
endif
set ValueName = "" ;Get old 100VG values from registry.
set ValueData = ""
set ValueList = {}
enumregvalue $(ParameterKey) ValueList
forlistdo $(ValueList)
set ValueItem = $($)
set ValueName = *($(ValueItem),1)
set ValueData = *($(ValueItem),4)
ifstr(i) $(ValueName) == "IOAddress"
set BIOValue = $(ValueData)
endif
ifstr(i) $(ValueName) == "IRQLevel"
set IRQValue = $(ValueData)
endif
ifstr(i) $(ValueName) == "NetworkAddress"
set NetAddrValue = $(ValueData)
endif
ifstr(i) $(ValueName) == "Priority"
set PriorityValue = $(ValueData)
endif
endforlistdo
set BIOText = *($(BIOTxtList), ~($(BIOValList), $(BIOValue)))
set IRQText = *($(IRQTxtList), ~($(IRQValList), $(IRQValue)))
set Combo1List = {*($(BIOTxtList), ~($(BIOValList), $(BIOValue)))}
forlistdo $(BIOValList)
set NewVal = $($)
ifint $(NewVal) != $(BIOValue)
set NewText = *($(BIOTxtList), ~($(BIOValList), $(NewVal)))
set Combo1List = >($(Combo1List), $(NewText))
endif
endforlistdo
set Combo2List = {*($(IRQTxtList), ~($(IRQValList), $(IRQValue)))}
forlistdo $(IRQValList)
set NewVal = $($)
ifint $(NewVal) != $(IRQValue)
set NewText = *($(IRQTxtList), ~($(IRQValList), $(NewVal)))
set Combo2List = >($(Combo2List), $(NewText))
endif
endforlistdo
set StartLabel = updateparameters ;Just update parameters after dialog.
debug-output "Old I-O Base = "$(BIOText)","$(BIOValue)
debug-output "Old IRQ Level = "$(IRQText)","$(IRQValue)
debug-output "Old NetAddress = "$(NetAddrValue)
debug-output "Old Priority = "$(PriorityValue)
;
; Display operator-dialog box & let our boy set or modify adapter parameters.
;
adapterdialog = +
set EditTextIn = {$(NetAddrValue)}
set CheckItemsIn = {OFF}
ifstr(i) $(PriorityValue) != "0"
set PriorityValue = "1"
set CheckItemsIn = {ON}
endif
loadlibrary "" $(SrcDir)"\rvgndis.dll" hLib
read-syms FileConfigDlg$(!STF_LANGUAGE)
ui start "InputDlg" $(hLib)
ifstr(i) $(DLGEVENT) != "CONTINUE" ;Did he finish with the "continue" key?
freelibrary $(hLib) ;No?? Assume dialog was exlaxed!!
ui pop 1
return STATUS_USERCANCEL
endif
set BIOText = $(Combo1Out) ;Set & display new 100VG parameters.
set IRQText = $(Combo2Out)
set BIOValue = *($(BIOValList), ~($(BIOTxtList), $(BIOText)))
set IRQValue = *($(IRQValList), ~($(IRQTxtList), $(IRQText)))
set NetAddrValue = *($(EditTextOut),1)
set PriorityIndex = *($(CheckItemsOut),1)
set PriorityValue = "0"
ifstr(i) $(PriorityIndex) == "ON"
set PriorityValue = "1"
endif
debug-output "New I-O Base = "$(BIOText)","$(BIOValue)
debug-output "New IRQ Level = "$(IRQText)","$(IRQValue)
debug-output "New NetAddress = "$(NetAddrValue)
debug-output "New Priority = "$(PriorityValue)
freelibrary $(hLib) ;Clear dialog box from the screen.
ui pop 1
startwait ;Display the "wait" icon.
goto $(StartLabel) ;Go make requested additions/updates.
;
; Create required registry keys for a new software component.
;
addnewsoftware = +
debug-output "Invoking AddSoftwareComponent"
set OEM_ABANDON_SOFTWARE = TRUE
shell $(UShell), AddSoftwareComponent, $(Mfgr), $(ProdSWName), +
$(ProdSWName), $(ProdSWTitle), $(STF_CONTEXTINFNAME), +
$(ProdSWImagePath), "kernel", "NDIS" , {}, "", $(NetEventDLL)
set ErrorMsg = "adding software component."
set chkerrexit = chkreturn2
goto checkerrors
chkreturn2 = +
set ProductKey = $($R1) ;Set our product & netrules keys.
set NetRulesKey = $($R2)
closeregkey $($R3) ;Close "new services" key.
closeregkey $($R4) ;Close parameters key.
closeregkey $($R5) ;Close "linkage" key.
set NewList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SWType)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMajV)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMinV)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(ProdSWTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProdSWDescr)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProdSWName)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
shell $(UShell), AddValueList, $(ProductKey), $(NewList)
set ErrorMsg = "adding product values."
set chkerrexit = chkreturn3
goto checkerrors
chkreturn3 = +
set NewList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSWType)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSWUse)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSWBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSWClass)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSWBindable)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
shell $(UShell), AddValueList, $(NetRulesKey), $(NewList)
set ErrorMsg = "adding software netrules."
set chkerrexit = chkreturn4
goto checkerrors
chkreturn4 = +
closeregkey $(ProductKey)
set ProductKey = ""
closeregkey $(NetRulesKey)
set NetRulesKey = ""
;
; Create the hardware entries and corresponding service for a new adapter.
;
addnewadapter = +
debug-output "Invoking AddHardwareComponent <"$(STF_CONTEXTINFNAME)">"
shell $(UShell), AddHardwareComponent, $(ProdHWName),$(STF_CONTEXTINFNAME),$(ProdKeyName)
set ErrorMsg = "adding hardware component."
set chkerrexit = chkreturn5
goto checkerrors
chkreturn5 = +
ifint $($R4) != -1
set OEM_ABANDON_OPTIONS = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4)
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 ParameterKey = $($R3)
set AdapterRulesKey = $($R2)
set AdapterNumber = $($R4)
set NewList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Mfgr)},+
{Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProdHWTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProdHWDescr)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProdHWName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
shell $(UShell), AddValueList, $($R1), $(NewList)
set ErrorMsg = "adding hardware values."
set chkerrexit = chkreturn6
goto checkerrors
chkreturn6 = +
closeregkey $($R1)
set TempProdName = """"$(ProdHWName)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(NetRuleHWBindForm)
set NewList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHWType)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHWClass)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
shell $(UShell), AddValueList, $(AdapterRulesKey), $(NewList)
set ErrorMsg = "adding hardware netrules."
set chkerrexit = chkreturn7
goto checkerrors
chkreturn7 = +
closeregkey $(AdapterRulesKey)
set AdapterRulesKey = ""
;
; Update adapter parameters in the registry.
;
updateparameters = +
set CPUBusNum = 0 ;Default bus number to zero.
set BusTypeNum = 2 ;Set EISA bus-type.
ifint $(BIOValue) > 1023 ;Is this an EISA adapter?
goto updateregistrylist ;Yes, go update registry.
endif
set BusTypeNum = 1 ;Set ISA bus-type.
ifint $(BIOValue) > 0 ;Is this an ISA adapter?
goto updateregistrylist ;Yes, go update registry.
endif
set BusTypeNum = 5 ;Set PCI bus-type.
Shell $(UShell), GetBusTypeDialog, $(ProdHWDescr) $(BusTypeNum) $(CPUBusNum)
set ErrorMsg = "getting PCI bus number."
set chkerrexit = chkreturn8
goto checkerrors
chkreturn8 = +
set CPUBusNum = $($R2)
updateregistrylist = +
set NewList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(CPUBusNum)},+
{MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
{IOAddress,$(NoTitle),$(!REG_VT_DWORD),$(BIOValue)},+
{IRQLevel,$(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
{SharedMemory,$(NoTitle),$(!REG_VT_DWORD),0},+
{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetAddrValue)},+
{Multicasts,$(NoTitle),$(!REG_VT_DWORD),16},+
{Priority,$(NoTitle),$(!REG_VT_SZ),$(PriorityValue)},+
{Speed,$(NoTitle),$(!REG_VT_SZ),"3"},+
{Mode,$(NoTitle),$(!REG_VT_SZ),"1"}}
shell $(UShell), AddValueList, $(ParameterKey), $(NewList)
set ErrorMsg = "updating adapter parameters."
set chkerrexit = chkreturn9
goto checkerrors
chkreturn9 = +
closeregkey $(ParameterKey) ;Close our parameter key.
endwait ;Get rid of the "wait" icon.
return $(Status) ;We're done -- exit.
;
; Upgrade Routine.
;
Upgrade = +
ifstr(i) $(ProdKeyName) != $(!NTN_RegBase) ;Is this a hardware upgrade?
goto UpgradeHardware ;Yes, use logic below.
endif
;
; Upgrade all of our software files (i.e., read in the new files).
;
openregkey $(!REG_H_LOCAL) "" $(ProdKeyName) $(MAXIMUM_ALLOWED) ProductKey
ifstr $(ProductKey) == "" ;If our software doesn't exist, error!
set Error = "Cannot open 100VG software product key for upgrade."
goto fatalmsg
endif
getregvalue $(ProductKey),"MajorVersion", VersionInfo
set Version = *($(VersionInfo), 4)
shell $(UShell), GetInfFileNameFromRegistry, $(ProductKey)
set ErrorMsg = "getting registry file name."
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto shellerror
endif
set !UG_Filename = $($R0)
ifstr(i) $(!UG_Filename) != ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
install "Copy-Files"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
set Error = "100VG Upgrade: file copy failed."
goto fatalmsg
endif
endif
;
; Upgrade the software version number.
;
setregvalue $(ProductKey) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProdMajV)}
setregvalue $(ProductKey) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProdMinV)}
closeregkey $(ProductKey) ;Close our product key.
endwait ;Get rid of the "wait" icon.
return $(Status) ;We're done -- exit.
;
; Upgrade/update a hardware component (no difference). First, get the
; desired service name, then make any desired rules changes.
;
UpgradeHardware = +
openregkey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) AdapterRulesKey
ifstr(i) $(AdapterRulesKey) == ""
set Error = "Cannot open 100VG adapter rules key for upgrade."
goto fatalmsg
endif
getregvalue $(AdapterRulesKey),"ServiceName", ServiceNameInfo
set ServiceName = *($(ServiceNameInfo), 4)
openregkey $(AdapterRulesKey) "" "NetRules" $(MAXIMUM_ALLOWED) NetRulesKey
ifstr(i) $(NetRulesKey) == ""
set Error = "Cannot open 100VG net rules key for upgrade."
goto fatalmsg
endif
;
; Make any desired rules changes here (none at present).
;
closeregkey $(NetRulesKey)
set NetRulesKey = ""
closeregkey $(AdapterRulesKey)
set AdapterRulesKey = ""
;
; Change the hardware service section (ParameterName & value changes, etc.).
;
openregkey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName) +
$(MAXIMUM_ALLOWED) AdapterRulesKey
ifstr(i) $(AdapterRulesKey) == ""
set Error = "Cannot open 100VG hardware-service key for upgrade."
goto fatalmsg
endif
;
; Get the ServiceKey to change the Start or Type values, or open
; Parameters key to change the hardware parameters if desired.
; (No changes made at present).
;
closeregkey $(AdapterRulesKey) ;Close hardware-service key.
endwait ;Get rid of the "wait" icon.
return $(Status) ;We're done -- exit.
;
; Remove-Adapter Routine.
;
removeadapter = +
ifstr(i) $(ProdKeyName) == $(!NTN_RegBase)
shell $(UShell), RemoveSoftwareComponent, $(Mfgr), +
$(ProdSWName)
set ErrorMsg = "removing software component."
set chkerrexit = chkreturn10
goto checkerrors
endif
shell $(UShell), RemoveHardwareComponent, $(Mfgr), +
$(ProdSWName), $(!NTN_RegBase)
set ErrorMsg = "removing hardware component."
set chkerrexit = chkreturn10
goto checkerrors
chkreturn10 = +
endwait ;Get rid of the "wait" icon.
return $(Status) ;We're done -- exit.
;
; Subroutine to check for errors following a "Shell $(UShell)" call.
;
checkerrors = +
ifint $($ShellCode) != $(!SHELL_CODE_OK) ;Did utility shell run O.K.?
goto ShellError ;No?? Goodbye!!
endif
set RegErrorNo = $($R0) ;Get returned error code.
ifstr(i) $(RegErrorNo) == NO_ERROR ;Did utility shell find an error?
goto $(chkerrexit) ;No, exit back to caller.
endif ;Otherwise --
;
; Error-Handling Routines.
;
registryerror = +
Debug-Output "*** Error: "$(ErrorMsg)
shell $(UShell) RegistryErrorString $(RegErrorNo)
set ErrorMsg = "getting registry-error message."
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto shellerror
endif
set Error = $($R0)
fatalmsg = +
shell $(SShell) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
set ErrorMsg = "displaying fatal-error message."
ifint $($ShellCode) == $(!SHELL_CODE_OK)
goto errorexit
endif
shellerror = +
Debug-Output "*** Shell error: "$(ErrorMsg)
set DlgType = "MessageBox"
set STF_MB_TITLE = $(ShellErrorTitle)
set STF_MB_TEXT = $(ShellErrorText)
set STF_MB_TYPE = 1
set STF_MB_ICON = 3
set STF_MB_DEF = 1
ui start "Error Message"
errorexit = +
endwait ;Get rid of the "wait" icon.
ifstr(i) $(OEM_ABANDON_ON) == FALSE ;Have we already come through here?
return STATUS_FAILED ;Yes, exit fast!!
endif
set OEM_ABANDON_ON = FALSE ;Prevent infinite-loop if shell errors.
ifstr $(ProductKey) != "" ;Close any registry keys left open.
closeregkey $(ProductKey)
endif
ifstr $(ParameterKey) != ""
closeregkey $(ParameterKey)
endif
ifstr $(AdapterRulesKey) != ""
closeregkey $(AdapterRulesKey)
endif
ifstr $(NetRulesKey) != ""
closeregkey $(NetRulesKey)
endif
ifstr $(OEM_ABANDON_OPTIONS) != ""
set ErrorMsg = "abandoning hardware component."
shell $(UShell), RemoveHardwareComponent, $(Mfgr), +
$(ProdSWName), $(OEM_ABANDON_OPTIONS)
set chkerrexit = chkreturn11
goto checkerrors
endif
chkreturn11 = +
ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
shell $(UShell), RemoveSoftwareComponent, $(Mfgr), +
$(ProdSWName), FALSE
set ErrorMsg = "abandoning software component."
set chkerrexit = chkreturn12
goto checkerrors
endif
chkreturn12 = +
return STATUS_FAILED ;"Hasta la vista ... baybee!"
;
; Subroutine to copy in the "rvgndis" files, normally from a user diskette.
; Note that the following "copy" commands may NOT be used in main-line code!
;
[Copy-Files]
debug-output "Copying new RVGNDIS files --"
set STF_VITAL = ""
AddSectionKeyFileToCopyList Files-Rvgndis 1 $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
AddSectionKeyFileToCopyList Files-Dll 1 $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
;
; Subroutine to get the current system date.
;
[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
[BIOTable]
BIO_1 = "--- PCI card ---",0
BIO_2 = "300 (ISA only)",768
BIO_3 = "340 (ISA only)",832
BIO_4 = "380 (ISA only)",896
BIO_5 = "2C0 (ISA only)",704
BIO_6 = "280 (ISA only)",640
BIO_7 = "240 (ISA only)",576
BIO_8 = "200 (ISA only)",512
BIO_9 = "1C0 (ISA only)",448
BIO_10 = "180 (ISA only)",384
BIO_11 = "140 (ISA only)",320
BIO_12 = "100 (ISA only)",256
BIO_13 = "EISA Slot 1",7224
BIO_14 = "EISA Slot 2",11320
BIO_15 = "EISA Slot 3",15416
BIO_16 = "EISA Slot 4",19512
BIO_17 = "EISA Slot 5",23608
BIO_18 = "EISA Slot 6",27704
BIO_19 = "EISA Slot 7",31800
BIO_20 = "EISA Slot 8",35896
BIO_21 = "EISA Slot 9",39992
BIO_22 = "EISA Slot 10",44088
BIO_23 = "EISA Slot 11",48184
BIO_24 = "EISA Slot 12",52280
BIO_25 = "EISA Slot 13",56376
BIO_26 = "EISA Slot 14",60472
BIO_27 = "EISA Slot 15",64568
[IRQTable]
IRQ_1 = "EEprom/PCI value",1
IRQ_2 = "9",9
IRQ_3 = "10",10
IRQ_4 = "11",11
IRQ_5 = "12 (PS/2 Mouse!)",12
IRQ_6 = "15 (IDE Port 2!)",15
IRQ_7 = "3 (SerialPort 2!)",3
IRQ_8 = "4 (SerialPort 1!)",4
IRQ_9 = "5 (8-Bit Port 2!)",5
IRQ_10 = "6 (Diskette!)",6
IRQ_11 = "7 (8-Bit Port 1!)",7
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.