; ------------------------------------------------------------------------ ; Microsoft Windows NT 4 Driver Installation ; Copyright 1995 Texas Instruments Inc. ; Copyright 1997 Racore Computer Products Inc. ; (0.05 (960930)) ; ------------------------------------------------------------------------ ; ======================================================================== ; OEMSETUP for NT 4 ; ======================================================================== [Source Media Descriptions] 1 = "Racore ThunderLAN(tm) Driver Diskette" [Files-Driver] 1, tlan4.sys, SIZE=34816, RENAME=tlan4.sys [Files-Dll] 1, tlan.dll, SIZE=2560, RENAME=tlan.dll [Files-Help] 1, tlan.hlp, SIZE=12473, RENAME=tlan.hlp [OptListENG] ; -------------------------------------------------------------------------------------------------------------- ; LanOption, OptionText, ; ProductHdwrName, ; ProductHdwrTitle, ; ProductHdwrDesc, ; SoftwareTitle ; SoftwareDescription, ; DialogTitle ; -------------------------------------------------------------------------------------------------------------- OptList_1 = ti$tlan4, "Racore ThunderLAN(tm) Adapter",+ "tlan4",+ "ThunderLAN(tm) Adapter",+ "Racore ThunderLAN(tm) Adapter",+ "ThunderLAN(tm) Driver",+ "Racore ThunderLAN(tm) NDIS4 Driver",+ "Racore ThunderLAN(tm) Adapter Setup" [FileConstants] Manufacturer = "Racore" LanBaseName = "tlan4" SoftwareMajorVersion = 1 SoftwareMinorVersion = 0 NetEventDLL = "%SystemRoot%\System32\netevent.dll" IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll" UtilityInf = "UTILITY.INF" SubroutineInf = "SUBROUTN.INF" LanDialogDLL = "tlan.dll" SoftwareType = "driver" Exit_Code = 0 HelpFile = "tlan.hlp" SoftwareVersion = $(SoftwareMajorVersion)"."$(SoftwareMinorVersion) SoftwareImage = "\SystemRoot\System32\drivers\"$(LanBaseName)".sys" NetRuleSoftwareType = $(LanBaseName)"Sys ndisDriver "$(LanBaseName)"Driver" NetRuleSoftwareBindForm = """"$(LanBaseName)"Sys"" yes no container" NetRuleSoftwareBindable = {""$(LanBaseName)"Driver "$(LanBaseName)"Adapter non exclusive 100"} NetRuleSoftwareClass = {""$(LanBaseName)"Driver basic"} NetRuleSoftwareUse = $(SoftwareType) NetRuleHardwareType = $(LanBaseName)" "$(LanBaseName)"Adapter" NetRuleHardwareClass = {""$(LanBaseName)"Adapter basic"} NetRuleHardwareBindForm = " yes yes container" KeyName_SoftwareRoot = $(!NTN_SoftwareBase)"\"$(Manufacturer) KeyName_Software = $(KeyName_SoftwareRoot)"\"$(LanBaseName)"\CurrentVersion" KeywordTextList = ^(Keywords_$(LanOption), 1) KeywordRegTypeList = ^(Keywords_$(LanOption), 2) KeywordDefaultList = ^(Keywords_$(LanOption), 3) [Keywords_ti$tlan4] Keyword_1 = "AdapterType", $(!REG_VT_DWORD), 5 ; PCI Keyword_2 = "BusNumber", $(!REG_VT_DWORD), 0 Keyword_3 = "BusType", $(!REG_VT_DWORD), 5 ; PCI Keyword_4 = "MediaType", $(!REG_VT_DWORD), 1 ; Ethernet Keyword_5 = "NetworkAddress", $(!REG_VT_SZ), "" Keyword_6 = "Slot", $(!REG_VT_DWORD), 32 ; Auto detect Keyword_7 = "Network", $(!REG_VT_DWORD), 0 ; Auto detect Keyword_8 = "PhySelect", $(!REG_VT_DWORD), 32 ; Auto detect ; Keyword_9 = "DeviceId", $(!REG_VT_DWORD), 1280 ; 0500h ; Keyword_10 = "VendorId", $(!REG_VT_DWORD), 4172 ; 104ch [NetworkChoices] NetworkChoice_0 = "Auto Negotiate", 0 NetworkChoice_1 = "10 Mbit", 1 NetworkChoice_2 = "100 Mbit", 2 NetworkChoice_3 = "10 Mbit / Full Duplex", 3 NetworkChoice_4 = "100 Mbit / Full Duplex", 4 [PhySelectChoices] PhySelectChoice_0 = "Auto Select", 32 PhySelectChoice_1 = "Expansion Module", 0 PhySelectChoice_2 = "TLAN 10BaseT", 31 PhySelectChoice_3 = "TLAN/BitLevel AUI", 33 PhySelectChoice_4 = "Non-Managed Mii PHY", 34 [PciSlotChoices] PciSlotChoice_0 = "Auto Detect", 32 PciSlotChoice_1 = "Slot 0", 0 PciSlotChoice_2 = "Slot 1", 1 PciSlotChoice_3 = "Slot 2", 2 PciSlotChoice_4 = "Slot 3", 3 PciSlotChoice_5 = "Slot 4", 4 PciSlotChoice_6 = "Slot 5", 5 PciSlotChoice_7 = "Slot 6", 6 PciSlotChoice_8 = "Slot 7", 7 PciSlotChoice_9 = "Slot 8", 8 PciSlotChoice_10 = "Slot 9", 9 PciSlotChoice_11 = "Slot 10", 10 PciSlotChoice_12 = "Slot 11", 11 PciSlotChoice_13 = "Slot 12", 12 PciSlotChoice_14 = "Slot 13", 13 PciSlotChoice_15 = "Slot 14", 14 PciSlotChoice_16 = "Slot 15", 15 PciSlotChoice_17 = "Slot 16", 16 PciSlotChoice_18 = "Slot 17", 17 PciSlotChoice_19 = "Slot 18", 18 PciSlotChoice_20 = "Slot 19", 19 PciSlotChoice_21 = "Slot 20", 20 PciSlotChoice_22 = "Slot 21", 21 PciSlotChoice_23 = "Slot 22", 22 PciSlotChoice_24 = "Slot 23", 23 PciSlotChoice_25 = "Slot 24", 24 PciSlotChoice_26 = "Slot 25", 25 PciSlotChoice_27 = "Slot 26", 26 PciSlotChoice_28 = "Slot 27", 27 PciSlotChoice_29 = "Slot 28", 28 PciSlotChoice_30 = "Slot 29", 29 PciSlotChoice_31 = "Slot 30", 30 PciSlotChoice_32 = "Slot 31", 31 [FileConstantsENG] ProCaption = "Windows NT Setup" ProCancel = "Cancel" ProCancelMsg = "Your Networking Adapter is not correctly"+ "installed. Are you sure you wish to cancel"+ "copying driver files?" ProCancelCap = "Network Setup Message" ProText1 = "Copying:" ProText2 = "To:" [DialogConstantsENG] Help = "&Help" Exit = "Cancel" OK = "OK" HelpContext = 10 Continue = "Continue" Cancel = "C&ancel" PciSlotLabel = "PCI Slo&t:" NetAddressLabel = "Ne&twork Address:" NetworkLabel = "&Network Type:" PhySelectLabel = "Network &Interface:" PciSlotTextList = ^(PciSlotChoices, 1) PciSlotValueList = ^(PciSlotChoices, 2) NetworkTextList = ^(NetworkChoices, 1) NetworkValueList = ^(NetworkChoices, 2) PhySelectTextList = ^(PhySelectChoices, 1) PhySelectValueList = ^(PhySelectChoices, 2) [LanDialog_ti$tlan4] DlgTemplate = "DLG_TLAN" DlgType = "RadioCombination" Caption = $(DialogTitle) Combo1Label = $(PciSlotLabel) Combo1List = $(PciSlotTextList) Combo1Out = *($(PciSlotTextList),+ ~($(PciSlotValueList), + $(SlotValue))) Combo2Label = $(PhySelectLabel) Combo2List = $(PhySelectTextList) Combo2Out = *($(PhySelectTextList),+ ~($(PhySelectValueList), + $(PhySelectValue))) Combo3Label = $(NetworkLabel) Combo3List = $(NetworkTextList) Combo3Out = *($(NetworkTextList),+ ~($(NetworkValueList), + $(NetworkValue))) Edit1Label = $(NetAddressLabel) EditTextIn = { $(NetworkAddressValue) } CheckItemsIn = {} RadioIn = {} ComboListItemsIn = {Combo1List, Combo2List, Combo3List} ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out} CBOptionsGreyed = {} EditTextLim = {17} NotifyFields = {NO} [LanDialog_ti$tlan4_PostProcess] SlotValue = *($(PciSlotValueList), + ~($(PciSlotTextList),+ $(Combo1Out))) PhySelectValue = *($(PhySelectValueList), + ~($(PhySelectTextList),+ $(Combo2Out))) NetworkValue = *($(NetworkValueList), + ~($(NetworkTextList),+ $(Combo3Out))) NetworkAddressValue = *($(EditTextOut),1) [Identify] ;; set !DebugOutputControl = 1 ;; set !STF_DISPLAYDEBUGOUTPUT = 1 Debug-Output "$(STF_CONTEXTINFNAME): Entering Identify" set Status = STATUS_SUCCESSFUL set Identifier = NetAdapter set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) [ReturnOptions] Debug-Output "$(STF_CONTEXTINFNAME): Entering 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) [LanguagesSupported] ENG [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 [ProductType] STF_PRODUCT = Winnt STF_PLATFORM = I386 [PlatformsSupported] ISA EISA PCI [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 AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Help $(SrcDir) $(!STF_WINDOWSSYSPATH) 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 AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Help $(SrcDir) $(!STF_WINDOWSSYSPATH) set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList exit [InstallOption] ;; set !DebugOutputControl = 1 ;; set !STF_DISPLAYDEBUGOUTPUT = 1 set LanOption = $($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): LanOption: .$(LanOption). 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 ForListDo $(KeywordTextList) set Default = *($(KeywordDefaultList),$(#)) set $($)Value = $(Default) Debug-Output "$(STF_CONTEXTINFNAME): Default for .$($). = .$(Default)." EndForListDo 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 SoftwareTitleList = ^(OptList$(!STF_LANGUAGE), 6 ) set SoftwareDescriptionList = ^(OptList$(!STF_LANGUAGE), 7 ) set DialogTitleList = ^(OptList$(!STF_LANGUAGE), 8 ) set ProductHdwrName = *($(OptionHdwrNameList),+ ~($(OptionNameList), $($1))) set ProductHdwrTitle = *($(OptionHdwrTitleList),+ ~($(OptionNameList), $($1))) set ProductHdwrDesc = *($(OptionHdwrDescList),+ ~($(OptionNameList), $($1))) set SoftwareTitle = *($(SoftwareTitleList),+ ~($(OptionNameList), $($1))) set SoftwareDescription = *($(SoftwareDescriptionList),+ ~($(OptionNameList), $($1))) set DialogTitle = *($(DialogTitleList),+ ~($(OptionNameList), $($1))) read-syms DialogConstants$(!STF_LANGUAGE) ifstr(i) $(!NTN_Origination) == "NCPA" set Continue = "OK" endif read-syms FileConstants$(!STF_LANGUAGE) detect date set-title $(DialogTitle) 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 set DoConfig = YES 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 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 ExistingValueList = {} EnumRegValue $(Key_HardwareParameters) ExistingValueList ForListDo $(ExistingValueList) set ValueEntry = $($) set ValueName = *($(ValueEntry),1) set ValueData = *($(ValueEntry),4) set $(ValueName)Value = $(ValueData) Debug-Output $(STF_CONTEXTINFNAME)": Registry $(ValueName) = .$(ValueData)." EndForListDo Endif GetAdapterConfigFromUser = + Debug-Output "$(STF_CONTEXTINFNAME): Entering GetAdapterConfigFromUser" Ifstr(i) $(DoConfig) == "YES" LoadLibrary $(Media) $(!STF_WINDOWSSYSPATH)\$(LanDialogDLL) hLib set from = GetAdapterConfigFromUser read-syms LanDialog_$(LanOption) SetHelpFile $(!STF_WINDOWSSYSPATH)"\"$(HelpFile) 10 10 10 ui start "InputDlg" $(hLib) ifstr(i) $(DLGEVENT) == "CONTINUE" ui pop 1 read-syms LanDialog_$(LanOption)_PostProcess ifstr(i) $(LanOption) == "ti$tlan4" Debug-Output "$(STF_CONTEXTINFNAME): SlotValue .$(SlotValue)." endif Debug-Output "$(STF_CONTEXTINFNAME): ConnectionValue .$(ConnectionValue)." Debug-Output "$(STF_CONTEXTINFNAME): NetworkAddressValue .$(NetworkAddressValue)." else-ifstr(i) $(DLGEVENT) == "CANCEL" set CommonStatus = STATUS_USERCANCEL Debug-Output "$(STF_CONTEXTINFNAME): Dialog Action Exit. Bye." ui pop 1 goto InstallOptionExit else ui pop 1 Debug-Output "$(STF_CONTEXTINFNAME): Dialog Action Unknown. Bye." goto InstallOptionExit endif endif AddAdapterSoftwareToRegistry = + Ifstr(i) $(!NTN_InstallMode) == configure goto AddAdapterConfigurationToRegistry Endif ifint $(OldVersionExisted) == $(TRUE) goto AddAdapterHardwareToRegistry Endif Shell $(UtilityInf), + AddSoftwareComponent, + $(Manufacturer), + $(LanBaseName), + $(LanBaseName), + $(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), $(LanBaseName)},+ {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), $(LanOption)}+ } 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)},+ {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), $(LanOption)}+ } 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,$(ProductHdwrDesc) $(BusTypeValue) $(BusNumberValue) 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 Debug-Output "$(STF_CONTEXTINFNAME): Entering AddAdapterConfigurationToRegistry" set NewValueList = "{}" ForListDo $(KeywordTextList) set NewValueEntry = { $($), $(NoTitle), *($(KeywordRegTypeList),$(#)), $($($)Value) } Debug-Output "$(STF_CONTEXTINFNAME): NewValueList Entry = .$(NewValueEntry)." set NewValueList = >($(NewValueList), $(NewValueEntry)) EndForListDo 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), + $(LanBaseName), + $(!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" 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_DWORD), $(SoftwareMajorVersion)} SetRegValue $(Key_Product) {MinorVersion, $(NoTitle), $(!REG_VT_DWORD), $(SoftwareMinorVersion)} ifint $(Version) != $(SoftwareVersion) Debug-Output "$(STF_CONTEXTINFNAME): Version .$(Version). != SoftwareVersion .$(SoftwareVersion)." endif CloseRegKey $(Key_Product) endif goto InstallOptionExit ProcessSuccessExit = + goto InstallOptionExit ProcessAbandonInstall = + ForListDo $(OEM_ABANDON_OPTIONS) Shell $(UtilityInf), + RemoveHardwareComponent, + $(Manufacturer), + $(LanBaseName), + $($) 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), + $(LanBaseName), + 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: "$(DialogTitle) 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)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.