; "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!)",7Download 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.