Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

985 lines
38 KiB

; BUGBUG - what should Manufacturer be?
; BUGBUG - what should version be? 1.0 or 3.5?
; BUGBUG - what should the Source Media Descriptions be?
; ------------------------------------------------------------------------
; Microsoft Windows NT 3.5 Driver Installation
; Thomas-Conrad Driver for TCNS and generic ARCNET Adapters
; Copyright 1994 Thomas-Conrad Corporation
; v1.00 (940713)
; ------------------------------------------------------------------------
[FileConstants]
Manufacturer = "Thomas-Conrad"
TccBaseName = "tcarc"
SoftwareMajorVersion = "4"
SoftwareMinorVersion = "0"
InterruptTextList = ^(InterruptChoices, 1)
InterruptValueList = ^(InterruptChoices, 2)
IoBaseTextList = ^(IoBaseChoices, 1)
IoBaseValueList = ^(IoBaseChoices, 2)
MemoryBaseTextList = ^(MemoryBaseChoices, 1)
MemoryBaseValueList = ^(MemoryBaseChoices, 2)
EisaSlotTextList = ^(EisaSlotChoices, 1)
EisaSlotValueList = ^(EisaSlotChoices, 2)
NetEventDLL = "%SystemRoot%\System32\netevent.dll"
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
UtilityInf = "UTILITY.INF"
SubroutineInf = "SUBROUTN.INF"
SoftwareType = "driver"
Exit_Code = 0
SoftwareVersion = $(SoftwareMajorVersion)"."$(SoftwareMinorVersion)
SoftwareImage = "\SystemRoot\System32\drivers\"$(TccBaseName)".sys"
NetRuleSoftwareType = $(TccBaseName)"Sys ndisDriver "$(TccBaseName)"Driver"
NetRuleSoftwareBindForm = """"$(TccBaseName)"Sys"" yes no container"
NetRuleSoftwareBindable = {""$(TccBaseName)"Driver "$(TccBaseName)"Adapter non exclusive 100"}
NetRuleSoftwareClass = {""$(TccBaseName)"Driver basic"}
NetRuleSoftwareUse = $(SoftwareType)
NetRuleHardwareType = $(TccBaseName)" "$(TccBaseName)"Adapter"
NetRuleHardwareClass = {""$(TccBaseName)"Adapter basic"}
NetRuleHardwareBindForm = " yes yes container"
ProductOpSupport = 134 ; 0x0086 ; Display,Removable,Properties,Not Updatable
KeyName_SoftwareRoot = $(!NTN_SoftwareBase)"\"$(Manufacturer)
KeyName_Software = $(KeyName_SoftwareRoot)"\"$(TccBaseName)"\CurrentVersion"
[InterruptChoices]
Interrupt_1 = "2/9", 2
Interrupt_2 = "3" , 3
Interrupt_3 = "4" , 4
Interrupt_4 = "5" , 5
Interrupt_5 = "6" , 6
Interrupt_6 = "7" , 7
Interrupt_7 = "10" , 10
Interrupt_8 = "11" , 11
Interrupt_9 = "12" , 12
Interrupt_10 = "14" , 14
Interrupt_11 = "15" , 15
[MemoryBaseChoices]
MemoryBaseChoice_1 = "C0000", 49152
MemoryBaseChoice_2 = "C4000", 50176
MemoryBaseChoice_3 = "C8000", 51200
MemoryBaseChoice_4 = "CC000", 52224
MemoryBaseChoice_5 = "D0000", 53248
MemoryBaseChoice_6 = "D4000", 54272
MemoryBaseChoice_7 = "D8000", 55296
MemoryBaseChoice_8 = "DC000", 56320
[IoBaseChoices]
IoBaseChoice_1 = "260", 608
IoBaseChoice_2 = "290", 656
IoBaseChoice_3 = "2E0", 736
IoBaseChoice_4 = "2F0", 752
IoBaseChoice_5 = "300", 768
IoBaseChoice_6 = "350", 848
IoBaseChoice_7 = "380", 896
IoBaseChoice_8 = "3E0", 992
[EisaSlotChoices]
EisaSlot_1 = "1", 1
EisaSlot_2 = "2", 2
EisaSlot_3 = "3" , 3
EisaSlot_4 = "4" , 4
EisaSlot_5 = "5" , 5
EisaSlot_6 = "6" , 6
EisaSlot_7 = "7" , 7
EisaSlot_8 = "8" , 8
EisaSlot_9 = "9" , 9
EisaSlot_10 = "10" , 10
EisaSlot_11 = "11" , 11
EisaSlot_12 = "12" , 12
[TcarcIsaDlg]
DlgType = "RadioCombination"
Label1 = $(InterruptLabel)
Label2 = $(BaseIoLabel)
Label3 = $(MemoryLabel)
DlgTemplate = "UBNDIS"
Caption = $(FunctionTitle)
Combo1List = $(InterruptTextList)
Combo1Out = $(InterruptTextDlgDefault)
Combo2List = $(IoBaseTextList)
Combo2Out = $(IoBaseTextDlgDefault)
Combo3List = $(MemoryBaseTextList)
Combo3Out = $(MemoryBaseTextDlgDefault)
RadioIn = {}
ComboListItemsIn = {Combo1List,Combo2List,Combo3List}
ComboListItemsOut = {Combo1Out,Combo2Out,Combo3Out}
CBOptionsGreyed = {}
EditTextIn = ""
EditTextLim = ""
NotifyFields = {NO, NO, NO}
HelpContext = $(!IDH_DB_OEMNADAR1_INS)
[TcnsIsaDlg]
DlgType = "RadioCombination"
Label1 = $(InterruptLabel)
Label2 = $(BaseIoLabel)
Label3 = $(MemoryLabel)
DlgTemplate = "UBNDIS"
Caption = $(TcnsCaption)
Combo1List = $(InterruptTextList)
Combo1Out = $(InterruptTextDlgDefault)
Combo2List = $(IoBaseTextList)
Combo2Out = $(IoBaseTextDlgDefault)
Combo3List = $(MemoryBaseTextList)
Combo3Out = $(MemoryBaseTextDlgDefault)
RadioIn = {}
ComboListItemsIn = {Combo1List,Combo2List,Combo3List}
ComboListItemsOut = {Combo1Out,Combo2Out,Combo3Out}
CBOptionsGreyed = {}
EditTextIn = ""
EditTextLim = ""
NotifyFields = {NO, NO, NO}
HelpContext = $(!IDH_DB_OEMNADAR2_INS)
[TcnsEisaDlg]
DlgType = "RadioCombination"
Label1 = $(SlotNumberLabel)
DlgTemplate = "SINGLE_COMBO"
Caption = $(TcnsEISACaption)
Combo1List = $(EisaSlotTextList)
Combo1Out = $(EisaSlotTextDlgDefault)
RadioIn = {}
ComboListItemsIn = {Combo1List}
ComboListItemsOut = {Combo1Out}
CBOptionsGreyed = {}
EditTextIn = ""
EditTextLim = ""
NotifyFields = {NO}
HelpContext = $(!IDH_DB_OEMNADAR3_INS)
[Identify]
set Status = STATUS_SUCCESSFUL
set Identifier = NetAdapter
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_Set
endif
set PlatformList = ^(PlatformsSupported, 1)
Ifcontains(i) $($1) in $(PlatformList)
goto ReturnOptions_Set
else
set Status = STATUS_NOTSUPPORTED
goto ReturnOptions_Exit
endif
else
set Status = STATUS_NOLANGUAGE
goto ReturnOptions_Exit
endif
ReturnOptions_Set = +
set OptionList = ^(OptList$($0), 1)
set OptionTextList = ^(OptList$($0), 2)
set Status = STATUS_SUCCESSFUL
ReturnOptions_Exit = +
Return $(Status) $(OptionList) $(OptionTextList)
[GeneralConstants]
from = ""
to = ""
ExitCodeOk = 0
ExitCodeCancel = 1
ExitCodeFatal = 2
Key_Null = ""
MAXIMUM_ALLOWED = 33554432
RegistryErrorIndex = NO_ERROR
Key_Product = ""
Key_HardwareParameters = ""
TRUE = 1
FALSE = 0
NoTitle = 0
ExitState = "Active"
OldVersionExisted = $(FALSE)
DriverPath = $(!STF_NTPATH)\drivers
[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
[PlatformsSupported]
ISA
EISA
MCA
[Install-Option]
Debug-Output "$(STF_CONTEXTINFNAME): Entering Install-Option"
set STF_VITAL = ""
ifstr(i) $(AddCopy) == "YES"
set STF_VITAL = "YES"
AddSectionFilesToCopyList Files-Driver $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
endif
ifstr(i) $(DoCopy) == "YES"
set STF_VITAL = "YES"
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
endif
ifstr(i) $(DoConfig) == "YES"
endif
exit
[Install-Update]
Debug-Output "$(STF_CONTEXTINFNAME): Entering Install-Update"
set STF_VITAL = "YES"
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-Driver $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
exit
[InstallOption]
; set !DebugOutputControl = 1
; set !STF_DISPLAYDEBUGOUTPUT = 1
set TccOption = $($1)
set SrcDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)
Debug-Output "$(STF_CONTEXTINFNAME): Entering InstallOption"
Debug-Output "$(STF_CONTEXTINFNAME): STF_CWDIR: .$(!STF_CWDIR)."
Debug-Output "$(STF_CONTEXTINFNAME): STF_LANGUAGE: .$(!STF_LANGUAGE)."
Debug-Output "$(STF_CONTEXTINFNAME): !NTN_RegBase .$(!NTN_RegBase)."
Debug-Output "$(STF_CONTEXTINFNAME): !NTN_SoftwareBase .$(!NTN_SoftwareBase)."
Debug-Output "$(STF_CONTEXTINFNAME): TccOption: .$(TccOption). SrcDir: .$(SrcDir)."
Debug-Output "$(STF_CONTEXTINFNAME): AddCopy: .$(AddCopy). DoCopy: .$(DoCopy). DoConfig: .$(DoConfig)."
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) NOT-IN $(LanguageList)
Return STATUS_NOLANGUAGE
endif
set-subst LF = "\n"
read-syms GeneralConstants
read-syms FileConstants
set OptionNameList = ^(OptList$(!STF_LANGUAGE), 1 )
set OptionHdwrNameList = ^(OptList$(!STF_LANGUAGE), 3 )
set OptionHdwrTitleList = ^(OptList$(!STF_LANGUAGE), 4 )
set OptionHdwrDescList = ^(OptList$(!STF_LANGUAGE), 5 )
set ProductHdwrName = *($(OptionHdwrNameList),+
~($(OptionNameList), $($1)))
set ProductHdwrTitle = *($(OptionHdwrTitleList),+
~($(OptionNameList), $($1)))
set ProductHdwrDesc = *($(OptionHdwrDescList),+
~($(OptionNameList), $($1)))
Debug-Output "$(STF_CONTEXTINFNAME): ProductHdwrName .$(ProductHdwrName)."
Debug-Output "$(STF_CONTEXTINFNAME): ProductHdwrTitle .$(ProductHdwrTitle)."
Debug-Output "$(STF_CONTEXTINFNAME): ProductHdwrDesc .$(ProductHdwrDesc)."
read-syms DialogConstants$(!STF_LANGUAGE)
ifstr(i) $(!NTN_Origination) == "NCPA"
set Continue = "OK"
endif
read-syms FileConstants$(!STF_LANGUAGE)
detect date
set-title $(FunctionTitle)
set to = InstallOptionDispatch
set from = InstallOptionDispatch
set CommonStatus = STATUS_SUCCESSFUL
EndWait
InstallOptionDispatch = +
Debug-Output "$(STF_CONTEXTINFNAME): Entering InstallOptionDispatch"
Ifstr(i) $(!NTN_InstallMode) == deinstall
set StartLabel = RemoveAdapterFromRegistry
else-Ifstr(i) $(!NTN_InstallMode) == Update
set StartLabel = UpgradeSoftware
else-Ifstr(i) $(!NTN_InstallMode) == bind
set StartLabel = CheckAdapterBinding
else-Ifstr(i) $(!NTN_InstallMode) == configure
set StartLabel = GetAdapterConfigFromRegistry
Ifstr(i) $(KeyName_Software) == $(!NTN_RegBase)
Debug-Output "$(STF_CONTEXTINFNAME): Cannot configure driver software."
Shell $(UtilityInf), RegistryErrorString, CANNOT_CONFIGURE_SOFTWARE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:RegistryErrorString
goto ShellCodeError
endif
set Error = $($R0)
set from = InstallOptionExit
set to = InstallOptionExit
goto SetNonFatalInfo
endif
else
set StartLabel = TestForExistingInstallation
set OEM_ABANDON_OPTIONS = {}
set OEM_ABANDON_SOFTWARE = FALSE
set OEM_ABANDON_ON = TRUE
endif
set InterruptValue = 2
set MemoryBaseValue = 53248
set IoBaseValue = 736
set SlotNumberValue = 1
set BusNumberValue = 0
set BusTypeValue = 1
set MediaTypeValue = 8
set PacketSizeValue = 1024
set NdisInterfaceIsa = 1
set NdisInterfaceEisa = 2
set Tc3047EisaIdValue = 1349464391
set Tc3147EisaIdValue = 1349464135
set from = $(FatalError)
set to = $(FatalError)
goto $(StartLabel)
TestForExistingInstallation = +
set OldVersionExisted = $(FALSE)
Debug-Output "$(STF_CONTEXTINFNAME): Entering TestForExistingInstallation"
OpenRegKey $(!REG_H_LOCAL) "" $(KeyName_Software) $(MAXIMUM_ALLOWED) Key_Product
Ifstr $(Key_Product) != $(Key_Null)
CloseRegKey $(Key_Product)
ifstr(i) $(!NTN_RegBase) == $(KeyName_Software)
Shell $(UtilityInf), VerExistedDlg, $(SoftwareTitle), $(SoftwareVersion)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:VerExistedDlg
goto ShellCodeError
endif
goto end
else
Shell $(UtilityInf), CardExistedDlg
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:CardExistedDlg
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
set OldVersionExisted = $(TRUE)
else
goto InstallOptionExit
endif
endif
endif
CopyAdapterFiles = +
Debug-Output "$(STF_CONTEXTINFNAME): Entering CopyAdapterFiles"
ifint $(OldVersionExisted) == $(TRUE)
ifstr(i) $(!NTN_InstallMode) == configure
goto GetAdapterConfigFromUser
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)
set ShellErrorSection = UtilityInf:DoAskSource
Goto ShellCodeError
Else-Ifstr(i) $($R0) == STATUS_FAILED
Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:RegistryErrorString
goto ShellCodeError
endif
set Error = $($R0)
Goto FatalError
Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
Goto ProcessSuccessExit
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)
set ShellErrorSection = UtilityInf:RegistryErrorString
goto ShellCodeError
endif
set Error = $($R0)
goto FatalError
endif
endif
endif
GetAdapterConfigFromRegistry = +
Debug-Output "$(STF_CONTEXTINFNAME): Entering GetAdapterConfigFromRegistry"
ifstr(i) $(!NTN_InstallMode) == "install"
goto GetAdapterConfigFromUser
else
Ifstr $(Key_Product) == $(Key_Null)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) Key_Product
Ifstr $(Key_Product) == $(Key_Null)
set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
Debug-Output $(STF_CONTEXTINFNAME)": Cannot find component product key"
goto FatalRegistryError
Endif
Endif
Shell $(UtilityInf) FindService, $(Key_Product)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:FindService
Goto ShellCodeError
Endif
Ifstr(i) $($R0) != NO_ERROR
Debug-Output "$(STF_CONTEXTINFNAME): Utility:FindService error: $($R0)"
Goto FatalRegistryError
endif
set Key_HardwareParameters = $($R2)
CloseRegKey $($R1)
Ifstr $(Key_HardwareParameters) == $(Key_Null)
set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
Debug-Output $(STF_CONTEXTINFNAME)": Cannot find component service"
goto FatalRegistryError
endif
set OldVersionExisted = $(TRUE)
set ValueName = ""
set ValueData = ""
set ValueStr = ""
set ValueList = {}
EnumRegValue $(Key_HardwareParameters) ValueList
ForListDo $(ValueList)
set ValueItem = $($)
set ValueName = *($(ValueItem),1)
set ValueData = *($(ValueItem),4)
Ifstr(i) $(ValueName) == "AdapterType"
set AdapterTypeValue = $(ValueData)
else-Ifstr(i) $(ValueName) == "BusNumber"
set BusNumberValue = $(ValueData)
else-Ifstr(i) $(ValueName) == "BusType"
set BusTypeValue = $(ValueData)
else-Ifstr(i) $(ValueName) == "Interrupt"
set InterruptValue = $(ValueData)
else-Ifstr(i) $(ValueName) == "IoBase"
set IoBaseValue = $(ValueData)
else-Ifstr(i) $(ValueName) == "MediaType"
set MediaTypeValue = $(ValueData)
else-Ifstr(i) $(ValueName) == "MemoryBase"
set MemoryBaseValue = $(ValueData)
else-Ifstr(i) $(ValueName) == "PacketSize"
set PacketSizeValue = $(ValueData)
else-Ifstr(i) $(ValueName) == "SlotNumber"
set SlotNumberValue = $(ValueData)
endif
Debug-Output "$(STF_CONTEXTINFNAME): $(ValueName) == .$(ValueData)."
EndForListDo
Endif
GetAdapterConfigFromUser = +
Debug-Output "$(STF_CONTEXTINFNAME): Entering GetAdapterConfigFromUser"
set from = GetAdapterConfigFromUser
set InterruptTextDlgDefault = *($(InterruptTextList),+
~($(InterruptValueList), +
$(InterruptValue)))
set MemoryBaseTextDlgDefault = *($(MemoryBaseTextList),+
~($(MemoryBaseValueList), +
$(MemoryBaseValue)))
set IoBaseTextDlgDefault = *($(IoBaseTextList),+
~($(IoBaseValueList), +
$(IoBaseValue)))
set SlotTextDlgDefault = ~($(SlotSupportValueList), +
$(SlotSupportValue))
ifstr(i) $(TccOption) == "tc$arcnet"
read-syms TcarcIsaDlg
else-ifstr(i) $(TccOption) == "tc$tcns"
read-syms TcnsIsaDlg
else-ifstr(i) $(TccOption) == "tc$3147"
read-syms TcnsEisaDlg
else
read-syms TcarcIsaDlg
endif
ui start "InputDlg"
ifstr(i) $(DLGEVENT) == "CONTINUE"
ifstr(i) $(TccOption) == "tc$3147e"
set SlotNumberValue = *($(SlotValueList),+
~($(SlotTextList),+
$(Combo1Out)))
else
set InterruptValue = *($(InterruptValueList),+
~($(InterruptTextList),+
$(Combo1Out)))
set IoBaseValue = *($(IoBaseValueList),+
~($(IoBaseTextList),+
$(Combo2Out)))
set MemoryBaseValue = *($(MemoryBaseValueList),+
~($(MemoryBaseTextList),+
$(Combo3Out)))
endif
ui pop 1
Debug-Output "$(STF_CONTEXTINFNAME): After Dialog..."
Debug-Output "$(STF_CONTEXTINFNAME): InterruptValue == .$(InterruptValue)."
Debug-Output "$(STF_CONTEXTINFNAME): IoBaseValue == .$(IoBaseValue)."
Debug-Output "$(STF_CONTEXTINFNAME): MemoryBaseValue == .$(MemoryBaseValue)."
Debug-Output "$(STF_CONTEXTINFNAME): SlotValue == .$(SlotValue)."
else-ifstr(i) $(DLGEVENT) == "CANCEL"
set CommonStatus = STATUS_USERCANCEL
Debug-Output "$(STF_CONTEXTINFNAME): Dialog Action Exit. Bye."
ui pop 1
goto InstallOptionExit
else
set CommonStatus = STATUS_USERCANCEL
ui pop 1
Debug-Output "$(STF_CONTEXTINFNAME): Dialog Action Unknown. Bye."
goto InstallOptionExit
endif
AddAdapterSoftwareToRegistry = +
Ifstr(i) $(!NTN_InstallMode) == configure
goto AddAdapterConfigurationToRegistry
Endif
ifint $(OldVersionExisted) == $(TRUE)
goto AddAdapterHardwareToRegistry
Endif
Shell $(UtilityInf), +
AddSoftwareComponent, +
$(Manufacturer), +
$(TccBaseName), +
$(TccBaseName), +
$(SoftwareTitle), +
$(STF_CONTEXTINFNAME), +
$(SoftwareImage), +
"kernel", "NDIS", {}, "",+
$(NetEventDLL)
Set OEM_ABANDON_SOFTWARE = TRUE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:AddSoftwareComponent
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterSoftware - add component error"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto FatalRegistryError
endif
Set Key_SoftwareProduct = $($R1)
Set Key_SoftwareNetRules = $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
set NewValueList = {+
{SoftwareType, $(NoTitle), $(!REG_VT_SZ), $(SoftwareType)},+
{MajorVersion, $(NoTitle), $(!REG_VT_DWORD), $(SoftwareMajorVersion)},+
{MinorVersion, $(NoTitle), $(!REG_VT_DWORD), $(SoftwareMinorVersion)},+
{Title, $(NoTitle), $(!REG_VT_SZ), $(SoftwareTitle)},+
{Description, $(NoTitle), $(!REG_VT_SZ), $(SoftwareDescription)},+
{ServiceName, $(NoTitle), $(!REG_VT_SZ), $(TccBaseName)},+
{InstallDate, $(NoTitle), $(!REG_VT_DWORD), *($(Now),1)}+
}
Shell $(UtilityInf), AddValueList, $(Key_SoftwareProduct), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:AddValueList
goto ShellCodeError
endif
Set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterSoftware - add value list error"
CloseRegKey $(Key_SoftwareProduct)
CloseRegKey $(Key_SoftwareNetRules)
goto FatalRegistryError
endif
Set NewValueList = {+
{type, $(NoTitle), $(!REG_VT_SZ), $(NetRuleSoftwareType)},+
{use, $(NoTitle), $(!REG_VT_SZ), $(NetRuleSoftwareUse)}, +
{bindform, $(NoTitle), $(!REG_VT_SZ), $(NetRuleSoftwareBindForm)}, +
{class, $(NoTitle), $(!REG_VT_MULTI_SZ), $(NetRuleSoftwareClass)}, +
{bindable, $(NoTitle), $(!REG_VT_MULTI_SZ), $(NetRuleSoftwareBindable)}, +
{InfOption, $(NoTitle), $(!REG_VT_SZ), $(TccOption)}+
}
Shell $(UtilityInf), AddValueList, $(Key_SoftwareNetRules), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:AddValueList
goto ShellCodeError
endif
Set RegistryErrorIndex = $($R0)
CloseRegKey $(Key_SoftwareProduct)
CloseRegKey $(Key_SoftwareNetRules)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterSoftware - add NetRule error"
goto FatalRegistryError
endif
AddAdapterHardwareToRegistry = +
Shell $(UtilityInf), +
AddHardwareComponent, +
$(ProductHdwrName), +
$(STF_CONTEXTINFNAME), +
$(KeyName_Software)
ifint $($R4) != -1
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
endif
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:AddHardwareComponent
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterHardware - add component error"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
goto FatalRegistryError
endif
set Key_HardwareNetRules = $($R2)
set Key_HardwareParameters = $($R3)
set AdapterNumber = $($R4)
set NewValueList = {+
{Manufacturer, $(NoTitle), $(!REG_VT_SZ), $(Manufacturer)},+
{Title, $(NoTitle), $(!REG_VT_SZ), "["$($R4)"] "$(ProductHdwrTitle)},+
{Description, $(NoTitle), $(!REG_VT_SZ), $(ProductHdwrDesc)},+
{ProductName, $(NoTitle), $(!REG_VT_SZ), $(ProductHdwrName)},+
{ServiceName, $(NoTitle), $(!REG_VT_SZ), $($R5)},+
{OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)},+
{InstallDate, $(NoTitle), $(!REG_VT_DWORD), *($(Now),1)}+
}
Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:AddValueList
goto ShellCodeError
endif
CloseRegKey $($R1)
set TempProdName = """"$(ProductHdwrName)$(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), $(TccOption)}+
}
Shell $(UtilityInf), AddValueList, $(Key_HardwareNetRules), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:AddValueList
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterHardware - add NetRule error"
CloseRegKey $(Key_HardwareParameters)
CloseRegKey $(Key_HardwareNetRules)
goto FatalRegistryError
endif
CloseRegKey $(Key_HardwareNetRules)
goto AddAdapterConfigurationToRegistry
AddAdapterConfigurationToRegistry = +
Debug-Output "$(STF_CONTEXTINFNAME): Entering AddAdapterConfigurationToRegistry"
Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardware$(Option)Description) $(BusInterfaceType) $(BusNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Shell $(UtilityInf), GetBusTypeNum
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:GetBusTypeNum
goto ShellCodeError
else
set BusTypeValue = $($R1)
set BusNumberValue = 0
endif
else
set BusTypeValue = $($R1)
set BusNumberValue = $($R2)
endif
ifstr(i) $(TccOption) == "tc$arcnet"
set NewValueList = {+
{AdapterType, $(NoTitle), $(!REG_VT_DWORD), $(NdisInterfaceIsa)},+
{BusNumber, $(NoTitle), $(!REG_VT_DWORD), $(BusNumberValue)},+
{BusType, $(NoTitle), $(!REG_VT_DWORD), $(BusTypeValue)},+
{Interrupt, $(NoTitle), $(!REG_VT_DWORD), $(InterruptValue)},+
{IoBase, $(NoTitle), $(!REG_VT_DWORD), $(IoBaseValue)},+
{MediaType, $(NoTitle), $(!REG_VT_DWORD), $(MediaTypeValue)},+
{MemoryBase, $(NoTitle), $(!REG_VT_DWORD), $(MemoryBaseValue)},+
{PacketSize, $(NoTitle), $(!REG_VT_DWORD), $(PacketSizeValue)},+
}
else-ifstr(i) $(TccOption) == "tc$tcns"
set NewValueList = {+
{AdapterType, $(NoTitle), $(!REG_VT_DWORD), $(NdisInterfaceIsa)},+
{BusNumber, $(NoTitle), $(!REG_VT_DWORD), $(BusNumberValue)},+
{BusType, $(NoTitle), $(!REG_VT_DWORD), $(BusTypeValue)},+
{Interrupt, $(NoTitle), $(!REG_VT_DWORD), $(InterruptValue)},+
{IoBase, $(NoTitle), $(!REG_VT_DWORD), $(IoBaseValue)},+
{MediaType, $(NoTitle), $(!REG_VT_DWORD), $(MediaTypeValue)},+
{MemoryBase, $(NoTitle), $(!REG_VT_DWORD), $(MemoryBaseValue)},+
{PacketSize, $(NoTitle), $(!REG_VT_DWORD), $(PacketSizeValue)},+
}
else-ifstr(i) $(TccOption) == "tc$3147e"
set NewValueList = {+
{AdapterType, $(NoTitle), $(!REG_VT_DWORD), $(NdisInterfaceEisa)},+
{BusNumber, $(NoTitle), $(!REG_VT_DWORD), $(BusNumberValue)},+
{BusType, $(NoTitle), $(!REG_VT_DWORD), $(BusTypeValue)},+
{EisaCompressedId, $(NoTitle), $(!REG_VT_DWORD), $(Tc3147EisaIdValue)},+
{MediaType, $(NoTitle), $(!REG_VT_DWORD), $(MediaTypeValue)},+
{PacketSize, $(NoTitle), $(!REG_VT_DWORD), $(PacketSizeValue)},+
{SlotNumber, $(NoTitle), $(!REG_VT_DWORD), $(SlotNumberValue)},+
}
else
set NewValueList = {+
{AdapterType, $(NoTitle), $(!REG_VT_DWORD), $(NdisInterfaceIsa)},+
{BusNumber, $(NoTitle), $(!REG_VT_DWORD), $(BusNumberValue)},+
{BusType, $(NoTitle), $(!REG_VT_DWORD), $(BusTypeValue)},+
{Interrupt, $(NoTitle), $(!REG_VT_DWORD), $(InterruptValue)},+
{IoBase, $(NoTitle), $(!REG_VT_DWORD), $(IoBaseValue)},+
{MediaType, $(NoTitle), $(!REG_VT_DWORD), $(MediaTypeValue)},+
{MemoryBase, $(NoTitle), $(!REG_VT_DWORD), $(MemoryBaseValue)},+
{PacketSize, $(NoTitle), $(!REG_VT_DWORD), $(PacketSizeValue)},+
}
Endif
Shell $(UtilityInf), AddValueList, $(Key_HardwareParameters), $(NewValueList)
CloseRegKey $(Key_HardwareParameters)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:AddValueList
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterConfiguration - add value list error"
goto FatalRegistryError
endif
EndWait
goto ProcessSuccessExit
CheckAdapterBinding =+
Debug-Output "$(STF_CONTEXTINFNAME): Entering CheckAdapterBinding"
set Error = "CheckAdapterBinding: not required for this adapter"
goto FatalError
RemoveAdapterFromRegistry = +
Debug-Output "$(STF_CONTEXTINFNAME): Entering RemoveAdapterFromRegistry"
OpenRegKey $(!REG_H_LOCAL) "" $(KeyName_Software) $(MAXIMUM_ALLOWED) KeyToReferenceCount
Ifstr $(KeyToReferenceCount) == ""
Debug-Output "$(STF_CONTEXTINFNAME): Could not open Software Base Key"
set RefCountBeforeRemove = 2
goto InstallOptionExit
endif
GetRegValue $(KeyToReferenceCount),"RefCount", RefCountInfo
set RefCountBeforeRemove = *($(RefCountInfo), 4)
CloseRegKey $(KeyToReferenceCount)
Debug-Output "$(STF_CONTEXTINFNAME): Removing Hardware Component"
Shell $(UtilityInf), +
RemoveHardwareComponent, +
$(Manufacturer), +
$(TccBaseName), +
$(!NTN_RegBase)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:RemoveHardwareComponent
goto ShellCodeError
endif
Ifstr(i) $($R0) != NO_ERROR
Ifstr(i) $($R0) != REF_COUNT_NOT_ZERO
goto FatalRegistryError
endif
endif
ifint $(RefCountBeforeRemove) == 1
OpenRegKey $(!REG_H_LOCAL) "" $(KeyName_SoftwareRoot) $(MAXIMUM_ALLOWED) Key_SoftwareRoot
EnumRegKey $(Key_SoftwareRoot) KeyList
EnumRegValue $(Key_SoftwareRoot) ValueList
CloseRegKey $(Key_SoftwareRoot)
Debug-Output "$(STF_CONTEXTINFNAME): Reg Key .$(KeyName_SoftwareRoot). opened"
Debug-Output "$(STF_CONTEXTINFNAME): KeyList == .$(KeyList)."
Debug-Output "$(STF_CONTEXTINFNAME): ValueList == .$(ValueList)."
ifstr $(KeyList) == "{}"
ifstr $(ValueList) == "{}"
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase) $(MAXIMUM_ALLOWED) Key_SoftwareBase
DeleteRegKey $(Key_SoftwareBase) $(Manufacturer)
CloseRegKey $(Key_SoftwareBase)
endif
endif
endif
goto InstallOptionExit
UpgradeSoftware = +
Debug-Output "$(STF_CONTEXTINFNAME): Entering UpgradeSoftware"
ifstr(i) $(KeyName_Software) == $(!NTN_RegBase)
OpenRegKey $(!REG_H_LOCAL) "" $(KeyName_Software) $(MAXIMUM_ALLOWED) Key_Product
Ifstr $(Key_Product) != $(Key_Null)
GetRegValue $(Key_Product),"MajorVersion", VersionInfo
set Version = *($(VersionInfo), 4)
Shell $(UtilityInf), GetInfFileNameFromRegistry, $(Key_Product)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:GetFileNameFromRegistry
goto ShellCodeError
endif
set !UG_Filename = $($R0)
ifstr(i) $(!UG_Filename) != ""
install "Install-Update"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
goto FatalError
endif
endif
SetRegValue $(Key_Product) {MajorVersion, $(NoTitle), $(!REG_VT_SZ), $(SoftwareMajorVersion)}
SetRegValue $(Key_Product) {MinorVersion, $(NoTitle), $(!REG_VT_SZ), $(SoftwareMinorVersion)}
ifint $(Version) != $(SoftwareVersion)
Debug-Output "$(STF_CONTEXTINFNAME): Version .$(Version). != SoftwareVersion .$(SoftwareVersion)."
endif
CloseRegKey $(Key_Product)
else
goto FatalRegistryError
endif
else
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) NetworkCardKey
Ifstr(i) $(NetworkCardKey) != $(Key_Null)
GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
set ServiceName = *($(ServiceNameInfo), 4)
OpenRegKey $(NetworkCardKey) "" "NetRules" $(MAXIMUM_ALLOWED) NetRuleKey
Ifstr(i) $(NetRuleKey) != $(Key_Null)
Debug-Output "$(STF_CONTEXTINFNAME): NetRuleKey .$(NetRuleKey). != Key_Null .$(Key_Null)."
else
goto FatalRegistryError
endif
CloseRegKey $(NetRules)
CloseRegKey $(NetworkCardKey)
else
goto FatalRegistryError
endif
OpenRegKey $(!REG_H_LOCAL) +
"" $(!NTN_ServiceBase)"\"$(ServiceName) +
$(MAXIMUM_ALLOWED) +
ServiceKey
Ifstr(i) $(ServiceKey) != $(Key_Null)
CloseRegKey $(ServiceKey)
else
goto FatalRegistryError
endif
endif
;
; Enumerate all netcards installed of this type and update them
;
set iSearch = 1
nextnetcard = +
Shell $(UtilityInf), FindNextNetworkCard, $(TccBaseName), $(iSearch)
set KeyNetcard = $($R0)
set iSearch = $($R1)
Debug-Output "OemNadEp.Inf: FindNextNetworkCard "$(KeyNetcard)","$(iSearch)
Ifstr $(KeyNetcard) != $(KeyNull)
Debug-Output "OemNadEp.Inf: Setting OperationsSupport value"
SetRegValue $(KeyNetcard) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)}
CloseRegKey $(KeyNetcard)
goto nextnetcard
Endif
goto InstallOptionExit
ProcessSuccessExit = +
goto InstallOptionExit
ProcessAbandonInstall = +
ForListDo $(OEM_ABANDON_OPTIONS)
Shell $(UtilityInf), +
RemoveHardwareComponent, +
$(Manufacturer), +
$(TccBaseName), +
$($)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:RemoveHardwareComponent
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto FatalRegistryError
endif
EndForListDo
Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
Shell $(UtilityInf), +
RemoveSoftwareComponent, +
$(Manufacturer), +
$(TccBaseName), +
FALSE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:RemoveSoftwareComponent
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto FatalRegistryError
endif
endif
goto InstallOptionExit
ProcessWarningMessage = +
Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = SubroutineInf:SetupMessage
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(to)
else-ifstr(i) $($R1) == "CANCEL"
goto $(from)
else
goto "InstallOptionExit"
endif
SetNonFatalInfo = +
Set CommonStatus = STATUS_USERCANCEL
Set Severity = STATUS
goto ProcessNonFatalMessage
ProcessNonFatalMessage = +
ifstr(i) $(Error) == ""
Set Severity = NONFATAL
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:RegistryErrorString
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = SubroutineInf:SetupMessage
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(from)
else
goto "InstallOptionExit"
endif
FatalRegistryError = +
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:RegistryErrorString
goto ShellCodeError
endif
set Error = $($R0)
goto FatalError
FatalError = +
ifstr(i) $(Error) == ""
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:RegistryErrorString
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
set ShellErrorSection = UtilityInf:SetupMessage
goto ShellCodeError
endif
goto SetFailedStatusAndExit
ShellCodeError = +
Debug-Output $(STF_CONTEXTINFNAME)": Shell error, $(ShellErrorSection)"
set DlgType = "MessageBox"
set STF_MB_TITLE = "Error: "$(FunctionTitle)
set STF_MB_TEXT = "Shell Code Error"
set STF_MB_TYPE = 1
set STF_MB_ICON = 3
set STF_MB_DEF = 1
ui start "Error Message"
goto SetFailedStatusAndExit
SetFailedStatusAndExit = +
set CommonStatus = STATUS_FAILED
ifstr(i) $(OEM_ABANDON_ON) == TRUE
set OEM_ABANDON_ON = FALSE
goto ProcessAbandonInstall
endif
goto InstallOptionExit
InstallOptionExit = +
Return $(CommonStatus)