;---------------------------------------------------------------------------
; OEMSETUP file for Adaptec DuraLAN Fast Ethernet NIC Driver
;
; Copyright 1994-2001, Adaptec, Inc.
;
; Supported Windows NT versions:
; 3.51 or later
;
; Supported Adaptec PCI adapters:
; AIC6915 based boards - ANA6X0XX, ANA62011/TX, ANA62022,
; ANA62044, ANA69011/TX
; ANA64022, ANA64044
;
;
; 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
ANA64022 ; 2 each 10/100 Mb/s UTP Port 66 MHZ
ANA64044 ; 4 each 10/100 Mb/s UTP Port 66 MHZ
ANA62011LV ; Single 10/100 Mb/s UTP Port
ANA64022LV ; 2 each 10/100 Mb/s UTP Port 66 MHZ
ANA64044LV ; 4 each 10/100 Mb/s UTP Port 66 MHZ
[CFIDS]
AIC6915CFID = 1763020804 ;; 0x69159004; DeviceID=6915; VendorID=9004
[FileConstants]
;---General---
PRODUCT_TYPE = "" ; product type could be standalone=0,failover=1 or port aggregation=2
DRIVERNAME = ""
DRVPATH = ""
HELPPATH = "CommonNT\i386\"
OTHERPATH = "CommonNT\i386\"
GUIDLL = "ADPTSF.DLL"
AFAILOVR_DLL = "AFAILOVR.DLL"
ADPTSFDI_DLL = "ADPTSFDI.DLL"
AFAILOVR_NAME = ""
ADPTSFDI_NAME = ""
BMON_NAME = "SFBMON.EXE"
PERF_DLL = "PERFSTAR.DLL"
ADPT_PM_H = "ADPTSFPM.H"
ADPT_PM_INI = "ADPTSFPM.INI"
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
SoftwareType = "driver"
Exit_Code = 0
bmonEXE = $(!STF_WINDOWSSYSPATH)\$(BMON_NAME)
NetEventDLL = "%SystemRoot%\System32\netevent.dll"
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
Manufacturer = "Adaptec"
ProductMajorVersion = "4"
ProductMinorVersion = "1"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
VendorID = 36868 ;; 9004
HelpFile = "ADPTSF.hlp"
CntFile = "ADPTSF.cnt"
;---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 DuraLAN NIC Configuration"
ProductHardwareANA6XXXXTitle = "Adaptec DuraLAN NIC"
ProductHardwareANA6XXXXDescription = "Adaptec 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 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 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 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 DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA69011TXType = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA69011TXClass = {"ADPTSFAdapter basic"}
AdapterANA69011TXType = 5 ;; PCI board
HelpANA69011TXId = 10
; Single 10.100 Mb/s UTP Port
FunctionANA62011LVTitle = "Adaptec ANA62011LV Configuration"
ProductHardwareANA62011LVTitle = "Adaptec DuraLAN NIC"
ProductHardwareANA62011LVDescription = "Adaptec DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA62011LVType = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA62011LVClass = {"ADPTSFAdapter basic"}
AdapterANA62011TXType = 5 ;; PCI board
HelpANA62011TXId = 10
; 2 each 10/100 Mb/s UTP Port 66 MHz
FunctionANA64022Title = "Adaptec ANA64022 Configuration"
ProductHardwareANA64022Title = "Adaptec DuraLAN NIC"
ProductHardwareANA64022Description = "Adaptec DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA64022Type = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA64022Class = {"ADPTSFAdapter basic"}
AdapterANA62022Type = 5 ;; PCI board
HelpANA62022Id = 10
; 4 each 10/100 Mb/s UTP Port 66 MHz
FunctionANA64044Title = "Adaptec ANA64044 Configuration"
ProductHardwareANA64044Title = "Adaptec DuraLAN NIC"
ProductHardwareANA64044Description = "Adaptec DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA64044Type = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA64044Class = {"ADPTSFAdapter basic"}
AdapterANA62044Type = 5 ;; PCI board
HelpANA62044Id = 10
; 2 each 10/100 Mb/s UTP Port 66 MHz
FunctionANA64022LVTitle = "Adaptec ANA64022LV Configuration"
ProductHardwareANA64022LVTitle = "Adaptec DuraLAN NIC"
ProductHardwareANA64022LVDescription = "Adaptec DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA64022LVType = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA64022LVClass = {"ADPTSFAdapter basic"}
AdapterANA62022Type = 5 ;; PCI board
HelpANA62022Id = 10
; 4 each 10/100 Mb/s UTP Port 66 MHz
FunctionANA64044LVTitle = "Adaptec ANA64044LV Configuration"
ProductHardwareANA64044LVTitle = "Adaptec DuraLAN NIC"
ProductHardwareANA64044LVDescription = "Adaptec DuraLAN Fast Ethernet NIC"
NetRuleHardwareANA64044LVType = "ADPTSF ADPTSFAdapter"
NetRuleHardwareANA64044LVClass = {"ADPTSFAdapter basic"}
AdapterANA62044Type = 5 ;; PCI board
HelpANA62044Id = 10
NetRuleHardwareBindForm = " yes yes container"
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
ServiceKey = "SYSTEM\CurrentControlSet\Services"
[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 return_options
endif
set PlatformList = ^(PlatformsSupported, 1)
Ifcontains(i) $($1) in $(PlatformList)
goto return_options
else
set Status = STATUS_NOTSUPPORTED
goto finish_ReturnOptions
endif
else
set Status = STATUS_NOLANGUAGE
goto finish_ReturnOptions
endif
return_options = +
Debug-Output "return_options ..."
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
Debug-Output "InstallOption ..."
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
Shell "subroutn.inf" SetUpMessage $(!STF_LANGUAGE) NONFATAL " No longer support Win NT 3.51 or earlier version"
goto end
;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 = + ; New Installation
Debug-Output "installadapter ..."
Debug-Output "installadapter DriverName="$(DRIVERNAME)
install "Install-Dll"
Debug-Output "Call Install-DLL Section ..."
LoadLibrary "Adaptec ADPTSF Driver Disk" $(!STF_WINDOWSSYSPATH)"\"$(GUIDLL) LibHandle
Debug-Output "Invoking SelectADPTSF"
set AdapterNumber = 0
LibraryProcedure DLLResponse $(LibHandle) SelectADPTSF $(AdapterNumber)
ifstr(i) $(DLLResponse) == 99
set CommonStatus = STATUS_USERCANCEL
FreeLibrary $(LibHandle)
goto abandon
else
set PRODUCT_TYPE = $(DLLResponse)
endif
FreeLibrary $(LibHandle)
Debug-Output "Registry value for ProductType="$(PRODUCT_TYPE)
ifstr(i) $(PRODUCT_TYPE) == "0"
set ProductHardwareANA6XXXXDescription = "Adaptec Standard DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62011TXDescription = "Adaptec Standard DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62022Description = "Adaptec Standard DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62044Description = "Adaptec Standard DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64022Description = "Adaptec Standard DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64044Description = "Adaptec Standard DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64044LVDescription = "Adaptec Standard DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64022LVDescription = "Adaptec Standard DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62011LVDescription = "Adaptec Standard DuraLAN Fast Ethernet Driver"
set DRVPATH = "Windows\i386\"
Else-Ifstr(i) $(PRODUCT_TYPE) == "1"
set ProductHardwareANA6XXXXDescription = "Adaptec Failover DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62011TXDescription = "Adaptec Failover DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62022Description = "Adaptec Failover DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62044Description = "Adaptec Failover DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64022Description = "Adaptec Failover DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64044Description = "Adaptec Failover DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64044LVDescription = "Adaptec Failover DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64022LVDescription = "Adaptec Failover DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62011LVDescription = "Adaptec Failover DuraLAN Fast Ethernet Driver"
set DRVPATH = "Windows\i386\" ; Driver path
Else-Ifstr(i) $(PRODUCT_TYPE) == "2"
set ProductHardwareANA6XXXXDescription = "Adaptec Port Aggregation DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62011TXDescription = "Adaptec Port Aggregation DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62022Description = "Adaptec Port Aggregation DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62044Description = "Adaptec Port Aggregation DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64022Description = "Adaptec Port Aggregation DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64044Description = "Adaptec Port Aggregation DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64044LVDescription = "Adaptec Port Aggregation DuraLAN Fast Ethernet Driver"
set ProductHardwareANA64022LVDescription = "Adaptec Port Aggregation DuraLAN Fast Ethernet Driver"
set ProductHardwareANA62011LVDescription = "Adaptec Port Aggregation DuraLAN Fast Ethernet Driver"
set DRVPATH = "Windows\i386\PortAgg\" ; Driver path
endif
ifstr(i) $(PRODUCT_TYPE) == "1"
install "Install-Agents"
Else-Ifstr(i) $(PRODUCT_TYPE) == "2"
install "Install-Agents"
install "Install-PerfMon"
endif
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 ..."
;/* Read ProductType number from the registry
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\"$(Manufacturer)\$(ProductSoftwareName)"\CurrentVersion" $(!REG_KEY_ALL_ACCESS) ProductTypeHandle
ifstr $(ProductTypeHandle) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_MICROSOFT_KEY
Debug-Output "Cannot open Adaptec Key"
goto fatalregistry
endif
GetRegValue $(ProductTypeHandle) "ProductType" ProductTypeData
ifint $(!RegLastError) == 0
set PRODUCT_TYPE = *($(ProductTypeData),4)
else
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL" ,"Unable to get Product Type"
set CommonStatus = STATUS_USERCANCEL
goto end
endif
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 = {}
;
; 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
ifstr(i) $(PRODUCT_TYPE) == "0"
goto StandAlone
else
goto ConfigFO_PA
endif
goto end
;
StandAlone =+
Debug-Output "Activate Stand Alone GUI"
Debug-Output "Before Invoking SetCurPortsConnType : AdapterNumber="$(AdapterNumber)
LoadLibrary "Adaptec ADPTSF Driver Disk" $(!STF_WINDOWSSYSPATH)"\"$(GUIDLL) LibHandle
set AdapterNumber = 0
Debug-Output "Invoking SetCurPortsConnType : AdapterNumber="$(AdapterNumber)
LibraryProcedure DLLResponse $(LibHandle) SetCurPortsConnType $(AdapterNumber)
FreeLibrary $(LibHandle)
ifstr(i) $(DLLResponse) == 99
set CommonStatus = STATUS_USERCANCEL
endif
goto end
;
ConfigFO_PA =+
Debug-Output "Activate Failover GUI"
LoadLibrary "Adaptec ADPTSF Driver Disk" $(!STF_WINDOWSSYSPATH)"\"$(GUIDLL) 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
ifstr(i) $(!NTN_InstallMode) == configure
; 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
goto successful
endif
goto end
;
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"
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)},+
{ProductType,$(NoTitle),$(!REG_VT_SZ),$(PRODUCT_TYPE)},+
{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
ifstr(i) $(PRODUCT_TYPE) == "0" ; StandAlone
set NewValueList = {{AdapterType,$(NoTitle),$(!REG_VT_DWORD),$(Adapter$(Option)Type)},+
{MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
{AdapterCFID,$(NoTitle),$(!REG_VT_DWORD),$(CurrCFID)}}
Else-Ifstr(i) $(PRODUCT_TYPE) == "1" ; 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)}}
Else-Ifstr(i) $(PRODUCT_TYPE) == "2" ; Loadbalancing
set NewValueList = {{AdapterType,$(NoTitle),$(!REG_VT_DWORD),$(Adapter$(Option)Type)},+
{Update_PRT_Timeout,$(NoTitle),$(!REG_VT_DWORD),50},+
{NumOfFailsAllowed,$(NoTitle),$(!REG_VT_DWORD),10},+
{NumOfLinkCheck,$(NoTitle),$(!REG_VT_DWORD),30},+
{MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
{AdapterNumber,$(NoTitle),$(!REG_VT_DWORD),$(AdapterNumber)},+
{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
{AdapterCFID,$(NoTitle),$(!REG_VT_DWORD),$(CurrCFID)}}
endif
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
; set NewValueList = {{ConnectionType,$(NoTitle),$(!REG_VT_DWORD),$(ConnectionValue)}}
; 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
Debug-Output "Invoking EmPCIGetConnType"
LoadLibrary "Adaptec ADPTSF Driver Disk" $(!STF_WINDOWSSYSPATH)"\"$(GUIDLL) LibHandle
set AdapterNumber = 0
LibraryProcedure DLLResponse $(LibHandle) EmPCIGetConnType $(AdapterNumber)
ifstr(i) $(DLLResponse) == 99
set CommonStatus = STATUS_USERCANCEL
FreeLibrary $(LibHandle)
goto abandon
endif
FreeLibrary $(LibHandle)
ifstr(i) $(PRODUCT_TYPE) == "0" ; Standalone
EndWait
goto successful ; Standalone is finished
endif
LoadLibrary "Adaptec ADPTSF Driver Disk" $(!STF_WINDOWSSYSPATH)"\"$(GUIDLL) LibHandle
set AdapterNumber = 0
Debug-Output "Invoking EmPCIConfig : AdapterNumber="$(AdapterNumber)
LibraryProcedure DLLResponse $(LibHandle) EmPCIConfig $(AdapterNumber)
FreeLibrary $(LibHandle)
EndWait
Debug-Output "InstallSNMPagent"
set SNMPInstallStatus = "0"
set MibName = "FailoverMib"
set MibFileName = "afailovr.dll"
install "InstallSNMPagent"
ifstr $(SNMPInstallStatus) == "1"
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
install_sfbmon =+
Debug-Output "Invoking 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 "" "" $(bmonEXE)
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
bindingadapter =+
Debug-Output "bindingadapter ..."
set Error = "Binding: Sorry, not yet implemented."
goto fatal
Removeadapter = +
Debug-Output "Removeadapter ..."
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)"\"$(GUIDLL) 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
ifint $(RefCount) == 1
ifstr(i) $(PRODUCT_TYPE) == "2" ; Port Agg
LoadLibrary "" $(!STF_WINDOWSSYSPATH)"\"$(PERF_DLL) LibHandle
LibraryProcedure DLLResponse $(LibHandle) RemoveAdptsfPerformance
FreeLibrary $(LibHandle)
endif
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\drivers\$(DRIVERNAME)
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\$(GUIDLL)
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\$(HelpFile)
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\$(CntFile)
ifstr(i) $(PRODUCT_TYPE) != "0" ; Only if failover=1 or port agg=2
; 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)\$(BMON_NAME)
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\$(ADPTSFDI_DLL)
ifstr(i) $(PRODUCT_TYPE) == "2" ; Port Agg
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\$(PERF_DLL)
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\$(ADPT_PM_H)
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\$(ADPT_PM_INI)
endif
;
; 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 ; if ProductType=1 or =2
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 ..."
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
[Install-DLL]
Debug-Output "[Install-DLL] ..."
set STF_VITAL = ""
AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-PerfMon]
Debug-Output "[Install-PerfMon] ..."
set STF_VITAL = ""
AddSectionFilesToCopyList Files-PerfMon $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
LoadLibrary "" $(!STF_WINDOWSSYSPATH)"\"$(PERF_DLL) LibHandle
LibraryProcedure DLLResponse $(LibHandle) InstallAdptsfPerformance
FreeLibrary $(LibHandle)
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
Debug-Output "Open Reg Key for ServiceHandle"
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
Debug-Output "Check if SNMP service already exist"
ifstr $(SNMPHandle) == $(KeyNull)
set SNMPInstallStatus = "1"
exit
endif
;
; add the value for the ExtensionAgents
;
OpenRegKey $(SNMPHandle) "" "Parameters\ExtensionAgents" $(!REG_KEY_ALL_ACCESS) SNMPExtensionHandle
Debug-Output "Add value to ExtensionAgents"
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
Debug-Output "Check if the key MibName is already there"
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
Debug-Output "Check if the key CurrentVersion is already there"
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
Debug-Output "Close SNMP Keys"
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"
;/* Read ProductType number from the registry
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\"$(Manufacturer)\$(ProductSoftwareName)"\CurrentVersion" $(!REG_KEY_ALL_ACCESS) ProductTypeHandle
ifstr $(ProductTypeHandle) == $(KeyNull)
set RegistryErrorIndex = UNABLE_OPEN_MICROSOFT_KEY
Debug-Output "Cannot open Adaptec Key"
goto fatalregistry
endif
GetRegValue $(ProductTypeHandle) "ProductType" ProductTypeData
ifint $(!RegLastError) == 0
set PRODUCT_TYPE = *($(ProductTypeData),4)
else
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL" ,"Unable to get Product Type"
set CommonStatus = STATUS_USERCANCEL
goto end
endif
AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
ifstr(i) $(PRODUCT_TYPE) != "0"
AddSectionFilesToCopyList Files-Agent $(SrcDir) $(!STF_WINDOWSSYSPATH)
ifstr(i) $(PRODUCT_TYPE) == "2"
AddSectionFilesToCopyList Files-PerfMon $(SrcDir) $(!STF_WINDOWSSYSPATH)
endif
endif
ifstr(i) $(PRODUCT_TYPE) == "2"
AddSectionFilesToCopyList Files-$(Option) $(SrcDir)Windows\i386\PortAgg $(!STF_WINDOWSSYSPATH)\drivers
else
AddSectionFilesToCopyList Files-$(Option) $(SrcDir)Windows\i386 $(!STF_WINDOWSSYSPATH)\drivers
endif
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-ANA64022]
1,$(DRVPATH)$(DRIVERNAME) , SIZE=999, RENAME=$(DRIVERNAME)
[Files-ANA64044]
1,$(DRVPATH)$(DRIVERNAME) , SIZE=999, RENAME=$(DRIVERNAME)
[Files-ANA64044LV]
1,$(DRVPATH)$(DRIVERNAME) , SIZE=999, RENAME=$(DRIVERNAME)
[Files-ANA64022LV]
1,$(DRVPATH)$(DRIVERNAME) , SIZE=999, RENAME=$(DRIVERNAME)
[Files-ANA62011LV]
1,$(DRVPATH)$(DRIVERNAME) , SIZE=999, RENAME=$(DRIVERNAME)
[Files-Hlp]
1,$(HELPPATH)$(HelpFile) , SIZE=999, RENAME=$(HelpFile)
1,$(HELPPATH)$(CntFile) , SIZE=999, RENAME=$(CntFile)
[Files-Dll]
1,$(OTHERPATH)$(GUIDLL) , SIZE=120000, RENAME=$(GUIDLL)
[Files-PerfMon]
1,$(OTHERPATH)$(PERF_DLL) , SIZE=120000, RENAME=$(PERF_DLL)
1,$(OTHERPATH)$(ADPT_PM_H) , SIZE=120000, RENAME=$(ADPT_PM_H)
1,$(OTHERPATH)$(ADPT_PM_INI) , SIZE=120000, RENAME=$(ADPT_PM_INI)
[Files-Agent]
1,$(OTHERPATH)$(AFAILOVR_NAME) , SIZE=120000, RENAME=$(AFAILOVR_DLL)
1,$(OTHERPATH)$(ADPTSFDI_NAME) , SIZE=120000, RENAME=$(ADPTSFDI_DLL)
1,$(OTHERPATH)$(BMON_NAME) , SIZE=78000, RENAME=$(BMON_NAME)
[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"
ANA64022 = "Adaptec ANA-64022 Fast Ethernet NIC 66MHz"
ANA64044 = "Adaptec ANA-64044 Fast Ethernet NIC 66MHz"
ANA62011LV = "Adaptec ANA-62011LV Fast Ethernet NIC"
ANA64022LV = "Adaptec ANA-64022LV Fast Ethernet NIC 66MHz"
ANA64044LV = "Adaptec ANA-64044LV Fast Ethernet NIC 66MHz"
[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.