; 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.