;---------------------------------------------------------------------------
; OEMSETUP file for Adaptec DuraLAN Fast Ethernet NIC Driver
; <<FailOver>>
;
; Copyright 1994-1998, Adaptec, Inc.
;
; Supported Windows NT versions:
; 3.51 or 4.0
;
; Supported Adaptec PCI adapters:
; AIC6915 based boards - ANA6X0XX, ANA62011/TX, ANA62022,
; ANA62044, ANA69011/TX
;
; Usage:
;
; This file is the installation/configuration/deinstallation
; procedure of the Adaptec ADPTSF miniport driver for Windows NT.
; It can be called from Windows Setup directly, or via the Windows
; NT Networks Control Program Applet (NCPA) from inside the Windows
; Control Panel.
;
;---------------------------------------------------------------------------
[Identification]
OptionType = NetAdapter
[PlatformsSupported]
PCI
[Options]
ANA6XXXX ; Any Adaptec Adptsf-based PCI Fast Ethernet Adapter
ANA62011TX ; Single 10/100 Mb/s UTP Port
ANA62022 ; 2 each 10/100 Mb/s UTP Port
ANA62044 ; 4 each 10/100 Mb/s UTP Port
ANA69011TX ; Single 10/100 Mb/s UTP Port
[CFIDS]
AIC6915CFID = 1763020804 ;; 0x69159004; DeviceID=6915; VendorID=9004
[FileConstants]
;---General---
DRIVERNAME = ""
PATH = "" ; DLL/EXE/etc path
DRVPATH = "..\..\Windows\i386\" ; Driver path
AFAILOVR_NAME = ""
ADPTSFDI_NAME = ""
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
SoftwareType = "driver"
Exit_Code = 0
sfbmonEXE = $(!STF_WINDOWSSYSPATH)\sfbmon.exe
NetEventDLL = "%SystemRoot%\System32\netevent.dll"
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
Manufacturer = "Adaptec"
ProductMajorVersion = "4"
ProductMinorVersion = "1"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
VendorID = 36868 ;; 9004
OptionHelpFile = "ADPTSFFO.hlp"
;---Software---
ProductSoftwareName = "ADPTSF"
ProductSoftwareTitle = "Adaptec DuraLAN Fast Ethernet NIC Driver"
NetRuleSoftwareType = "ADPTSFSys ndisDriver ADPTSFDriver"
NetRuleSoftwareUse = $(SoftwareType)
NetRuleSoftwareBindForm = """ADPTSFSys"" yes no container"
NetRuleSoftwareClass = {"ADPTSFDriver basic"}
NetRuleSoftwareSWBindable = {"ADPTSFDriver ADPTSFAdapter non exclusive 100"}
;---Hardware---
ProductHardwareName = "ADPTSF"
; Any Adaptec Adptsf-based PCI Fast Ethernet Adapter
FunctionANA6XXXXTitle = "Adaptec ANA6X0XX Configuration"
ProductHardwareANA6XXXXTitle = "Adaptec DuraLAN NIC"
ProductHardwareANA6XXXXDescription = "Adaptec Duralink FailOver for DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA6XXXXType = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA6XXXXClass = {"ADPTSFAdapter basic"}
AdapterANA6XXXXType = 5 ;; PCI board
HelpANA6XXXXId = 10
; Single 10.100 Mb/s UTP Port
FunctionANA62011TXTitle = "Adaptec ANA62011/TX Configuration"
ProductHardwareANA62011TXTitle = "Adaptec DuraLAN NIC"
ProductHardwareANA62011TXDescription = "Adaptec Duralink FailOver for DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA62011TXType = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA62011TXClass = {"ADPTSFAdapter basic"}
AdapterANA62011TXType = 5 ;; PCI board
HelpANA62011TXId = 10
; 2 each 10/100 Mb/s UTP Port
FunctionANA62022Title = "Adaptec ANA62022 Configuration"
ProductHardwareANA62022Title = "Adaptec DuraLAN NIC"
ProductHardwareANA62022Description = "Adaptec Duralink FailOver for DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA62022Type = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA62022Class = {"ADPTSFAdapter basic"}
AdapterANA62022Type = 5 ;; PCI board
HelpANA62022Id = 10
; 4 each 10/100 Mb/s UTP Port
FunctionANA62044Title = "Adaptec ANA62044 Configuration"
ProductHardwareANA62044Title = "Adaptec DuraLAN NIC"
ProductHardwareANA62044Description = "Adaptec Duralink FailOver for DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA62044Type = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA62044Class = {"ADPTSFAdapter basic"}
AdapterANA62044Type = 5 ;; PCI board
HelpANA62044Id = 10
; Single 10.100 Mb/s UTP Port
FunctionANA69011TXTitle = "Adaptec ANA69011/TX Configuration"
ProductHardwareANA69011TXTitle = "Adaptec DuraLAN NIC"
ProductHardwareANA69011TXDescription = "Adaptec Duralink FailOver for DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA69011TXType = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA69011TXClass = {"ADPTSFAdapter basic"}
AdapterANA69011TXType = 5 ;; PCI board
HelpANA69011TXId = 10
NetRuleHardwareBindForm = " yes yes container"
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
;_DMI begin
ServiceKey = "SYSTEM\CurrentControlSet\Services"
;_DMI end
[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
[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
[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 = +
Debug-Output "returnoptions ..."
set OptionList = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = +
Debug-Output "finish_ReturnOptions ..."
Return $(Status) $(OptionList) $(OptionTextList)
[InstallOption]
set CurrentVersionValue = ""
; set !DebugOutputControl = 1
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion" $(!REG_KEY_READ) KeyWinNT
ifstr(i) $(KeyWinNT) != ""
GetRegValue $(KeyWinNT) "CurrentVersion" CurrentVersionValue
CloseRegKey $(KeyWinNT)
endif
Debug-Output "CurrentVersionValue="$(CurrentVersionValue)
set m_WinNTVersion = *($(CurrentVersionValue),4)
Debug-Output "m_WinNTVersion = "$(m_WinNTVersion)
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 CFIDS
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 $(Function$(Option)Title)
set to = Begin
set from = Begin
set CommonStatus = STATUS_SUCCESSFUL
ifcontains(i) $(m_WinNTVersion) in {"3.50", "3.51"}
; WinNT 3.5x
set DRIVERNAME = "ADPTSF30.SYS"
set AFAILOVR_NAME = "AFAILOVR35.DLL"
set ADPTSFDI_NAME = "ADPTSFDI35.DLL"
else
; WinNT 4.x
set DRIVERNAME = "ADPTSF40.SYS"
set AFAILOVR_NAME = "AFAILOVR40.DLL"
set ADPTSFDI_NAME = "ADPTSFDI40.DLL"
endif
Debug-Output "Exiting Install Options="$(DRIVERNAME)
EndWait
Begin = +
Debug-Output "Begin ..."
Debug-Output "BeginDriverName="$(DRIVERNAME)
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
Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
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
set from = $(fatal)
set to = $(fatal)
goto $(StartLabel)
installadapter = +
Debug-Output "installadapter ..."
Debug-Output "installadapter DriverName="$(DRIVERNAME)
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
$(ProductVersion)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto end
else
Shell $(UtilityInf), CardExistedDlg
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) != "OK"
set CommonStatus = STATUS_USERCANCEL
goto end
endif
set OldVersionExisted = $(TRUE)
endif
Endif
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
goto installproduct
configureadapter = +
Debug-Output "configureadapter ..."
Ifstr(i) $(KeyProduct) == $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) == $(KeyNull)
Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
Goto fatalregistry
Endif
Endif
Shell $(UtilityInf) FindService, $(KeyProduct)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
Endif
Ifstr(i) $($R0) != NO_ERROR
Goto fatalregistry
endif
set KeyParameters = $($R2)
CloseRegKey $($R1)
Ifstr $(KeyParameters) == $(KeyNull)
set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
goto fatalregistry
endif
set OldVersionExisted = $(TRUE)
set ValueName = ""
set ValueData = ""
set ValueStr = ""
set ValueList = {}
;
; Added for FailOver
;
; Hard-code the ConnectionType to Auto-Detect for Unattended-install
ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
set ConnectionValue = *($(ConnectionList), 1)
goto adapteroptions
endif
;
; Get the Network Adapter Number
;
GetRegValue $(KeyParameters) "AdapterNumber" AdapterNumberData
ifint $(!RegLastError) == 0
set AdapterNumber = *($(AdapterNumberData),4)
else
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL" ,"Unable to get Adapter Number from registry"
set CommonStatus = STATUS_USERCANCEL
goto end
endif
LoadLibrary "Adaptec ADPTSF Driver Disk" $(!STF_WINDOWSSYSPATH)"\"ADPTSFFO.DLL LibHandle
Debug-Output "Invoking EmPCIConfig : AdapterNumber="$(AdapterNumber)
LibraryProcedure DLLResponse $(LibHandle) EmPCIConfig $(AdapterNumber)
FreeLibrary $(LibHandle)
ifstr(i) $(DLLResponse) == 99
set CommonStatus = STATUS_USERCANCEL
goto end
endif
adapteroptions = +
Debug-Output "adapteroptions ..."
set from = adapteroptions
ifstr(i) $(!NTN_InstallMode) == configure
;_DMI begin
;
; SNMPINstallStatus = 0 - means SNMP is installed
; = 1 - NT SNMP is not present
; = 2 - SNMP Agent is configured already
;
set SNMPInstallStatus = "9"
set MibName = "FailoverMib"
set MibFileName = "afailovr.dll"
install "InstallSNMPagent"
ifstr $(SNMPInstallStatus) == "1"
ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
goto successful
endif
Shell "subroutn.inf" SetUpMessage $(!STF_LANGUAGE) NONFATAL "SNMP Service is not installed. To activate SNMP and Adaptec network management features on this system,"+
" install the NT SNMP Service. On the network management station,"+
" use the configure option to configure Server related MIBs."
goto successful
endif
ifstr $(SNMPInstallStatus) == "0"
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", "Configured Failover agent"
endif
;_DMI end
goto successful
endif
;
installproduct =+
Debug-Output "installproduct ..."
Debug-Output "Print Driver Name = "$(DRIVERNAME)
StartWait
set ProductSoftwareImagePath = "\SystemRoot\system32\drivers\"$(DRIVERNAME)
;
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"
install "Install-Hlp"
;
; Added for FailOver
;
install "Install-Dll"
install "Install-Agents"
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
Debug-Output "Installproduct DriverName="$(DRIVERNAME)
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 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),$(NetRuleSoftwareSWBindable)}, +
{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
;----------------------------------
;search for all CFIDs we support
;----------------------------------
set AdapterFound = $(FALSE)
set CFIDList = ^(CFIDS, 1)
ForListDo $(CFIDList)
set CurrCFID = $($)
Debug-Output "ADPTSF: Current CFID="$(CurrCFID)
set-div DeviceID = $(CurrCFID) 65536
Shell $(UtilityInf), GetPCIInformation, $(VendorID) $(DeviceID)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R0) != {}
set AdapterList = $($R0)
set AdapterFound = $(TRUE)
;----------------------------------
;search for CFID based PCI adapters
;----------------------------------
ForListDo $(AdapterList)
set BusNum = *($($),1)
set DeviceNum = *($($),2)
set FunctionNum = *($($),3)
Debug-Output "ADPTSF: BusNum="$(BusNum)" DeviceNum="$(DeviceNum)
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNum), +
$(DeviceNum), $(ProductHardware$(Option)Description), $(ProductHardwareName) "YES"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
endif
ifstr(i) $($R1) != "YES"
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)"] "$(ProductHardware$(Option)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set BusTypeNum = 5
;
; Added AdapterNumber for FailOver
;
set NewValueList = {{AdapterType,$(NoTitle),$(!REG_VT_DWORD),$(Adapter$(Option)Type)},+
{MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
{AdapterNumber,$(NoTitle),$(!REG_VT_DWORD),$(AdapterNumber)},+
{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
{AdapterCFID,$(NoTitle),$(!REG_VT_DWORD),$(CurrCFID)}}
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),$(NetRuleHardware$(Option)Type)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardware$(Option)Class)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(HardNetCardKey)
CloseRegKey $(HardNetRuleKey)
set NewValueList = {{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
{SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(DeviceNum)},+
{FunctionNumber,$(NoTitle),$(!REG_VT_DWORD),$(FunctionNum)}}
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
CloseRegKey $(HardParameterKey)
endif
EndForListDo ;$(AdapterList)
endif ;ifstr(i) $($R0) != {}
EndForListDo ;$(CFIDList)
ifint $(AdapterFound) == $(FALSE)
set Error = $(CANNOT_FIND_ANY_CARD)
set CommonStatus = STATUS_USERCANCEL
goto fatal
endif
ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
goto SkipEmPCIConfig
endif
LoadLibrary "Adaptec ADPTSF Driver Disk" $(!STF_WINDOWSSYSPATH)"\"ADPTSFFO.DLL LibHandle
Debug-Output "Invoking EmPCIGetConnType"
LibraryProcedure DLLResponse $(LibHandle) EmPCIGetConnType
ifstr(i) $(DLLResponse) == 99
set CommonStatus = STATUS_USERCANCEL
FreeLibrary $(LibHandle)
goto abandon
endif
FreeLibrary $(LibHandle)
LoadLibrary "Adaptec ADPTSF Driver Disk" $(!STF_WINDOWSSYSPATH)"\"ADPTSFFO.DLL LibHandle
set AdapterNumber = 0
Debug-Output "Invoking EmPCIConfig : AdapterNumber="$(AdapterNumber)
LibraryProcedure DLLResponse $(LibHandle) EmPCIConfig $(AdapterNumber)
FreeLibrary $(LibHandle)
SkipEmPCIConfig =+
EndWait
;_DMI begin
; DMI Install must be done before SFBMON service is started to avoid race conditions
; in registry updates! - JTJ
Debug-Output "InstallSNMPagent"
set SNMPInstallStatus = "0"
set MibName = "FailoverMib"
set MibFileName = "afailovr.dll"
install "InstallSNMPagent"
ifstr $(SNMPInstallStatus) == "1"
ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
goto install_sfbmon
endif
Shell "subroutn.inf" SetUpMessage $(!STF_LANGUAGE) NONFATAL "SNMP Service is not installed. To activate SNMP and Adaptec network management features on this system,"+
" install the NT SNMP Service. On the network management station,"+
" use the configure option to configure Server related MIBs."
goto install_sfbmon
endif
;_DMI end
install_sfbmon =+
;
; If sfbmon service is already install, skip registry update.
;
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\sfbmon" $(!REG_KEY_QUERY_VALUE) ServicesHandle
ifstr $(ServicesHandle) != $(KeyNull)
Debug-Output "SFBMON service already installed!"
CloseRegKey $(ServicesHandle)
goto successful
endif
;
; Execute sfbmon to install the sfbmon daemon service and to monitor any
; changes to Driver's Linkage Key
;
StartDetachedProcess ExitCode "" "" $(sfbmonEXE)
ifstr $(ExitCode) != "0"
Debug-Output "Cannot start SFBMON service program!"
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL" ,"Cannot start Adaptec SFBMON service program!"
;
; remove the failover backup monitor service
;
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ForbmonHandle
ifstr $(ForbmonHandle) != $(KeyNull)
DeleteRegTree $(ForbmonHandle) "sfbmon"
CloseRegKey $(ForbmonHandle)
endif
goto fatal
endif
goto successful
updateparameters =+
Debug-Output "updateparameters ..."
set HardParameterKey = $($R3)
set NewValueList = {{ConnectionType,$(NoTitle),$(!REG_VT_DWORD),$(ConnectionValue)}}
Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
CloseRegKey $(KeyParameters)
goto successful
bindingadapter =+
Debug-Output "bindingadapter ..."
set Error = "Binding: Sorry, not yet implemented."
goto fatal
removeadapter = +
Debug-Output "removeadapter ..."
;
; Added for FailOver
;
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
;
; Get the Adapter Number for this adapter
;
GetRegValue $(KeyParameters) "AdapterNumber" AdapterNumberData
ifint $(!RegLastError) == 0
set AdapterNumber = *($(AdapterNumberData),4)
else
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL" ,"Unable to get Adapter Number from registry"
set CommonStatus = STATUS_USERCANCEL
goto end
endif
LoadLibrary "Adaptec ADPTSF Driver Disk" $(!STF_WINDOWSSYSPATH)"\"ADPTSFFO.DLL LibHandle
Debug-Output "Invoking EmPCIRemoveLinks : AdapterNumber="$(AdapterNumber)
LibraryProcedure DLLResponse $(LibHandle) EmPCIRemoveLinks $(AdapterNumber)
FreeLibrary $(LibHandle)
;
; Get the reference count for the adapter
;
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\"$(Manufacturer)\$(ProductSoftwareName)"\CurrentVersion" $(!REG_KEY_ALL_ACCESS) RefCountHandle
ifstr $(RefCountHandle) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_MICROSOFT_KEY
Debug-Output "Cannot open Adaptec Key"
goto fatalregistry
endif
GetRegValue $(RefCountHandle) "RefCount" RefCountData
ifint $(!RegLastError) == 0
set RefCount = *($(RefCountData),4)
else
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL" ,"Unable to get Reference count"
endif
;
; Get the inffile associated with this adapter
;
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\"$(Manufacturer)\$(ProductSoftwareName)"\CurrentVersion\NetRules" $(!REG_KEY_ALL_ACCESS) InfNameHandle
ifstr $(InfNameHandle) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_MICROSOFT_KEY
Debug-Output "Cannot open Adaptec Key"
goto fatalregistry
endif
GetRegValue $(InfNameHandle) "InfName" InfNameData
ifint $(!RegLastError) == 0
set InfName = *($(InfNameData),4)
ifint $(RefCount) == 1
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\$(InfName)
endif
endif
CloseRegKey $(InfNameHandle)
Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
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)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
;
; Added for FailOver
;
ifint $(RefCount) == 1
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\drivers\$(DRIVERNAME)
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\ADPTSFFO.DLL
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\ADPTSFFO.HLP
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\ADPTSFFO.CNT
; The following SNMP agent file is used by both the EMPCI and ADPTSF
; drivers. This should not be deleted if either driver is on the
; system. Management has requested that the effort spent on
; dual driver support should be minimized. As a result, the
; the solution to this problem is to leave afailovr.dll on the
; AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\AFAILOVR.DLL
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\SFBMON.EXE
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\ADPTSFDI.DLL
;
; should be LIFO basis
;
set MibName = "DmiMib"
install "RemoveSNMPagent"
set MibName = "FailoverMib"
install "RemoveSNMPagent"
;
; remove the failover backup monitor service
;
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ForbmonHandle
ifstr $(ForbmonHandle) != $(KeyNull)
DeleteRegTree $(ForbmonHandle) "sfbmon"
CloseRegKey $(ForbmonHandle)
endif
endif
goto end
UpgradeSoftware = +
Debug-Output "UpgradeSoftware ..."
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error"
goto ShellCodeError
endif
set !UG_Filename = $($R0)
install "Install-Update"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
goto fatal
endif
SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
CloseRegKey $(KeyProduct)
else
goto fatalregistry
endif
goto end
successful = +
Debug-Output "successful ..."
goto end
abandon = +
Debug-Output "abandon ..."
ForListDo $(OEM_ABANDON_OPTIONS)
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductSoftwareName), $($)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
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)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
goto end
warning = +
Debug-Output "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 = +
Debug-Output "nonfatalinfo ..."
Set CommonStatus = STATUS_USERCANCEL
Set Severity = STATUS
goto nonfatalmsg
nonfatal = +
Debug-Output "nonfatal ..."
Set Severity = NONFATAL
goto nonfatalmsg
nonfatalmsg = +
Debug-Output "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 = +
Debug-Output "fatalregistry ..."
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
fatal = +
Debug-Output "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 = +
Debug-Output "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 = +
Debug-Output "setfailed ..."
set CommonStatus = STATUS_FAILED
Debug-Output "OEM_ABANDON_ON="$(OEM_ABANDON_ON)
ifstr(i) $(OEM_ABANDON_ON) == TRUE
set OEM_ABANDON_ON = FALSE
goto abandon
endif
goto end
end = +
Debug-Output "end ..."
goto term
term = +
Debug-Output "term ..."
Return $(CommonStatus)
[Install-Option]
Debug-Output "[Install-Option] ..."
Debug-Output "SelectedOption="$(Option)
Debug-Output "SelectedDriver="$(DRIVERNAME)
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
Exit
[Install-Hlp]
Debug-Output "[Install-Hlp] ..."
set STF_VITAL = ""
AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
;
; Added for FailOver
;
[Install-DLL]
Debug-Output "[Install-DLL] ..."
set STF_VITAL = ""
AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-Agents]
Debug-Output "[Install-Agents] ..."
set STF_VITAL = ""
AddSectionFilesToCopyList Files-Agent $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[InstallSNMPagent]
Debug-Output "[InstallSNMPagent] ..."
;
; Make an entry under HKEY_LOCAL\System\CurrentControlSet\Services
;
OpenRegKey $(!REG_H_LOCAL) "" $(ServiceKey) $(!REG_KEY_CREATE_SUB_KEY) ServicesHandle
ifstr $(ServicesHandle) == $(KeyNull)
set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
Debug-Output "Cannot find services under CurrentControlSet"
Exit
endif
;
; check if the service SNMP already existing
;
OpenRegKey $(ServicesHandle) "" "SNMP" $(!REG_KEY_CREATE_SUB_KEY) SNMPHandle
ifstr $(SNMPHandle) == $(KeyNull)
set SNMPInstallStatus = "1"
exit
endif
;
; add the value for the ExtensionAgents
;
OpenRegKey $(SNMPHandle) "" "Parameters\ExtensionAgents" $(!REG_KEY_ALL_ACCESS) SNMPExtensionHandle
EnumRegValue $(SNMPExtensionHandle) SNMPExtValueList
ifint $(!RegLastError) != 0
Exit
endif
;
; Look if there is already an entry for SNMP Agent
;
set MaxSNMPIndex = "0"
ForListDo $(SNMPExtValueList)
set CurrentSNMPVal = *($($), 4)
ifstr(i) $(CurrentSNMPVal) == "SOFTWARE\"$(Manufacturer)"\"$(MibName)"\CurrentVersion"
set SNMPInstallStatus = "2"
Exit
endif
;Set index to largest index number read so far.
;This handles string ordering of index numbers (e.g 10 before 2)
ifint *($($), 1) > $(MaxSNMPIndex)
set MaxSNMPIndex = *($($), 1)
endif
EndForListDo
; Add new entry index after the largest one in list
set-add MaxSNMPIndex = $(MaxSNMPIndex), 1
SetRegValue $(SNMPExtensionHandle) {$(MaxSNMPIndex), 0, $(!REG_VT_SZ), "SOFTWARE\"$(Manufacturer)"\"$(MibName)"\CurrentVersion"}
ifint $(!RegLastError) != 0
Shell "subroutn.inf" SetUpMessage $(!STF_LANGUAGE) NONFATAL "SetRegValue failed"
Exit
endif
CloseRegKey $(SNMPExtensionHandle)
CloseRegKey $(SNMPHandle)
CloseRegKey $(ServicesHandle)
;
; Make an entry under HKEY_LOCAL\SOFTWARE\$(Manufacturer)
;
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\"$(Manufacturer) $(!REG_KEY_CREATE_SUB_KEY) SNMPSoftwareHandle
ifstr $(SNMPSoftwareHandle) == $(KeyNull)
Exit
endif
;
; Check if the key $(MibName) is already there
;
OpenRegKey $(SNMPSoftwareHandle) "" $(MibName) $(!REG_KEY_CREATE_SUB_KEY) SNMPAdaptecHandle
ifstr $(SNMPAdaptecHandle) == $(KeyNull)
CreateRegKey $(SNMPSoftwareHandle) {$(MibName), 0, GenericClass} "" $(!REG_KEY_CREATE_SUB_KEY) "" SNMPAdaptecHandle
ifstr $(SNMPAdaptecHandle) == $(KeyNull)
Debug-Output "Cannot create subkey Under Adaptec"
Exit
endif
endif
;
; Check if the key "CurrentVersion" is already there
;
OpenRegKey $(SNMPAdaptecHandle) "" "CurrentVersion" $(!REG_KEY_SET_VALUE) SNMPCurrentHandle
ifstr $(SNMPCurrentHandle) == $(KeyNull)
CreateRegKey $(SNMPAdaptecHandle) {"CurrentVersion", 0, GenericClass} "" $(!REG_KEY_SET_VALUE) "" SNMPCurrentHandle
ifstr $(SNMPCurrentHandle) == $(KeyNull)
Debug-Output "Cannot create subkey Under FailoverMib"
Exit
endif
endif
;
; Set the values
;
SetRegValue $(SNMPCurrentHandle) {"Pathname", 0, $(!REG_VT_EXPAND_SZ), "%SystemRoot%\System32\"$(MibFileName)}
ifint $(!RegLastError) != 0
Debug-Output "Cannot add the name-value pair"
Exit
endif
CloseRegKey $(SNMPCurrentHandle)
CloseRegKey $(SNMPAdaptecHandle)
CloseRegKey $(SNMPSoftwareHandle)
set SNMPInstallStatus = "0"
Exit
[RemoveSNMPagent]
Debug-Output "[RemoveSNMPagent] ..."
;
; Open HKEY_OCAL\System\CurrentControlSet\Services
;
OpenRegKey $(!REG_H_LOCAL) "" $(ServiceKey) $(!REG_KEY_CREATE_SUB_KEY) ServicesHandle
ifstr $(ServicesHandle) == $(KeyNull)
set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
Debug-Output "Cannot find services under CurrentControlSet"
Exit
endif
;
; check if the service SNMP already existing
;
OpenRegKey $(ServicesHandle) "" "SNMP" $(!REG_KEY_CREATE_SUB_KEY) SNMPHandle
ifstr $(SNMPHandle) == $(KeyNull)
exit
endif
;
; Remove the value for the ExtensionAgents
;
OpenRegKey $(SNMPHandle) "" "Parameters\ExtensionAgents" $(!REG_KEY_ALL_ACCESS) SNMPExtensionHandle
EnumRegValue $(SNMPExtensionHandle) SNMPExtValueList
ifint $(!RegLastError) != 0
Exit
endif
;
; Look if there is already an entry for SNMP Agent
; Delete the registry value corresponding to the SNMP Agent
;
ForListDo $(SNMPExtValueList)
set CurrentSNMPVal = *($($), 4)
set CurrentSNMPValName = *($($), 1)
ifstr(i) $(CurrentSNMPVal) == "SOFTWARE\"$(Manufacturer)"\"$(MibName)"\CurrentVersion"
DeleteRegValue $(SNMPExtensionHandle) $(CurrentSNMPValName)
endif
EndForListDo
;
; Remove $(MibName) entry from SOFTWARE/$(Manufacturer)
;
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\"$(Manufacturer) $(!REG_KEY_ALL_ACCESS) ProductHandle
ifstr $(ProductHandle) != $(KeyNull)
DeleteRegTree $(ProductHandle) $(MibName)
endif
Exit
[Install-Update]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
;
; Added for FailOver
;
AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
;_DMI begin
AddSectionFilesToCopyList Files-Agent $(SrcDir) $(!STF_WINDOWSSYSPATH)
;_DMI end
AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
exit
[Source Media Descriptions]
1 = "Drivers for Microsoft Operating Systems"
[ProductType]
STF_PRODUCT = Winnt
;STF_PLATFORM = I386
;STF_PLATFORM = Alpha
;STF_PLATFORM = ppc
;STF_PLATFORM = MIPS
[Files-Inf]
1,oemsetup.inf , SIZE=1000, RENAME=$(!UG_Filename)
[Files-ANA6XXXX]
1,$(DRVPATH)$(DRIVERNAME) , SIZE=999, RENAME=$(DRIVERNAME)
[Files-ANA62011TX]
1,$(DRVPATH)$(DRIVERNAME) , SIZE=999, RENAME=$(DRIVERNAME)
[Files-ANA62022]
1,$(DRVPATH)$(DRIVERNAME) , SIZE=999, RENAME=$(DRIVERNAME)
[Files-ANA62044]
1,$(DRVPATH)$(DRIVERNAME) , SIZE=999, RENAME=$(DRIVERNAME)
[Files-ANA69011TX]
1,$(DRVPATH)$(DRIVERNAME) , SIZE=999, RENAME=$(DRIVERNAME)
[Files-Hlp]
1,$(PATH)ADPTSFFO.HLP , SIZE=999, RENAME=ADPTSFFO.HLP
1,$(PATH)ADPTSFFO.CNT , SIZE=999, RENAME=ADPTSFFO.CNT
;
; Added for FailOver
;
[Files-Dll]
1,$(PATH)ADPTSFFO.DLL , SIZE=120000, RENAME=ADPTSFFO.DLL
1,$(PATH)SFBMON.EXE , SIZE=78000, RENAME=SFBMON.EXE
;_DMI begin
[Files-Agent]
1,$(PATH)$(AFAILOVR_NAME) , SIZE=120000, RENAME=AFAILOVR.DLL
1,$(PATH)$(ADPTSFDI_NAME) , SIZE=120000, RENAME=ADPTSFDI.DLL
;_DMI end
[LanguagesSupported]
ENG
[OptionsTextENG]
ANA6XXXX = "Adaptec DuraLAN Fast Ethernet NIC"
ANA62011TX = "Adaptec ANA-62011/TX Fast Ethernet NIC"
ANA62022 = "Adaptec ANA-62022 Fast Ethernet NIC"
ANA62044 = "Adaptec ANA-62044 Fast Ethernet NIC"
ANA69011TX = "Adaptec ANA-69011/TX Fast Ethernet NIC"
[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:"
ProductSoftwareDescription = "Adaptec DuraLAN Fast Ethernet NIC Driver"
ConnectionList = ^(ConnectionChoices$(Option), 1)
ConnectionValues = ^(ConnectionChoices$(Option), 2)
NoList = ^(NoChoices, 1)
NoValues = ^(NoChoices, 2)
ShellCodeErrorTitle = "Error: "$(Function$(Option)Title)
ShellCodeErrorText = "Shell Code Error."
CANNOT_FIND_ANY_CARD = "Network card is not present in the system"
[DialogConstantsENG]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"
[FileDependentDlgENG]
DlgText = "Choose the proper connection type for the "+
"network adapter. Select [Help] for a detailed "+
"description of the available options."
DlgTemplate = "ADAP_PROTO_COMBO"
DlgType = "Combination"
Caption = $(Function$(Option)Title)
Combo1Label = "&Connection Type:"
Combo1List = $(ConnectionList)
Combo1Out = $(ConnectionValue)
ComboListItemsIn = {Combo1List}
ComboListItemsOut = {Combo1Out}
EditTextLim = ""
CBOptionsGreyed = {}
MinHelpId = 10
MaxHelpId = 30
HelpContext = $(Help$(Option)Id)
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.