;------------------------------------------------------------------------- ; Modification History ;------------------------------------------------------------------------- ; 21 jul 95 shiva First version ; ; 25 Oct 95 shiva Auto configuration option added ; ; Configuration using dll ; ; 31 Oct 95 shiva DependOnService bug fixed ; ; 18 Dec 95 shiva default mtu size changed to 1516 ; ; 19 Dec 95 shiva MTU size and the LAN type configured from ; the DLL ; ; 10 Jan 96 shiva Not copying msvcrt20.dll ; ; 15 Mar 96 shiva Deleting files using DeleteList ; ; 13 May 96 shiva Modified for Miniport driver interface ; ; 3 July 96 shiva Unable to copy 'adptalan.dll' to SystemRoot ; directory during NT install time. Loading ; the dll from the Installation media. ; ; 11 July 96 shiva Not allowing the user to install the same ; ELAN twice ; ; Added 'GetBusTypeDialog' for getting the ; Bus and Bus type information ; [Identification] OptionType = NetAdapter [PlatformsSupported] PCI [Options] ALANE0 ALANE1 ALANE2 ALANE3 [FileConstants] ; ; Parameters for ELAN ; PortIndex = "0" ;/* must be 0 - 2 */ MTUSize = "1516" ELANType = "802.3" ServerType = "lecs" UNIversion = "3.0" ServerAddress = "47.00.79.00.00.00.00.00.00.00.00.00.00.00.a0.3e.00.00.01.00" PCR = "0" LANname = "" BusInterfaceType = 5 BusNumber = 0 ProductSoftwareALANEDescription = "Adaptec LANE Driver" ProductHardwareALANEDescription = "Adaptec LANE Driver" ProductSoftwareALANETitle = "ALANE Driver" ProductHardwareALANETitle = "Adaptec LANE Adapter (ELAN " ParamInf = "NCPARAM.INF" UtilityInf = "UTILITY.INF" subroutineinf = "SUBROUTN.INF" SoftwareType = "driver" Exit_Code = 0 NetEventDLL = "%SystemRoot%\System32\netevent.dll" IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll" EthernetCards = { ALANE0,ALANE1,ALANE2,ALANE3 } NetCardDescription = Adaptec ALANE Adapter (ELAN1) NetCardInstData = 591737890 Manufacturer = "Microsoft" ProductMajorVersion = "1" ProductMinorVersion = "1" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) ProductSoftwareName = "alane" ProductSoftwareImagePath = "%SystemRoot%\System32\drivers\alane.sys" NetRuleSoftwareType = "alaneSys ndisDriver alaneDriver" NetRuleSoftwareUse = $(SoftwareType) NetRuleSoftwareBindForm = { " ""alaneDriver"" yes no container " } NetRuleSoftwareClass = { "alaneDriver basic" } NetRuleSoftwareBindable = { "alaneDriver alaneAdapter non exclusive 100" } ProductHardwareName = "alane" NetRuleHardwareType = "alane alaneAdapter" NetRuleHardwareBindForm = " yes yes container " NetRuleHardwareClass = { "alaneAdapter basic" } ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)$(ProductHardwareName)"\Parameters" SNMPService = "System\CurrentControlSet\Services" SNMPSoftware = "SOFTWARE\Microsoft" InstallDirectory = $(!STF_NTPATH)\ADPTAATM ConfigDirectory = $(InstallDirectory)\CONFIG [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 = + set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL finish_ReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) [InstallOption] 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 Debug-Output "OEMNADWD.INF: STF_CWDIR is: "$(!STF_CWDIR) Debug-Output "OEMNADWD.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE) set-subst LF = "\n" read-syms GeneralConstants read-syms FileConstants read-syms DialogConstantsENG ifstr(i) $(!NTN_Origination) == "NCPA" set Continue = $(OK) endif read-syms FileConstantsENG detect date set-title $(Function$(Option)Title) set to = Begin set from = Begin set CommonStatus = STATUS_SUCCESSFUL EndWait Begin = + set ActivateDetection = FALSE Ifstr(i) $(!NTN_InstallMode) == deinstall set StartLabel = removeadapter else-Ifstr(i) $(!NTN_InstallMode) == Update set StartLabel = UpgradeSoftware else-Ifstr(i) $(!NTN_InstallMode) == bind set StartLabel = bindingadapter else-Ifstr(i) $(!NTN_InstallMode) == configure set CommonStatus = STATUS_REBOOT set ActivateDetection = TRUE set StartLabel = configureadapter Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) Debug-Output "Cannot configure the Adaptec ATM driver software." Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error: cannot get an error string." goto ShellCodeError endif set Error = $($R0) set from = end set to = end goto nonfatalinfo endif else Debug-Output "Adaptec: PrepareDetection start" Shell "" PrepareDetectionDll "AdaptecNCDET.DLL" Ifstr(i) $($R0) == STATUS_SUCCESSFUL ifstr(i) $(DoCopy) == "YES" Install Install-Detection-Dll endif Shell "NCPARAM.INF" Param_ControlDetection DTEND Shell "NCPARAM.INF" Param_ControlDetection DTSTART Endif Debug-Output "Adaptec: PrepareDetection end" set StartLabel = installadapter set OEM_ABANDON_OPTIONS = {} set OEM_ABANDON_SOFTWARE = FALSE set OEM_ABANDON_ON = TRUE set ActivateDetection = TRUE endif Debug-Output "OEMNADWD.INF: ==================================================" Debug-Output "OEMNADWD.INF: STF_CWDIR is: "$(!STF_CWDIR) Debug-Output "OEMNADWD.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE) Debug-Output "OEMNADWD.INF: Option is: "$(Option) Debug-Output "OEMNADWD.INF: !STF_NCDETECT is: "$(!STF_NCDETECT) Debug-Output "OEMNADWD.INF: !STF_NCOPTION is: "$(!STF_NCOPTION) Debug-Output "OEMNADWD.INF: !STF_NCDETCARD is: "$(!STF_NCDETCARD) Debug-Output "OEMNADWD.INF: !STF_NCDETINFO is: "$(!STF_NCDETINFO) Debug-Output "OEMNADWD.INF: ==================================================" Set DetectedCard = FALSE Goto skipdetection Ifstr(i) $(ActivateDetection) != TRUE Goto skipdetection Endif ; New piece of code starts set-hextodec VendorId = 9004 ;36868 ; 9004h set-hextodec DeviceId = 5900 ;22784 ; 5900h Shell $(UtilityInf), GetPCIInformation, $(VendorId) $(DeviceId) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto fataldetect endif ifstr(i) $($R0) != {} set DetectedCard = TRUE Debug-Output "OEMNADWD.INF: Setting DetectedCard to TRUE" else goto fataldetect endif skipdetection =+ goto $(StartLabel) installadapter = + ; Start registering OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) CloseRegKey $(KeyProduct) ifstr(i) !(NTN_RegBase) == $(ProductKeyName) Shell $(UtilityInf), VerExistedDlg, $(ProductSoftware$(Option)Title),+ $(ProductVersion) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error: cannot get an error string." goto ShellCodeError endif goto end else Shell $(UtilityInf), CardExistedDlg ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error: cannot get an error string." goto ShellCodeError endif ifstr(i) $($R1) != "OK" Set CommonStatus = STATUS_USERCANCEL goto end endif set OldVersionExisted = $(TRUE) endif endif ; ; if we already have a card , then let us ask for the src directory ; from the user ; ifint $(OldVersionExisted) == $(FALSE) ifstr(i) $(!NTN_InstallMode) == "install" ifstr(i) $(DoCopy) == "YES" Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES Ifint $(ShellCode) != $(!SHELL_CODE_OK) Goto ShellCodeError Else-Ifstr(i) $($R0) == STATUS_FAILED Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif Set Error = $($R0) Goto fatal Else-Ifstr(i) $($R0) == STATUS_USERCANCEL Goto successful Endif Set SrcDir = $($R1) endif endif endif ; ; install the DLLs ; install "Install-DLLs" ; ; set the virtual elan number ; Ifstr $(Option) == "ALANE0" set ELANNumber = 0 endif Ifstr $(Option) == "ALANE1" set ELANNumber = 1 endif Ifstr $(Option) == "ALANE2" set ELANNumber = 2 endif Ifstr $(Option) == "ALANE3" set ELANNumber = 3 endif ; ; load the dll for configuration ; LoadLibrary "Setup Disk #1" $(SrcDir)\adptalan.dll LibHandle ; ; check if the ELAN is already installed ; LibraryProcedure DLLResponse $(LibHandle) AlanCheckElanInstallStatus $(ELANNumber) $(InstallDirectory) ifstr(i) $(DLLResponse) == 0 set CommonStatus = STATUS_USERCANCEL FreeLibrary $(LibHandle) Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL" ,"ELAN "$(ELANNumber)" already installed. Cannot install the same ELAN twice" goto end endif ; ; call the funtion to display the configuration dll and also get the ; autostart option ; LibraryProcedure DLLResponse $(LibHandle) AlanConfigAlan $(ELANNumber) $(InstallDirectory) ; ; check if the user pressed CANCEL ; ifstr(i) $(DLLResponse) == 0 set CommonStatus = STATUS_USERCANCEL FreeLibrary $(LibHandle) goto end endif LibraryProcedure MTUSize $(LibHandle) AlanGetMTUSize LibraryProcedure ELANType $(LibHandle) AlanGetLANType LibraryProcedure ServerType $(LibHandle) AlanGetServerType LibraryProcedure UNIversion $(LibHandle) AlanGetUNIversion LibraryProcedure ServerAddress $(LibHandle) AlanGetServerAddress LibraryProcedure PCR $(LibHandle) AlanGetPCR LibraryProcedure LANname $(LibHandle) AlanGetLANname FreeLibrary $(LibHandle) Ifstr(i) $(DetectedCard) != TRUE Goto adaptersetup Endif StartWait Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD) EndWait Ifstr(i) $($R0) != STATUS_SUCCESSFUL Goto adaptersetup Endif Set DetectedParams = $($R1) Debug-Output "OEMNADWD.INF: Calling Param_SetDefaults to merge detected params" Shell $(ParamInf) Param_SetDefaults $(DetectedParams) goto adapteroptions configureadapter = + Ifstr $(KeyProduct) == $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) == $(KeyNull) set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE Debug-Output "Cannot find component product key" goto fatalregistry Endif Endif 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 Vitual lan number for this adapter ; GetRegValue $(KeyParameters) "AlaneInterfaceNum" ELANNumberData ifint $(!RegLastError) == 0 set ELANNumber = *($(ELANNumberData),4) else Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL" ,"Unable to get AlaneInterfaceNum from registry" set CommonStatus = STATUS_USERCANCEL goto end endif LoadLibrary "Setup Disk #1" $(!STF_WINDOWSSYSPATH)\adptalan.dll LibHandle LibraryProcedure DLLResponse $(LibHandle) AlanConfigAlan $(ELANNumber) $(InstallDirectory) ifstr(i) $(DLLResponse) == 0 set CommonStatus = STATUS_USERCANCEL FreeLibrary $(LibHandle) goto end endif LibraryProcedure MTUSize $(LibHandle) AlanGetMTUSize LibraryProcedure ELANType $(LibHandle) AlanGetLANType LibraryProcedure ServerType $(LibHandle) AlanGetServerType LibraryProcedure UNIversion $(LibHandle) AlanGetUNIversion LibraryProcedure ServerAddress $(LibHandle) AlanGetServerAddress LibraryProcedure PCR $(LibHandle) AlanGetPCR LibraryProcedure LANname $(LibHandle) AlanGetLANname FreeLibrary $(LibHandle) set OldVersionExisted = $(TRUE ) set ValueName = "" set ValueData = "" set ValueStr = "" set ValueList = {} goto adaptersetup adaptersetup =+ Ifstr(i) $(DetectedCard) == TRUE Ifstr(i) $(!STF_INSTALL_MODE) != CUSTOM Goto adapterverify Endif Endif goto adapteroptions adapteroptions = + set from = adapteroptions ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ifstr(i) $(!AutoNetInterfaceType) != "" set BusInterfaceType = $(!AutoNetInterfaceType) else set BusInterfaceType = 1 endif ifstr(i) $(!AutoNetBusNumber) != "" set BusNumber = $(!AutoNetBusNumber) else set BusNumber = 0 endif goto adapterverify endif ifstr(i) $(!STF_NCDETINFO) == {} set BusInterfaceType = 5 Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardware$(Option)Description) $(BusInterfaceType) $(BusNumber) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error." goto ShellCodeError endif set BusInterfaceType = $($R1) set BusNumber = $($R2) else set BusInterfaceType = *($(!STF_NCDETINFO),5) set BusNumber = *($(!STF_NCDETINFO),6) endif adapterverify =+ Ifstr(i) $(DetectedCard) != TRUE Goto skipoptions Endif Debug-Output "OEMNADWD.INF: Calling Param_VerifyCard" Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD) Ifstr(i) $($R0) == STATUS_SUCCESSFUL Debug-Output "OEMNADWD.INF: Param_VerifyCard succeeded" Goto skipoptions Endif Set from = adapteroptions Set to = skipoptions Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error: cannot get an error string." goto ShellCodeError endif set Error = $($R0) Goto Warning skipoptions = + ifint $(OldVersionExisted) == $(TRUE) ifstr(i) $(!NTN_InstallMode) == configure goto writeparameters endif endif StartWait ifint $(OldVersionExisted) == $(FALSE) ifstr(i) $(!NTN_InstallMode) == "install" Ifstr(i) $(DoCopy) == "YES" ; Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES ; Ifint $($ShellCode) != $(!SHELL_CODE_OK) ; Goto ShellCodeError ; Else-Ifstr(i) $($R0) == STATUS_FAILED ; Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto ShellCodeError ; endif ; set Error = $($R0) ; Goto fatal ; Else-Ifstr(i) $($R0) == STATUS_USERCANCEL ; Goto successful ; Endif ; Set SrcDir = $($R1) Endif install "Install-Option" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal endif endif Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), + $(ProductSoftwareName), + $(ProductSoftwareALANETitle), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath), "kernel", "NDIS", {"atmo"}, "",+ $(NetEventDLL) Set OEM_ABANDON_SOFTWARE = TRUE ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "Registry error: add software components" 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_SZ),$(ProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),"ALANE Driver" },+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareALANEDescription)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error." goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "Resgistry error: add value list." 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_MULTI_SZ),$(NetRuleSoftwareBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, + {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error." goto ShellCodeError endif set RegistryErrorIndex = $($R0) CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "Resgitry error: add value list." goto fatalregistry endif endif Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName) ifint $($R4) != -1 Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4)) endif ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Cannot add hardware component" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "Registry error: add hardware component" Debug-Output $(RegistryErrorIndex) CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) goto fatalregistry endif set KeyParameters = $($R3) set KeyAdapterRules = $($R2) set AdapterNumber = $($R4) set LaneNumber = "0" set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+ {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareALANETitle)$(ELANNumber)")"},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareALANEDescription)},+ {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+ {InstallData,$(NoTitle),$(!REG_VT_DWORD), $(NetCardInstData))}, + {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif CloseRegKey $($R1) set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)"""" set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm) set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+ {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error." goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "Resgitry error: add value list." CloseRegKey $(KeyParameters) CloseRegKey $(KeyAdapterRules) goto fatalregistry endif CloseRegKey $(KeyAdapterRules) goto writeparameters writeparameters = + IfContains $(Option) in $(EthernetCards) set CardMediaType = 1 set NewValueList = {+ {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+ {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+ {PortIndex,$(NoTitle),$(!REG_VT_SZ),$(PortIndex)},+ {ELANType,$(NoTitle),$(!REG_VT_SZ),$(ELANType)},+ {AlaneInterfaceNum,$(NoTitle),$(!REG_VT_SZ),$(ELANNumber)},+ {MTUSize,$(NoTitle),$(!REG_VT_SZ),$(MTUSize)},+ {ServerType,$(NoTitle),$(!REG_VT_SZ),$(ServerType)},+ {UNIversion,$(NoTitle),$(!REG_VT_SZ),$(UNIversion)},+ {ServerAddress,$(NoTitle),$(!REG_VT_SZ),$(ServerAddress)},+ {PCR,$(NoTitle),$(!REG_VT_SZ),$(PCR)},+ {LANname,$(NoTitle),$(!REG_VT_SZ),$(LANname)},+ } Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList) ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters) endif ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error." goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR Debug-Output "Registry error: Add value list" CloseRegKey $(KeyParameters) goto fatalregistry endif endif CloseRegKey $(KeyParameters) EndWait goto successful bindingadapter =+ set Error = "Binding: Sorry, not yet implemented." goto fatal 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 Vitual lan number for this adapter ; GetRegValue $(KeyParameters) "AlaneInterfaceNum" ELANNumberData ifint $(!RegLastError) == 0 set ELANNumber = *($(ELANNumberData),4) else Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL" ,"Unable to get AlaneInterfaceNum from registry" set CommonStatus = STATUS_USERCANCEL goto end endif ; ; Get the reference count for the adapter ; OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\alane\CurrentVersion" $(!REG_KEY_ALL_ACCESS) RefCountHandle ifstr $(RefCountHandle) == $(KeyNull) set RegistryErrorIndex = UNABLE_OPEN_MICROSOFT_KEY Debug-Output "Cannot open Microsoft 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\Microsoft\alane\CurrentVersion\NetRules" $(!REG_KEY_ALL_ACCESS) InfNameHandle ifstr $(InfNameHandle) == $(KeyNull) set RegistryErrorIndex = UNABLE_OPEN_MICROSOFT_KEY Debug-Output "Cannot open Microsoft 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) Debug-Output "ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif else Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $(!NTN_RegBase) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif endif ; Start Cleaning Up ifint $(RefCount) == 1 AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\drivers\alane.sys AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\adptalan.dll endif AddFileToDeleteList $(!STF_WINDOWSSYSPATH)\ADPTAATM\CONFIG\ALANE$(ELANNumber).db goto end UpgradeSoftware = + OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) 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 = + goto end abandon = + ForListDo $(OEM_ABANDON_OPTIONS) Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $($) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif EndForListDo Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), FALSE ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif endif goto end warning = + 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 = + Set CommonStatus = STATUS_USERCANCEL Set Severity = STATUS goto nonfatalmsg nonfatal = + Set Severity = NONFATAL goto nonfatalmsg nonfatalmsg = + ifstr(i) $(Error) == "" Set Severity = NONFATAL Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) endif Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R1) == "OK" goto $(from) else goto "end" endif fatalregistry = + Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal fataldetect = + Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error: cannot get an error string." goto ShellCodeError endif set Error = $($R0) Goto fatal fatal = + 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 = + 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 = + set CommonStatus = STATUS_FAILED ifstr(i) $(OEM_ABANDON_ON) == TRUE set OEM_ABANDON_ON = FALSE goto abandon endif goto end end = + goto term term = + Return $(CommonStatus) [Install-DLLs] set STF_VITAL = "" ifstr(i) $(AddCopy) == "YES" AddSectionFilesToCopyList Files-DLL $(SrcDir) $(!STF_WINDOWSSYSPATH) endif ifstr(i) $(DoCopy) == "YES" set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList endif Exit [PrepareDetectionDll] Set NewDllName = $($0) Set Status = STATUS_FAILED read-syms GeneralConstants Set DllValueName = "NetcardDlls" OpenRegKey $(!REG_H_LOCAL) "" "System\Setup" $(MAXIMUM_ALLOWED) KeySetup Ifstr(i) $(KeySetup) == $(KeyNull) Debug-Output "Adaptec: cant open System\Setup key" Goto PDD_Return Endif Set DllFound = 0 GetRegValue $(KeySetup) $(DllValueName) DllNamesValue Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "Adaptec: cant query NetcardDLLs value" Goto PDD_Return Endif Debug-Output "Adaptec: DllNamesValue = "$(DllNamesValue) Set DllNames = *($(DllNamesValue),4) Debug-Output "Adaptec: DllNames = "$(DllNames) ForListDo $(DllNames) Ifstr(i) $($) == $(NewDllName) Set DllFound = 1 Endif EndForListDo Ifint $(DllFound) == 0 Set DllNames = >($(DllNames),$(NewDllName)) Debug-Output "Adaptec: new DllNames = "$(DllNames) Set ValueInfo = {$(DllValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(DllNames)} SetRegValue $(KeySetup) $(ValueInfo) Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Set Status = STATUS_SUCCESSFUL Endif Else Set Status = STATUS_USERCANCEL Endif CloseRegKey $(KeySetup) PDD_Return = + Return $(Status) [Install-Option] set STF_VITAL = "" ifstr(i) $(AddCopy) == "YES" AddSectionFilesToCopyList Files-ALANE $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-DLL $(SrcDir) $(!STF_WINDOWSSYSPATH) endif ifstr(i) $(DoCopy) == "YES" set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList endif ifstr(i) $(DoConfig) == "YES" endif Exit [Install-Update] set STF_VITAL = "" set STF_OVERWRITE = "VERIFYSOURCEOLDER" AddSectionFilesToCopyList Files-ALANE $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers CopyFilesInCopyList exit [Install-Detection-Dll] ; set STF_VITAL = "" ; set STF_OVERWRITE = "VERIFYSOURCEOLDER" ; AddSectionFilesToCopyList Files-AdaptecNCDET $(SrcDir) $(!STF_WINDOWSSYSPATH) ; set !STF_NCPA_FLUSH_COPYLIST = TRUE ; CopyFilesInCopyList exit [Source Media Descriptions] ; 1 = "Setup Disk #1" , TAGFILE = disk1.w 1 = "Windows NT DRVLIB" [Signature] FileType = MICROSOFT_DRVLIB_FILE [GetSignature] read-syms Signature return $(FileType) [ProductType] STF_PRODUCT = Winnt STF_PLATFORM = I386 [Files-Inf] 1, oemsetup.inf, SIZE=37464, RENAME=$(!UG_Filename) [Files-ALANE] 1, alane.sys , SIZE=800800 [Files-DLL] 1, adptalan.dll , SIZE=200000 [LanguagesSupported] ENG [OptionsTextENG] ALANE0 = "Adaptec ATM LAN Emulation Adapter" ALANE1 = "Adaptec Inc. ATM LANE Adapter 1" ALANE2 = "Adaptec Inc. ATM LANE Adapter 2" ALANE3 = "Adaptec Inc. ATM LANE Adapter 3" [FileConstantsENG] InstallATMOFirst = "Please install Adaptec ATM Adapter driver before installing ALANE driver" ProCaption = "Adaptec ATM LANE Adapter Setup" ProCancel = "Cancel" ProCancelMsg = "Adaptec ATM LANE Adapter is not correctly installed. "+ "Are you sure you want to cancel copying files?" ProCancelCap = "Network Setup Message" ProText1 = "Copying:" ProText2 = "To:" FunctionALANETitle = "Adaptec ATM LANE Adapter Setup" ShellCodeErrorTitle = "Error: "$(Function$(Option)Title) ShellCodeErrorText = "Shell Code Error." [DialogConstantsENG] Help = "&Help" Exit = "Cancel" OK = "OK" HelpContext = "" Continue = "Continue" Cancel = "Cancel" [FileDependentDlgENG] DlgType = "MultiCombo" DlgTemplate = "WD" Caption = $(Function$(Option)Title) EditTextIn = "" EditTextLim = "" NotifyFields = {NO, NO, NO} HelpContext = $(!IDH_DB_OEMNADAM_INS) [DisketteDlgENG] Caption = "Adaptec LANE Driver Setup" Continue = "Continue" Cancel = "Cancel" DlgType = "Edit" DlgTemplate = "DISKETTE" DlgText = $($1) Edit1Label = "" EditTextIn = $(Src) EditFocus = "ALL"