; file version: 1.0.0.1 [Identification] OptionType = NetTransport [LanguagesSupported] ENG [Options] DAPassThru [OptionsTextENG] PassThru = "DynamicAccess Intermediate Driver" [FileConstants] UtilityInf = "UTILITY.INF" subroutineinf = "SUBROUTN.INF" TransportSoftwareType = "transport" AdapterSoftwareType = "driver" Exit_Code = 0 NetEventDLL = "%SystemRoot%\System32\netevent.dll" Manufacturer = "3Com" ProductMajorVersion = "1" ProductMinorVersion = "5.0" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) TransportProductSoftwareName = "DAPassThruTransport" AdapterProductSoftwareName = "DAPassThru" AdapterProductHardwareName = "DAPassThru" ProductSoftwareImagePath = "\SystemRoot\System32\drivers\DAprot.sys" ProductMiniportSoftwareImagePath = "\SystemRoot\System32\drivers\DAmini.sys" TransportNetRuleSoftwareType = "DAPassThruTransport DAPassThruTransport" TransportNetRuleSoftwareClass = {"DAPassThruTransport basic"} TransportNetRuleSoftwareUse = $(TransportSoftwareType)" none none" TransportNetRuleSoftwareBindForm = """DAPassThruTransport"" yes yes container" TransportNetRuleSoftwareBindable = {"DAPassThruTransport ndisDriver non non 100"} AdapterNetRuleSoftwareType = "DAPassThruSys ndisDriver DAPassThruDriver" AdapterNetRuleSoftwareUse = $(AdapterSoftwareType) AdapterNetRuleSoftwareBindForm = """DAPROT"" yes no container" AdapterNetRuleSoftwareClass = {"DAPassThruDriver basic"} AdapterNetRuleSoftwareBindable = {"DAPassThruDriver DAPassThruAdapter non exclusive 100"} AdapterNetRuleHardwareType = "DAPassThru DAPassThruAdapter" AdapterNetRuleHardwareBindForm = " yes yes container" AdapterNetRuleHardwareClass = {"DAPassThruAdapter basic"} TransportProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(TransportProductSoftwareName)"\CurrentVersion" TransportParamKeyName = $(!NTN_ServiceBase)"\"$(TransportProductSoftwareName)"\Parameters" TransportServiceKeyName = $(!NTN_ServiceBase)"\"$(TransportProductSoftwareName) TransportLinkageKeyName = $(!NTN_ServiceBase)"\"$(TransportProductSoftwareName)"\Linkage" TransportLinkageDisabledKeyName = $(!NTN_ServiceBase)"\"$(TransportProductSoftwareName)"\Linkage\Disabled" AdapterProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(AdapterProductSoftwareName)"\CurrentVersion" AdapterParamKeyName = $(!NTN_ServiceBase)"\"$(AdapterProductSoftwareName)"\Parameters" AdapterServiceKeyName = $(!NTN_ServiceBase)"\"$(AdapterProductSoftwareName) AdapterLinkageKeyName = $(!NTN_ServiceBase)"\"$(AdapterProductSoftwareName)"\Linkage" [FileConstantsENG] ProCaption = "Windows NT Setup" ProCancel = "Cancel" ProCancelMsg = "Windows NT Networking is not correctly installed. "+ "Are you sure you want to cancel copying files?" ProCancelCap = "Network Setup Message" ProText1 = "Copying:" ProText2 = "To:" FunctionTitle = "DAPassThru Driver" TransportProductSoftwareDescription = "DAPassThru Driver Transport" TransportProductSoftwareDisplayName = "DAPassThru Driver Transport" TransportProductSoftwareTitle = "DAPassThru Driver Transport" AdapterProductSoftwareDescription = "DAPassThru Driver Adapter" AdapterProductSoftwareDisplayName = "DAPassThru Driver Adapter" AdapterProductSoftwareTitle = "DAPassThru Driver Adapter" ProductHardwareDescription = "DAPassThru Driver Virtual Adapter" ProductHardwareDisplayName = "DAPassThru Driver Virtual Adapter" ProductHardwareTitle = "DAPassThru Driver Virtual Adapter" ShellCodeErrorTitle = "Error: "$(FunctionTitle) ShellCodeErrorText = "Shell Code Error." [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 DisableOtherReviewBindings = $(!STF_WINDOWSPATH)"\System32\DASetup.exe" DisableOtherReviewBindingsText = "DisableOtherReviews" StartDetachedText = "StartDetachedReview" DASetupNT = $(!STF_WINDOWSPATH)"\System32\DASetup.exe" SetupINFName = $(!STF_WINDOWSPATH)"\System32\oemsetup.INF" DASmartN = $(!STF_WINDOWSPATH)"\System32\DASmartN.exe" PostProcessInf = $(!STF_WINDOWSPATH)"\System32\PRUN.INF" DA15CFGEXE = $(!STF_WINDOWSPATH)"\System32\da15cfg.exe" ;DA15CFGINI = $(!STF_WINDOWSPATH)"\System32\da15cfg.ini" DACFGCPL = $(!STF_WINDOWSPATH)"\System32\Pacecfg.cpl" DACFGCPLSAV= $(!STF_WINDOWSPATH)"\System32\Pacecfg.sav" DACFGHLP = $(!STF_WINDOWSPATH)"\System32\dacfg.hlp" ;DACFGAPPLST= $(!STF_WINDOWSPATH)"\System32\dacfgapp.lst" ReviewProgramsTxt = "ReviewPrograms" ProductSoftwareImagePathTxt = $(!STF_WINDOWSPATH)"\System32\drivers\DAprot.sys" ProductMiniportSoftwareImagePathTxt = $(!STF_WINDOWSPATH)"\System32\drivers\DAmini.sys" InstallInProcess = "DAInstallInProcess" [date] Now = {} ? $(!LIBHANDLE) GetSystemDate [platform] STF_PLATFORM = "" ? $(!LIBHANDLE) GetPlatform [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) goto returnoptions 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 !DebugOutputControl = 1 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 DialogConstants$(!STF_LANGUAGE) ifstr(i) $(!NTN_Origination) == "NCPA" set Continue = $(OK) endif read-syms FileConstants$(!STF_LANGUAGE) detect date detect platform set-title $(FunctionTitle) set to = Begin set from = Begin set CommonStatus = STATUS_SUCCESSFUL EndWait Begin = + Ifstr(i) $(!NTN_InstallMode) == deinstall set StartLabel = deinstall else-Ifstr(i) $(!NTN_InstallMode) == update set StartLabel = update else-Ifstr(i) $(!NTN_InstallMode) == bind set StartLabel = bind else-Ifstr(i) $(!NTN_InstallMode) == configure set StartLabel = configure else set StartLabel = install endif set RadioDefault = 2 set RadioIn = {$(RadioDefault)} set from = $(fatal) set to = $(fatal) goto $(StartLabel) install =+ ;Debug: ; Set DlgText = "oemsetup.INF: install=+ Section" ; Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText) ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; set RegistryErrorIndex = ERROR ; endif OpenRegKey $(!REG_H_LOCAL) "" $(TransportProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) CloseRegKey $(KeyProduct) Shell $(UtilityInf), VerExistedDlg, $(TransportProductSoftwareTitle),+ $(ProductVersion) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif goto end endif CloseRegKey $(KeyProduct) goto installproduct installproduct = + StartWait 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 Goto fatal Else-Ifstr(i) $($R0) == STATUS_USERCANCEL Goto successful Endif Set SrcDir = $($R1) Debug-Output "PassThru: oemsetup.inf: SrcDir "$(SrcDir) Endif Shell "" StripTrailSlash $(SrcDir) set PlatformDir = $($R0)"\"$(STF_PLATFORM) set InfDir = $($R0)"\" 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 set OEM_ABANDON_ON = TRUE Debug-Output "PassThru: Adding Transport Software Component to Registry" Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(TransportProductSoftwareName), + $(TransportProductSoftwareName), + $(TransportProductSoftwareDisplayName), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath), "transport", "NDIS", {}, "",+ $(NetEventDLL) 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),$(TransportSoftwareType)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),$(TransportProductSoftwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(TransportProductSoftwareDescription)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(TransportProductSoftwareName)},+ {Review,$(NoTitle),$(!REG_VT_DWORD),1},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList) set RegistryErrorIndex = $($R0) Ifstr $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) goto fatalRegistry endif set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(TransportNetRuleSoftwareType)}, + {use,$(NoTitle),$(!REG_VT_SZ),$(TransportNetRuleSoftwareUse)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TransportNetRuleSoftwareClass)}, + {bindform,$(NoTitle),$(!REG_VT_SZ),$(TransportNetRuleSoftwareBindForm)}, + {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TransportNetRuleSoftwareBindable)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList) set RegistryErrorIndex = $($R0) Ifstr $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) goto fatalRegistry endif CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) Debug-Output "PassThru: Adding Adapter Software Component to Registry" Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(AdapterProductSoftwareName), + $(AdapterProductSoftwareName), + $(AdapterProductSoftwareDisplayName), $(STF_CONTEXTINFNAME), + $(ProductMiniportSoftwareImagePath), "kernel", "NDIS", {}, "",+ $(NetEventDLL) 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),$(AdapterSoftwareType)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),$(AdapterProductSoftwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(AdapterProductSoftwareDescription)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(AdapterProductSoftwareName)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList) set RegistryErrorIndex = $($R0) Ifstr $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) goto fatalRegistry endif set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(AdapterNetRuleSoftwareType)}, + {use,$(NoTitle),$(!REG_VT_SZ),$(AdapterNetRuleSoftwareUse)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(AdapterNetRuleSoftwareClass)}, + {bindform,$(NoTitle),$(!REG_VT_SZ),$(AdapterNetRuleSoftwareBindForm)}, + {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(AdapterNetRuleSoftwareBindable)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList) set RegistryErrorIndex = $($R0) Ifstr $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) goto fatalRegistry endif CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) OpenRegKey $(!REG_H_LOCAL) "" $(TransportParamKeyName) $(MAXIMUM_ALLOWED) DAParamKey SetRegValue $(DAParamKey) {$(InstallInProcess),$(NoTitle),$(!REG_VT_DWORD),2} endif EndWait goto successful bind =+ ; ; When user terminates NCPA, bind is invoked. Therefore, without knowing ; what the user has done to the NCPA (add new card, remove a card, etc.), ; bind has to find out and does things accordingly. ; ; ; If this is the binding review for the Transport Driver... ; ;Debug: ; Set DlgText = "oemsetup.INF: bind=+ Section, NTN_RegBase ="$(!NTN_RegBase) ; Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(DlgText) ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; set RegistryErrorIndex = ERROR ; endif ifstr(i) $(!NTN_RegBase) == $(TransportProductKeyName) ;{ To fix TCP/IP problem: 02-26-98, HD Set RegKey = $(TransportParamKeyName) OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) DAParamKey ;Check if installinprocess here. if it is, then don't disable other bindings. GetRegValue $(DAParamKey) $(InstallInProcess) InProcessRec set InProcessValue = *($(InProcessRec),4) ifstr(i) $(InProcessValue) == "" GetRegValue $(DAParamKey) $(DisableOtherReviewBindingsText) disableBindingRec set disableBindingValue = *($(disableBindingRec),4) ifstr(i) $(disableBindingRec) == "" SetRegValue $(DAParamKey) {$(DisableOtherReviewBindingsText),$(NoTitle),$(!REG_VT_DWORD),1} RunProgram ExitCode "" "" $(DisableOtherReviewBindings) 5 endif endif CloseRegKey $(DAParamKey) ;} To fix TCP/IP problem: 02-26-98, HD ; ; Open the Linkage Key and get the Bind Value ; Debug-Output "PassThru: Reviewing bindings in "$(TransportLinkageKeyName) OpenRegKey $(!REG_H_LOCAL) "" $(TransportLinkageKeyName) $(MAXIMUM_ALLOWED) TransportLinkageKey ifstr(i) $(TransportLinkageKey) != "" GetRegValue $(TransportLinkageKey) "Bind" BindList Debug-Output "PassThru: BindList: "$(BindList) Set Binding = *($(BindList),4) Debug-Output "PassThru: Binding: "$(Binding) CloseRegKey $(TransportLinkageKey) else Debug-Output "PassThru: failed to open Linkage Key for "$(TransportServiceKeyName) goto fatalregistry endif ; ; Parse the Bindings to create a list of Adapter cards ; set CardList = {} set TempCardList = {} set CreateCardList = {} set NICIndex = 0 ForListDo $(Binding) Split-String $($), "\", BindInfo QueryListSize BindListSize $(BindInfo) set CardName = *($(BindInfo),$(BindListSize)) Debug-Output "PassThru: Cardname: "$(CardName) ifstr(i) $(TempCardList) == {} set TempCardList = {$(CardName)} else set TempCardList = >($(TempCardList),$(CardName)) endif EndForListDo ; 020998: For add new and remove last NIC error: Inverting Binding List { QueryListSize NICIndex $(TempCardList) ForListDo $(TempCardList) ifstr(i) $(CardList) == {} set CardList = {*($(TempCardList),$(NICIndex))} else set CardList = >($(CardList),*($(TempCardList),$(NICIndex))) endif set-sub NICIndex = $(NICIndex),1 EndForListDo ; 020998: end of inverting binding list } ; ; Getting total number of Virtual NIC ; Set TotalVirtualNIC = 0 Set LastCard = 1 ForListDo $(CardList) Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\Signature" OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) VirtualNICKey ifstr(i) $(VirtualNICKey) == "" ; Real NIC, but check its media type. If type 1, then lastCardRemoved=False. Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) RealNicParam GetRegValue $(RealNicParam) "MediaType" MediaTypeRec Set MediaTypeVal = *($(MediaTypeRec),4) ifstr(i) $(MediaTypeVal) == 1 Set LastCard = 0 endif else Set-add TotalVirtualNIC = $(TotalVirtualNIC), 1 endif EndForListDo Debug-Output "PassThru: Cardlist: "$(CardList) ; ; For each real LAN adapter the transport is bound to... ; Set AddedNewVirtualAdapter = "No" Set RemovedNIC = "No" ForListDo $(CardList) Debug-Output "PassThru: Processing "$($)"..." ; ; Check if this is a virtual adapter that WE created. ; Set MediaTypeRecord = "" Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) CardParamKey GetRegValue $(CardParamKey) "MediaType" MediaTypeRecord ifstr(i) $(MediaTypeRecord) == "" goto continueCardList endif Set MediaTypeValue = *($(MediaTypeRecord),4) ifstr(i) $(MediaTypeValue) != 1 ; ; Wedge supports only media type # 1 NIC ; goto continueCardList else-ifstr(i) $(MediaTypeValue) == 1 Set MediaTypeValue = *($(MediaTypeRecord),4) ; ;if ATM mediatype, don't create virtual NIC ; ; Get Title field of mapped Nic: ; Set RealNICCard = $($) Set RegKey = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards" OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) NetCardKey ifstr(i) $(NetCardKey) != "" EnumRegKey $(NetCardKey) NetCardKeyList ForListDo $(NetCardKeyList) Set NetCardNum = *( $($), 1 ) Set RegKey = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(NetCardNum) OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) NetCardNumKey GetRegValue $(NetCardNumKey) "ServiceName" NetCardServiceNameValue Set NetCardServiceName = *( $(NetCardServiceNameValue), 4 ) ifstr(i) $(NetCardServiceName) == $(RealNICCard) GetRegValue $(NetCardNumKey) "Title" NetCardTitleRec Set NetCardTitle = *( $(NetCardTitleRec), 4 ) endif EndForListDo endif CloseRegKey $(NetCardKey) CloseRegKey $(NetCardNumKey) Split-String $(NetCardTitle), " ", itemizedTitle Ifcontains "ATM" in $(itemizedTitle) goto continueCardList else set anATMCard = 0 ForListDo $(itemizedTitle) Split-String $($), "M", ATMPrependTitle Ifcontains "AT" in $(ATMPrependTitle) set anATMCard = 1 endif Split-String $($), "A", ATMAppendTitle Ifcontains "TM" in $(ATMAppendTitle) set anATMCard = 1 else ForListDo $(ATMAppendTitle) Split-String $($), "M", ATMInsideTitle Ifcontains "T" in $(ATMInsideTitle) set anATMCard = 1 endif EndForListDo endif EndForListDo ifstr(i) $(anATMCard) == "1" goto continueCardList endif endif endif Debug-Output "PassThru: NTN_ServiceBase: "$(!NTN_ServiceBase) Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\Signature" Debug-Output "PassThru: pre-check: about to open "$(RegKey) OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) PassThruKey ifstr(i) $(PassThruKey) == "" Debug-Output "PassThru: WILL bind to "$($) ;020998 { ; ; Open/Create the protocol specific key under the adapter's parameters key ; Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\"$(TransportProductSoftwareName) Debug-Output "PassThru: about to open "$(RegKey) OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) PassThruKey ifstr(i) $(PassThruKey) == "" Debug-Output "PassThru: creating "$(TransportProductSoftwareName)" key under the adapter" CreateRegKey $(!REG_H_LOCAL) {$(RegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" PassThruParamsKey else Debug-Output "PassThru: Have processed "$($)" already" CloseRegKey $(PassThruKey) goto continueCardList endif ifstr(i) $(PassThruParamsKey) == "" Debug-Output "PassThru: Failed to open/create the \Parameters\"$(TransportProductSoftwareName)" key under the adapter" goto fatalRegistry endif ; ; Now add a virtual hardware component to represent the ELAN ; Debug-Output "PassThru: Adding Adapter Hardware Component to Registry" Shell $(UtilityInf), AddHardwareComponent, + $(AdapterProductHardwareName), + $(STF_CONTEXTINFNAME), + $(AdapterProductKeyName) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "PassThru: ShellCode error." goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR Debug-Output "PassThru: Failed to Add Hardware Component" CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) goto fatalRegistry endif ; ; Pair information of real and virtual NICs -- HD -- ; ; Get Title field of mapped Nic: ; Set RealNICCard = $($) Set RegKey = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards" OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) NetCardKey ifstr(i) $(NetCardKey) != "" EnumRegKey $(NetCardKey) NetCardKeyList ForListDo $(NetCardKeyList) Set NetCardNum = *( $($), 1 ) Set RegKey = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(NetCardNum) OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) NetCardNumKey GetRegValue $(NetCardNumKey) "ServiceName" NetCardServiceNameValue Set NetCardServiceName = *( $(NetCardServiceNameValue), 4 ) ifstr(i) $(NetCardServiceName) == $(RealNICCard) GetRegValue $(NetCardNumKey) "Title" NetCardTitleRec Set NetCardTitle = *( $(NetCardTitleRec), 4 ) endif EndForListDo endif CloseRegKey $(NetCardKey) CloseRegKey $(NetCardNumKey) ; ; End of getting Title field for mapped NIC ; set KeyParameters = $($R3) set KeyAdapterRules = $($R2) set AdapterNumber = $($R4) set VirtNICTitle = "3Com Virtual NIC - DynamicAccess 1.5 ["$(NetCardTitle)"]" set VirtNICDesc = "3Com Virtual NIC - DynamicAccess 1.5 ["$(NetCardTitle)"]" set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+ {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(VirtNICTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(VirtNICDesc)},+ {ProductName,$(NoTitle),$(!REG_VT_SZ),$(AdapterProductHardwareName)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "PassThru: ShellCode error" goto ShellCodeError endif CloseRegKey $($R1) set TempProdName = """"$(AdapterProductHardwareName)$(AdapterNumber)"""" set TempBindForm = $(TempProdName)$(AdapterNetRuleHardwareBindForm) set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(AdapterNetRuleHardwareType)},+ {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(AdapterNetRuleHardwareClass)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "PassThru: ShellCode error." goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "PassThru: Registry error: add value list." CloseRegKey $(KeyParameters) CloseRegKey $(KeyAdapterRules) goto fatalregistry endif CloseRegKey $(KeyAdapterRules) Set NewValueList = {{MappedNic,$(NoTitle),$(!REG_VT_SZ),"\Device\"$($)},+ {virtualNicNumber,$(NoTitle),$(!REG_VT_SZ),$(AdapterNumber)},+ {MediaType,$(NoTitle),$(!REG_VT_DWORD),$(MediaTypeValue)},+ {MappedNICTitle,$(NoTitle),$(!REG_VT_SZ),$(NetCardTitle)}} Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList) ; Create a key of the type ; PassThru2\Parameters\Signature\ ; Set SigRegKey = $(!NTN_ServiceBase)"\"$(AdapterProductHardwareName)$(AdapterNumber)"\Parameters\Signature" Debug-Output "SigRegKey is "$(SigRegKey) CreateRegKey $(!REG_H_LOCAL) {$(SigRegKey),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" SigKey ifstr(i) $(SigKey) == "" Debug-Output "Failed to create "$(SigRegKey) endif CloseRegKey $(KeyParameters) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "PassThru: ShellCode error." goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR Debug-Output "PassThru: Registry error: Add value list" goto fatalregistry endif ; ; Note that a virtual adapter was added. ; Set AddedNewVirtualAdapter = "Yes" ; ifstr(i) $(ElanKey) != "" ; CloseRegKey $(ElanKey) ; endif ; ifstr(i) $(PassThruParamsKey) != "" set NewValueList = {{Device,$(NoTitle),$(!REG_VT_SZ),$(AdapterProductHardwareName)$(AdapterNumber)},+ {AdapterNumber,$(NoTitle),$(!REG_VT_SZ),$(AdapterNumber)}} Shell $(UtilityInf), AddValueList, $(PassThruParamsKey), $(NewValueList) CloseRegKey $(PassThruParamsKey) endif ;020998 } else Debug-Output "PassThru: Skipping bind to ourselves "$($) ; Also, if the mappedNic is removed, then remove its virtual NIC. ; Check to see if the mappedNic exists! -- HD -- Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\" OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) virtualNicParams GetRegValue $(virtualNicParams) "MappedNic" mappedNicNameRecord Set mappedNicDeviceName = *($(mappedNicNameRecord),4) Split-String $(mappedNicDeviceName), "\", mappedNicInfo QueryListSize NicNameLength $(mappedNicInfo) set mappedNicName = *($(mappedNicInfo),$(NicNameLength)) Set RegKey = $(!NTN_ServiceBase)"\"$(mappedNicName) OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) mappedNicEntry ifstr(i) $(mappedNicEntry) == "" ; mappedNic was removed; therefore, remove its virtual Nic as well -- HD -- Set RemovedNIC = "Yes" ; ; If last NIC was removed, remove Wedge also. ; GetRegValue $(virtualNicParams) "virtualNicNumber" virtualNicNumberIndex set virtualNicNumberValue = *($(virtualNicNumberIndex),4) Set RegKey = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(virtualNicNumberValue) Shell $(UtilityInf), RemoveHardwareComponent,+ $(Manufacturer),$(AdapterProductSoftwareName),$(RegKey) Set RegKey = $(TransportParamKeyName) OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) DAParamKey GetRegValue $(DAParamKey) $(DisableOtherReviewBindingsText) disableBindingRec set DisableOtherReviewBindingValue = *($(disableBindingRec),4) ifint $(DisableOtherReviewBindingValue) == 1 SetRegValue $(DAParamKey) {$(DisableOtherReviewBindingsText),$(NoTitle),$(!REG_VT_DWORD),2} RunProgram ExitCode "" "" $(DisableOtherReviewBindings) 4 endif CloseRegKey $(DAParamKey) endif goto continueCardList endif continueCardList = + EndForListDo ; ; If we added a virtual adapter, tell NCPA to review bindings ; again after this completes. ; ifstr(i) $(AddedNewVirtualAdapter) == "Yes" Set RegKey = $(TransportParamKeyName) OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) DAParamKey ;Check if installinprocess here. if it is, then don't disable other bindings. GetRegValue $(DAParamKey) $(InstallInProcess) InProcessRec set InProcessValue = *($(InProcessRec),4) ifstr(i) $(InProcessValue) == "" GetRegValue $(DAParamKey) $(DisableOtherReviewBindingsText) disableBindingRec set disableBindingValue = *($(disableBindingRec),4) ifint $(disableBindingValue) == 1 SetRegValue $(DAParamKey) {$(DisableOtherReviewBindingsText),$(NoTitle),$(!REG_VT_DWORD),2} RunProgram ExitCode "" "" $(DisableOtherReviewBindings) 4 endif GetRegValue $(DAParamKey) $(StartDetachedText) StartDetachedRec ifstr(i) $(StartDetachedRec) == "" SetRegValue $(DAParamKey) {$(StartDetachedText),$(NoTitle),$(!REG_VT_DWORD),1} StartDetachedProcess STATUS_SUCCESSFUL "" "" $(DASetupNT) 1 endif endif CloseRegKey $(DAParamKey) endif ifstr(i) $(RemovedNIC) == "Yes" ifstr(i) $(LastCard) == 1 goto LastCardRemoved endif Set RegKey = $(TransportParamKeyName) OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) DAParamKey ;Check if installinprocess here. if it is, then don't disable other bindings. GetRegValue $(DAParamKey) $(InstallInProcess) InProcessRec set InProcessValue = *($(InProcessRec),4) ifstr(i) $(InProcessValue) == "" GetRegValue $(DAParamKey) $(DisableOtherReviewBindingsText) disableBindingRec set disableBindingValue = *($(disableBindingRec),4) ifint $(disableBindingValue) == 1 SetRegValue $(DAParamKey) {$(DisableOtherReviewBindingsText),$(NoTitle),$(!REG_VT_DWORD),2} RunProgram ExitCode "" "" $(DisableOtherReviewBindings) 4 endif endif GetRegValue $(DAParamKey) $(StartDetachedText) StartDetachedRec ifstr(i) $(StartDetachedRec) == "" SetRegValue $(DAParamKey) {$(StartDetachedText),$(NoTitle),$(!REG_VT_DWORD),1} StartDetachedProcess STATUS_SUCCESSFUL "" "" $(DASetupNT) 1 endif CloseRegKey $(DAParamKey) endif endif goto successful deinstall =+ ; ; To synch TCP/IP configuration again with current setup. ; RunProgram ExitCode "" "" $(DASetupNT) t ; Done synch TCP/IP Split-String $(!NTN_RegBase), "\", RegLoc Ifcontains(i) "NetworkCards" in $(RegLoc) ; Removing just the virtual NIC is not allowed: ;dialog#1 Set DlgText = "If you want to uninstall 3Com's DynamicAccess software, select the DAPassThru Driver Transport and click Remove." Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(DlgText) ifint $($ShellCode) != $(!SHELL_CODE_OK) set RegistryErrorIndex = ERROR endif Return STATUS_SUCCESSFUL endif Ifcontains(i) "DAPassThru" in $(RegLoc) ; Removing just the virtual NIC is not allowed: ;dialog#2 Set DlgText = "What do you want to do? (1) If you want to remove 3Com's DynamicAccess software, select DAPassThru Transport protocol and click Remove. (2) If you want to remove your Adapter, select the adapter and click Remove. Do no remove the 3Com's virtual NIC." Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(DlgText) ifint $($ShellCode) != $(!SHELL_CODE_OK) set RegistryErrorIndex = ERROR endif Return STATUS_SUCCESSFUL endif ;dialog0 Set DlgText = "You are about to uninstall the 3Com DynamicAccess Protocol!" Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText) ifint $($ShellCode) != $(!SHELL_CODE_OK) set RegistryErrorIndex = ERROR endif ifstr $($R1) == "CANCEL" Return STATUS_SUCCESSFUL endif LastCardRemoved =+ ; Set RegKey = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion" ; OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) NTVersionKey ; GetRegValue $(NTVersionKey) "CurrentVersion" NTVersionRec ; Set NTVersion = *($(NTVersionRec),4) ; CloseRegKey $(NTVersionKey) ; ifstr(i) $(NTVersion) == "4.0" ; RunProgram ExitCode "" "" $(DASetupNT) d ; else-ifstr(i) $(NTVersion) == "3.51" ; Set DlgText = "oemsetup.INF: Need to also run DASetup.exe d" ; Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(DlgText) ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; set RegistryErrorIndex = ERROR ; endif ; endif ; AddfileToDeleteList $(ProductSoftwareImagePathTxt) ; AddfileToDeleteList $(ProductMiniportSoftwareImagePathTxt) ; AddfileToDeleteList $(PostProcessInf) ; AddfileToDeleteList $(DASetupNT) ;; AddfileToDeleteList $(DADeinstallNT) ;; Return STATUS_SUCCESSFUL ;; endif ;ifstr(i) $(TransportProductKey) == "" ; CloseRegKey $(TransportProductKey) ; set Error = "To uninstall this adapter, remove '"$(TransportProductSoftwareDescription)"' from Protocols" ; set from = end ; goto nonfatalinfo ;endif ;CloseRegKey $(TransportProductKey) ; ; Build a list of real LAN adapters that the transport is bound to ; OpenRegKey $(!REG_H_LOCAL) "" $(TransportLinkageKeyName) $(MAXIMUM_ALLOWED) TransportLinkageKey ifstr(i) $(TransportLinkageKey) != "" GetRegValue $(TransportLinkageKey) "Bind" BindList Debug-Output "PassThru: Remove: BindList: "$(BindList) Set Binding = *($(BindList),4) Debug-Output "PassThru: Remove: Binding: "$(Binding) CloseRegKey $(TransportLinkageKey) else Debug-Output "PassThru: failed to open key "$(TransportLinkageKeyName) goto skipRemoveBindings endif set CardList = {} set CreateCardList = {} ForListDo $(Binding) Split-String $($), "\", BindInfo QueryListSize BindListSize $(BindInfo) set CardName = *($(BindInfo),$(BindListSize)) Debug-Output "PassThru: Remove: Cardname: "$(CardName) ifstr(i) $(CardList) == {} set CardList = {$(CardName)} else set CardList = >($(CardList),$(CardName)) endif EndForListDo Debug-Output "PassThru: Cardlist: "$(CardList) ; ; For each real LAN adapter in the list... ; ForListDo $(CardList) ; ; Open the Elan list key ; ;Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\"$(TransportProductSoftwareName)"\ElanList" ;OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) ElanListKey Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\Signature" OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) DASignatureKey ifstr(i) $(DASignatureKey) != "" CloseRegKey $(DASignatureKey) Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) VirtNICParam GetRegValue $(VirtNICParam) "virtualNicNumber" VirtNICNoRec GetRegValue $(VirtNICParam) "MappedNic" RealNICRec Set VirtNICNo = *($(VirtNICNoRec),4) Set AdapterRegBase = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(VirtNICNo) Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(AdapterProductSoftwareName), $(AdapterRegBase) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "PassThru: ShellCode error" goto ShellCodeError endif CloseRegKey $(VirtNICParam) set RealNIC = *($(RealNICRec),4) Split-String $(RealNIC), "\", RealNICInfo QueryListSize RealNICItems $(RealNICInfo) set RealCardName = *($(RealNICInfo),$(RealNICItems)) Set RegKey = $(!NTN_ServiceBase)"\"$(RealCardName)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) RealNICParam ifstr(i) $(RealNICParam) != "" ; ;Don't do this for Python + transfer current configuration back to real NIC. ;Will be deleted later in .c program. ; DeleteRegTree $(RealNICParam) $(TransportProductSoftwareName) CloseRegKey $(RealNICParam) else Debug-Output "PassThru: Failed to delete "$(RegKey) endif endif ; Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters\"$(TransportProductSoftwareName) ; OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) ElanListKey ; ifstr(i) $(ElanListKey) != "" ; GetRegValue $(ElanListKey) "AdapterNumber" AdapterNoValue ; ;CloseRegKey $(ElanListKey) ; Debug-Output "PassThru: AdapterNoValue: "$(AdapterNoValue) ; ; ; ; Open the Elan0 key and get the adapter number ; ; ; ;Set RegKey = $(RegKey)"\Elan0" ; ;OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) ElanKey ; ;ifstr(i) $(ElanKey) != "" ; ; GetRegValue $(ElanKey) "AdapterNumber" AdapterNoValue ; ; CloseRegKey $(ElanKey) ; ;else ; ; Debug-Output "PassThru: failed to open key "$(RegKey)", skipping this adapter" ; ; goto continueRemoveBindings ; ;endif ; Set AdapterNo = *($(AdapterNoValue),4) ; ; ; ; ; Remove the virtual hardware component that represents the ELAN. ; ; This will remove the adapter software component as well. ; ; ; Set AdapterRegBase = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(AdapterNo) ; Debug-Output "PassThru: removing adapter number "$(AdapterNo)" RegBase "$(AdapterRegBase) ; Debug-Output "PassThru: Manufacturer: "$(Manufacturer)", AdapterProductSoftwareName: "$(AdapterProductSoftwareName)", AdpterRegBase: "$(AdpterRegBase) ; Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + ; $(AdapterProductSoftwareName), $(AdapterRegBase) ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; Debug-Output "PassThru: ShellCode error" ; goto ShellCodeError ; endif ; ; ; ; ; Close the Elan list key and ; ; delete the whole PassThru transport specific key from the real LAN adapter ; ; ; CloseRegKey $(ElanListKey) ; Debug-Output "PassThru: NTN_ServiceBase: "$(!NTN_ServiceBase) ; Set RegKey = $(!NTN_ServiceBase)"\"$($)"\Parameters" ; Debug-Output "PassThru: Deleting protocol specific key from LAN adapter" ; Debug-Output "PassThru: Key is "$(RegKey) ; OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) ParamsKey ; ifstr(i) $(ParamsKey) != "" ; DeleteRegTree $(ParamsKey) $(TransportProductSoftwareName) ; CloseRegKey $(ParamsKey) ; else ; Debug-Output "PassThru: Failed to delete "$(RegKey) ; endif ; ; endif continueRemoveBindings =+ EndForListDo skipRemoveBindings =+ Debug-Output "PassThru: Removing "$(TransportProductSoftwareName)" Software Component from Registry" Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(TransportProductSoftwareName) ; ignore errors for now RemovePassThru = + Set RegKey = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion" OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) NTVersionKey GetRegValue $(NTVersionKey) "CurrentVersion" NTVersionRec Set NTVersion = *($(NTVersionRec),4) CloseRegKey $(NTVersionKey) RunProgram ExitCode "" "" $(DASetupNT) d AddfileToDeleteList $(ProductSoftwareImagePathTxt) AddfileToDeleteList $(ProductMiniportSoftwareImagePathTxt) AddfileToDeleteList $(PostProcessInf) AddfileToDeleteList $(DASetupNT) AddfileToDeleteList $(SetupINFName) AddfileToDeleteList $(DASmartN) AddfileToDeleteList $(DA15CFGEXE) ;AddfileToDeleteList $(DA15CFGINI) AddfileToDeleteList $(DACFGHLP) ;AddfileToDeleteList $(DACFGCPL) ;done in restore pacecfg in .c program AddfileToDeleteList $(DACFGCPLSAV) ;AddfileToDeleteList $(DACFGAPPLST) Set RegKey = $(!NTN_ServiceBase) OpenRegKey $(!REG_H_LOCAL) "" $(RegKey) $(MAXIMUM_ALLOWED) PassThru_Key ifstr(i) $(PassThru_Key) != "" Debug-Output "PassThru: about to delete "$(RegKey) DeleteRegTree $(PassThru_Key) $(AdapterProductSoftwareName) CloseRegKey $(PassThru_Key) else Debug-Output "PassThru: Failed to delete "$(RegKey) endif goto end configure =+ set Error = "Configuration Not Implemented" set from = end goto nonfatalinfo update = + set Error = "Update Not Implemented, Remove and Reinstall" set from = end goto nonfatalinfo successful = + 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) == "" 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 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 deinstall endif goto end end = + goto term term = + Return $(CommonStatus) [StripTrailSlash] Split-String $($0) "\" InList QueryListSize InListSize, $(InList) Ifint $(InListSize) <= 1 Return $($0) Endif Set NewString = "" ForListDo $(InList) ifint $(#) < $(InListSize) Set NewString = $(NewString)$($) else-ifstr $($) != "\" Set NewString = $(NewString)$($) endif EndForListDo Return $(NewString) [Install-Option] set STF_VITAL = "" ifstr(i) $(AddCopy) == "YES" Debug-Output "PassThru: oemsetup.inf: PlatformDir "$(PlatformDir) ;AddSectionFilesToCopyList Files-Platform-Drivers $(PlatformDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Platform-Drivers $(InfDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Post-Process-Program $(InfDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Platform-Utility $(InfDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Inf $(InfDir) $(!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-Platform-Drivers $(PlatformDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Platform-Drivers $(InfDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Platform-Utility $(InfDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Inf $(InfDir) $(!STF_WINDOWSSYSPATH) exit [Source Media Descriptions] 1 = "DAPassThru Driver Installation Disk", TAGFILE = disk1 [ProductType] STF_PRODUCT = Winnt [Files-Inf] ;1, oemsetup.INF, SIZE=999, RENAME=$(!UG_Filename) 1, oemsetup.INF, SIZE=999 [Files-Platform-Drivers] ;1, passthru.SYS , SIZE=999 1, DAMINI.SYS , SIZE=999 1, DAPROT.SYS, SIZE=999 [Files-Platform-Utility] 1, DASetup.EXE, SIZE=999 1, DA15cfg.EXE, SIZE=999 1, DAcfg.hlp, SIZE=999 1, DASmartN.EXE, SIZE=999 ;1, DA15cfg.INI, SIZE=999 ;1, Pacecfg.cpl, SIZE=999 ;1, DAcfgApp.lst, SIZE=999 ;1, DADeinstallNT.EXE, SIZE=999 [Post-Process-Program] 1, PRUN.INF, SIZE=999 [DialogConstantsENG] Help = "&Help" Exit = "Cancel" OK = "OK" HelpContext = "" Continue = "Continue" Cancel = "Cancel"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.