[Identification] OptionType = NetAdapter [PlatformsSupported] PCI [Options] JT1ND [LanguagesSupported] ENG [OptionsTextENG] JT1ND = "PLANEX GN-1000SX Giga-Ether Adapter v2.0" [Source Media Descriptions] 1 = "PLANEX GN-1000SX Giga-Ether Adapter Setup Disk v2.0" , TAGFILE = jt1nd4.sys [FileConstants] UtilityInf = "UTILITY.INF" subroutineinf = "SUBROUTN.INF" SoftwareType = "driver" Exit_Code = 0 NetEventDLL = "%SystemRoot%\System32\netevent.dll" ;IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll" Manufacturer = "Level One" ProductMajorVersion = "1" ProductMinorVersion = "6" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) ProductSoftwareName = "JT1ND" ProductSoftwareImagePath = "\SystemRoot\System32\drivers\jt1nd4.sys" ProductSoftwareImagePath-351 = "\SystemRoot\System32\drivers\jt1nd3.sys" NetRuleSoftwareType = "JT1NDSys ndisDriver JT1NDDriver" NetRuleSoftwareUse = $(SoftwareType) NetRuleSoftwareBindForm = """JT1NDSys"" yes no container" NetRuleSoftwareClass = {"JT1NDDriver basic"} NetRuleSoftwareBindable = {"JT1NDDriver JT1NDAdapter non exclusive 100"} ProductHardwareName = "JT1ND" NetRuleHardwareType = "JT1ND JT1NDAdapter" NetRuleHardwareBindForm = " yes yes container" NetRuleHardwareClass = {"JT1NDAdapter basic"} ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters" DeserializeKeyword = "Deserialize" [HelpFileConstants] ;OptionHelpFile = "JatoCfgDll.hlp" OptionHelpFile35 = "jt1nd3.hlp" OptionHelpFilePath = $(SrcDir)"\" ;IDH_PARMLIST = 10 HelpId = 2 HelpContext = 1 MinHelpId = 1 MaxHelpId = 1 [GeneralConstants] from = "" to = "" ;ExitCodeOk = 0 ;ExitCodeCancel = 1 ;ExitCodeFatal = 2 KeyNull = "" MAXIMUM_ALLOWED = 33554432 RegistryErrorIndex = NO_ERROR KeyProduct = "" KeyParameters = "" TRUE = 1 FALSE = 0 NoTitle = 0 OldVersionExisted = $(FALSE) DeviceID = 1 VendorID = 5012 [DuplexModeTextList] DuplexMode_0 = "Auto Negotiate", 0 DuplexMode_1 = "Half Duplex", 1 DuplexMode_2 = "Full Duplex", 2 [SpeedTextList] Speed_0 = "Auto Negotiate", 0 Speed_1 = " 10 Mbit", 1 Speed_2 = " 100 Mbit", 2 Speed_3 = "1000 Mbit", 3 ;[MagicPacketTextList] ; MagicPacket_0 = "On", 0 ; MagicPacket_1 = "Off", 1 [PHYInterfaceTextList] PHYInterface_0 = "Auto", 0 PHYInterface_1 = "PCS", 1 PHYInterface_2 = "GMII", 3 PHYInterface_3 = "MII", 2 ;[IOModeTextList] ; IOMode_0 = "BusMaster", 0 ; IOMode_1 = "PIO", 1 [ListConstants] ; ; DuplexMode parameters ; DuplexModeKeyword = "DuplexMode" DuplexModeList = ^(DuplexModeTextList, 1) DuplexModeValues = ^(DuplexModeTextList, 2) DuplexModeIndex = *($(DuplexModeList),1) ; ; Speed Parameters ; SpeedKeyword = "Speed" SpeedList = ^(SpeedTextList, 1) SpeedValues = ^(SpeedTextList, 2) SpeedIndex = *($(SpeedList),1) ;; ;; Magic Packet Parameters ;; ;MagicPacketKeyword = "MagicPacket" ;MagicPacketList = ^(MagicPacketTextList, 1) ;MagicPacketValues = ^(MagicPacketTextList, 2) ;MagicPacketIndex = *($(MagicPacketList),1) ; ; PHY Interface Parameters ; PHYInterfaceKeyword = "PHYInterface" PHYInterfaceList = ^(PHYInterfaceTextList, 1) PHYInterfaceValues = ^(PHYInterfaceTextList, 2) PHYInterfaceIndex = *($(PHYInterfaceList),1) ;; ;; IO Mode Parameters ;; ;IOModeKeyword = "IOMode" ;IOModeList = ^(IOModeTextList, 1) ;IOModeValues = ^(IOModeTextList, 2) ;IOModeIndex = *($(IOModeList),1) ; ; Network Address parameters ; NetworkAddressKeyword = "NetworkAddress" NetworkAddressValue = "" ; ; Permanent Network Address parameters ; PermanentNetworkAddressKeyword = "PermanentNetworkAddress" PermanentNetworkAddressValue = "" MediaTypeKeyword = "MediaType" DefaultAddressValue = "" [date] Now = {} ? $(!LIBHANDLE) GetSystemDate [Identify] read-syms Identification ; set !G:DebugOutputControl = 1 Debug-Output "Identify Section Called with "$($0)","$($1)"." set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Debug-Output "Identify Section Returning "$(Status)","$(Identifier)","$(Media) Return $(Status) $(Identifier) $(Media) [ReturnOptions] ; set !G:DebugOutputControl = 1 Debug-Output "Return Options Section Called with "$($0)","$($1)","$($2)"." set Status = STATUS_FAILED set OptionList = {} set OptionTextList = {} set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) ifstr(i) $($1) == "" goto returnoptions endif set PlatformList = ^(PlatformsSupported, 1) Ifcontains(i) $($1) in $(PlatformList) goto returnoptions else set Status = STATUS_NOTSUPPORTED goto finish_ReturnOptions endif else set Status = STATUS_NOLANGUAGE goto finish_ReturnOptions endif returnoptions = + set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL finish_ReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) [InstallOption] ; set !G: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 Debug-Output "OEMSETUP.INF: STF_CWDDIR is: "$(!STF_CWDDIR) Debug-Output "OEMSETUP.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE) set-subst LF = "\n" read-syms GeneralConstants read-syms FileConstants read-syms ListConstants read-syms HelpFileConstants ; 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 = Begin set from = Begin set CommonStatus = STATUS_SUCCESSFUL ; set !G:DebugOutputControl = 1 Debug-Output "Install Options Section Called with "$($0)","$($1)","$($2)","$($3)","$($4)","$($5)","$($6)"." EndWait Begin = + Ifstr(i) $(!NTN_InstallMode) == deinstall set StartLabel = removeadapter else-Ifstr(i) $(!NTN_InstallMode) == Update set StartLabel = UpgradeSoftware else-Ifstr(i) $(!NTN_InstallMode) == bind set StartLabel = bindingadapter else-Ifstr(i) $(!NTN_InstallMode) == configure set CommonStatus = STATUS_REBOOT set StartLabel = configureadapter Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) Debug-Output "OEMSETNT.INF: Cannot configure the driver software." Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error: cannot get an error string." goto ShellCodeError endif set Error = $($R0) set from = end set to = end goto nonfatalinfo endif else set StartLabel = installadapter set OEM_ABANDON_OPTIONS = {} set OEM_ABANDON_SOFTWARE = FALSE set OEM_ABANDON_ON = TRUE set OptionHelpFilePath = $(SrcDir) endif set EditTextIn = "1" set from = $(fatal) set to = $(fatal) set NTVersionValue = "" OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion" $(!REG_KEY_READ) NTVersionKey ifstr(i) $(NTVersionKey) != "" GetRegValue $(NTVersionKey) "CurrentVersion" NTVersionValue CloseRegKey $(NTVersionKey) set NTVersion = *($(NTVersionValue),4) endif goto $(StartLabel) installadapter = + OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) CloseRegKey $(KeyProduct) ifstr(i) !(NTN_RegBase) == $(ProductKeyName) Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+ $(ProductVersion) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error: cannot get an error string." goto ShellCodeError endif goto end else Shell $(UtilityInf), CardExistedDlg ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error: cannot get an error string." goto ShellCodeError endif ifstr(i) $($R1) != "OK" set CommonStatus = STATUS_USERCANCEL goto end endif set OldVersionExisted = $(TRUE) endif Endif Goto adapteroptions configureadapter = + Ifstr(i) $(KeyProduct) == $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) == $(KeyNull) Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE Debug-Output "OEMSETNT.INF: Cannot find component product key" Goto fatalregistry Endif Endif GetRegValue $(KeyProduct) "ServiceName" RegServiceName Debug-Output "Install Options Install Mode = "$(!NTN_InstallMode)", ProductKeyName = "$(!NTN_RegBase)", ServiceName = "$(RegServiceName) set ServiceName = *($(RegServiceName),4) ifstr $(ServiceName) == "" Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE Debug-Output "OEMSETNT.INF: Cannot find component product key" Goto fatalregistry Endif Debug-Output "Install Options Install Mode = "$(!NTN_InstallMode)", ProductKeyName = "$(!NTN_RegBase)", ServiceName = "$(ServiceName) Debug-Output "OEMSETNT.INF: INF: Shelling to FindService" Shell $(UtilityInf) FindService, $(KeyProduct) Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: INF: FindService shell failure" Goto ShellCodeError Endif Debug-Output "OEMSETNT.INF: INF: Returned from FindService"$($R0)","$($R1)","$($R2)","$($R3)","$($R4)"." Ifstr(i) $($R0) != NO_ERROR Debug-Output "OEMSETNT.INF: INF: FindService Shell error: "$($R0) Goto fatalregistry endif set KeyParameters = $($R2) CloseRegKey $($R1) Ifstr $(KeyParameters) == $(KeyNull) set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE Debug-Output "OEMSETNT.INF: Cannot find component service" goto fatalregistry endif set OldVersionExisted = $(TRUE ) set ValueName = "" set ValueData = "" set ValueStr = "" set ValueList = {} EnumRegValue $(KeyParameters) ValueList ForListDo $(ValueList) set ValueItem = $($) set ValueName = *($(ValueItem),1) set ValueData = *($(ValueItem),4) Debug-Output "OEMSETNT.INF: Parm = "$(ValueName) ; ; Get parameter values from the registry ; Ifstr(i) $(ValueName) == "BusType" set BusInterfaceType = $(ValueData) else-ifstr(i) $(ValueName) == "BusNumber" set BusNumber = $(ValueData) endif EndForListDo adapteroptions = + set BusInterfaceType = 5 set from = adapteroptions Shell $(UtilityInf), GetPCIInformation, $(VendorID) $(DeviceID) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: Could not find PCI Device" set Error = $(CANNOT_FIND_ANY_CARD) set CommonStatus = USER_CANCEL set from = end goto nonfatal ; goto ShellCodeError endif ifstr(i) $($R0) == {} set Error = $(CANNOT_FIND_ANY_CARD) set CommonStatus = USER_CANCEL set from = end goto nonfatal endif set AdapterList = $($R0) ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ; ifstr(i) $(!AutoNetInterfaceType) != "" ; set BusInterfaceType = $(!AutoNetInterfaceType) ; else ; set BusInterfaceType = 5 ; endif ifstr(i) $(!AutoNetBusNumber) != "" set BusNumber = $(!AutoNetBusNumber) else set BusNumber = 0 endif goto nextstep endif Debug-Output "OEMSETNT.INF: NT Version = "$(NTVersion) ifstr(i) $(!NTN_InstallMode) == configure ifcontains(i) $(NTVersion) in {"3.50", "3.51"} ;permanent network address dialog begin read-syms FileDependentDlg1$(!STF_LANGUAGE) SetHelpFile $(OptionHelpFilePath)$(OptionHelpFile35) $(MinHelpId) $(MaxHelpId) $(HelpId) ui start "InputDlg" ifstr(i) $(DLGEVENT) == "CONTINUE" set PermanentNetworkAddressValue = $(EditTextOut) ui pop 1 else-ifstr(i) $(DLGEVENT) == "BACK" set CommonStatus = STATUS_USERCANCEL Debug-Output "OEMSETNT.INF: Action: exit. Bye." ui pop 1 goto end else ui pop 1 goto end endif ;permanent network address dialog end ;network address dialog begin read-syms FileDependentDlg2$(!STF_LANGUAGE) SetHelpFile $(OptionHelpFilePath35)$(OptionHelpFile) $(MinHelpId) $(MaxHelpId) $(HelpId) ui start "InputDlg" ifstr(i) $(DLGEVENT) == "CONTINUE" set NetworkAddressValue = $(EditTextOut) ui pop 1 else-ifstr(i) $(DLGEVENT) == "BACK" set CommonStatus = STATUS_USERCANCEL Debug-Output "OEMSETNT.INF: Action: exit. Bye." ui pop 1 goto end else ui pop 1 goto end endif ;network address dialog end ; Speed dialog begin read-syms FileDependentDlg3$(!STF_LANGUAGE) SetHelpFile $(OptionHelpFilePath)$(OptionHelpFile35) $(MinHelpId) $(MaxHelpId) $(HelpId) ui start "InputDlg" ifstr(i) $(DLGEVENT) == "CONTINUE" set SpeedIndex = $(Combo1Out) ui pop 1 else-ifstr(i) $(DLGEVENT) == "BACK" set CommonStatus = STATUS_USERCANCEL ui pop 1 goto end else ui pop 1 goto end endif set SpeedValue = *($(SpeedValues), ~($(SpeedList),$(SpeedIndex))) ; Speed dialog end ; DuplexMode type dialog begin read-syms FileDependentDlg4$(!STF_LANGUAGE) SetHelpFile $(OptionHelpFilePath)$(OptionHelpFile35) $(MinHelpId) $(MaxHelpId) $(HelpId) ui start "InputDlg" ifstr(i) $(DLGEVENT) == "CONTINUE" set DuplexModeIndex = $(Combo1Out) ui pop 1 else-ifstr(i) $(DLGEVENT) == "BACK" set CommonStatus = STATUS_USERCANCEL ui pop 1 goto end else ui pop 1 goto end endif set DuplexModeValue = *($(DuplexModeValues), ~($(DuplexModeList),$(DuplexModeIndex))) ; DuplexMode type dialog end ;; Magic Packet type dialog begin ; read-syms FileDependentDlg5$(!STF_LANGUAGE) ; SetHelpFile $(OptionHelpFilePath)$(OptionHelpFile35) $(MinHelpId) $(MaxHelpId) $(HelpId) ; ui start "InputDlg" ; ifstr(i) $(DLGEVENT) == "CONTINUE" ; set MagicPacketIndex = $(Combo1Out) ; ui pop 1 ; else-ifstr(i) $(DLGEVENT) == "BACK" ; set CommonStatus = STATUS_USERCANCEL ; ui pop 1 ; goto end ; else ; ui pop 1 ; goto end ; endif ; set MagicPacketValue = *($(MagicPacketValues), ~($(MagicPacketList),$(MagicPacketIndex))) ;; Magic Packet type dialog end ; PHY Interface type dialog begin read-syms FileDependentDlg6$(!STF_LANGUAGE) SetHelpFile $(OptionHelpFilePath)$(OptionHelpFile35) $(MinHelpId) $(MaxHelpId) $(HelpId) ui start "InputDlg" ifstr(i) $(DLGEVENT) == "CONTINUE" set PHYInterfaceIndex = $(Combo1Out) ui pop 1 else-ifstr(i) $(DLGEVENT) == "BACK" set CommonStatus = STATUS_USERCANCEL ui pop 1 goto end else ui pop 1 goto end endif set PHYInterfaceValue = *($(PHYInterfaceValues), ~($(PHYInterfaceList),$(PHYInterfaceIndex))) ; PHY Interface type dialog end ;; I/O Mode dialog begin ; read-syms FileDependentDlg7$(!STF_LANGUAGE) ; SetHelpFile $(OptionHelpFilePath)$(OptionHelpFile35) $(MinHelpId) $(MaxHelpId) $(HelpId) ; ui start "InputDlg" ; ifstr(i) $(DLGEVENT) == "CONTINUE" ; set IOModeIndex = $(Combo1Out) ; ui pop 1 ; else-ifstr(i) $(DLGEVENT) == "BACK" ; set CommonStatus = STATUS_USERCANCEL ; ui pop 1 ; goto end ; else ; ui pop 1 ; goto end ; endif ; set IOModeValue = *($(IOModeValues), ~($(IOModeList),$(IOModeIndex))) ;; I/O Mode dialog end StartWait Ifstr(i) $(KeyParameters) == $(KeyNull) Debug-Output "OEMSETNT.INF: *** KeyParameters is NULL at writeparameters" Endif set NewValueList = {+ {$(DuplexModeKeyword),$(NoTitle),$(!REG_VT_DWORD),$(DuplexModeValue)},+ {$(SpeedKeyword),$(NoTitle),$(!REG_VT_DWORD),$(SpeedValue)},+ {$(PHYInterfaceKeyword),$(NoTitle),$(!REG_VT_DWORD),$(PHYInterfaceValue)},+ {$(MediaTypeKeyword),$(NoTitle),$(!REG_VT_DWORD),1},+ {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+ {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+ {$(NetworkAddressKeyword),$(NoTitle),$(!REG_VT_SZ),$(NetworkAddressValue)},+ {$(PermanentNetworkAddressKeyword),$(NoTitle),$(!REG_VT_SZ),$(PermanentNetworkAddressValue)}} Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList) CloseRegKey $(KeyParameters) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR Debug-Output "OEMSETNT.INF: Registry error: Add value list" goto fatalregistry Endif EndWait else Debug-Output "OEMSETNT.INF: Starting JatoCfg against "$(ServiceName) RunProgram ExitCode "" "" $(!STF_WINDOWSSYSPATH)\JatoCfg.exe $(ServiceName) Debug-Output "OEMSETNT.INF: Returning from JatoCfg against "$(ServiceName)", Return Code = "$(ExitCode)"." Ifint $(ExitCode) == 1 set CommonStatus = STATUS_NO_EFFECT endif Shell "", SetDeserializeFlag, $(KeyNull) endif endif nextstep = + ifint $(OldVersionExisted) == $(TRUE) ifstr(i) $(!NTN_InstallMode) == configure goto successful endif endif StartWait Ifint $(OldVersionExisted) != $(FALSE) Goto installhardware Endif ifstr(i) $(!NTN_InstallMode) == "install" Ifstr(i) $(DoCopy) == "YES" Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES Ifint $($ShellCode) != $(!SHELL_CODE_OK) Goto ShellCodeError Else-Ifstr(i) $($R0) == STATUS_FAILED Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) Goto fatal Else-Ifstr(i) $($R0) == STATUS_USERCANCEL Goto successful Endif Set SrcDir = $($R1) Endif install "Install-Option" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal endif endif ifcontains(i) $(NTVersion) in {"3.50", "3.51"} Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), + $(ProductSoftwareName), + $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath-351), "kernel", "NDIS", {}, "",+ $(NetEventDLL), "" else Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), + $(ProductSoftwareName), + $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+ $(NetEventDLL), "" endif Set OEM_ABANDON_SOFTWARE = TRUE ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "OEMSETNT.INF: Registry error: add software components" CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) CloseRegKey $($R4) CloseRegKey $($R5) goto fatalregistry endif Set SoftProductKey = $($R1) Set SoftNetRuleKey = $($R2) Set SoftServiceKey = $($R3) Set SoftParameterKey = $($R4) Set SoftLinkageKey = $($R5) set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error." goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "OEMSETNT.INF: Registry error: add value list for software product." CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) goto fatalregistry endif set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+ {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, + {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, + {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error." goto ShellCodeError endif Set RegistryErrorIndex = $($R0) CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "OEMSETNT.INF: Registry error: add value list." goto fatalregistry endif installhardware =+ ForListDo $(AdapterList) set BusNumber = *($($),1) set DeviceNum = *($($),2) set FunctionNum = *($($),3) Debug-Output "Running PCI AdapterList BusNumber ="$(BusNumber)", DeviceNum ="$(DeviceNum)", FunctionNum = "$(FunctionNum)"." Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNumber), + $(DeviceNum), $(ProductHardware$(Option)Description), $(ProductHardwareName) "YES" ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Ouput "Shell Code = "$($ShellCode) goto ShellCodeError endif ; Debug-Ouput "Return IsNetCardAlreadyInstalled = "$($R0)","$($R1) ifstr $($R0) != "NO_ERROR" Debug-Ouput "Return code from IsNetCardAlreadyInstalled = "$($ShellCode) set Error = $($R0) goto fatal endif ifstr(i) $($R1) != "YES" Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName) ifint $($R4) != -1 Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4)) endif ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: Cannot add hardware component" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "OEMSETNT.INF: Registry error: add hardware component" CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) goto fatalregistry endif set KeyProduct = $($R1) set KeyAdapterRules = $($R2) set KeyParameters = $($R3) set AdapterNumber = $($R4) set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+ {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+ {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error" goto ShellCodeError endif CloseRegKey $(KeyProduct) Set KeyProduct = "" set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)"""" set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm) set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+ {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error." goto ShellCodeError endif CloseRegKey $(KeyAdapterRules) Set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait Debug-Output "OEMSETNT.INF: Registry error: add value list." CloseRegKey $(KeyParameters) goto fatalregistry Endif set-mul AdapterCFID = $(DeviceID) 65536 set-add AdapterCFID = $(AdapterCFID) $(VendorID) set NewValueList = {+ {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+ {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+ {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(DeviceNum)},+ {AdapterCFID,$(NoTitle),$(!REG_VT_DWORD),$(AdapterCFID)},+ {$(MediaTypeKeyword),$(NoTitle),$(!REG_VT_DWORD),1},+ {$(NetworkAddressKeyword),$(NoTitle),$(!REG_VT_SZ),$(DefaultAddressValue)},+ {$(PermanentNetworkAddressKeyword),$(NoTitle),$(!REG_VT_SZ),$(DefaultAddressValue)}} Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList) ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters) endif ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error." goto ShellCodeError endif Set RegistryErrorIndex = $($R0) Debug-Output "KeyParameters="$(KeyParameters) Shell "", SetDeserializeFlag, $(KeyParameters) CloseRegKey $(KeyParameters) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR Debug-Output "OEMSETNT.INF: Registry error: Add value list" goto fatalregistry Endif endif EndForListDo goto successful bindingadapter =+ set Error = "Binding: Sorry, not yet implemented." goto fatal removeadapter = + Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif else Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $(!NTN_RegBase) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif endif goto end UpgradeSoftware = + OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set !UG_Filename = $($R0) install "Install-Update" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS goto fatal endif SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)} SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)} CloseRegKey $(KeyProduct) Shell "", SetDeserializeFlag, $(KeyNull) else goto fatalregistry endif goto end successful = + goto end abandon = + ForListDo $(OEM_ABANDON_OPTIONS) Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $($) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif EndForListDo Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), FALSE ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: ShellCode error" goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif endif goto end warning = + Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R1) == "OK" goto $(to) else-ifstr(i) $($R1) == "CANCEL" goto $(from) else goto "end" endif nonfatalinfo = + Set CommonStatus = STATUS_USERCANCEL Set Severity = STATUS goto nonfatalmsg nonfatal = + Set Severity = NONFATAL goto nonfatalmsg nonfatalmsg = + ifstr(i) $(Error) == "" Set Severity = NONFATAL Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) endif Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R1) == "OK" goto $(from) else goto "end" endif fatalregistry = + Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal fatal = + ifstr(i) $(Error) == "" Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) endif Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif goto setfailed ShellCodeError = + set DlgType = "MessageBox" set STF_MB_TITLE = $(ShellCodeErrorTitle) set STF_MB_TEXT = $(ShellCodeErrorText) set STF_MB_TYPE = 1 set STF_MB_ICON = 3 set STF_MB_DEF = 1 ui start "Error Message" goto setfailed setfailed = + set CommonStatus = STATUS_FAILED ifstr(i) $(OEM_ABANDON_ON) == TRUE set OEM_ABANDON_ON = FALSE goto abandon endif goto end end = + goto term term = + Return $(CommonStatus) [Install-Option] ; set !G:DebugOutputControl = 1 set STF_VITAL = "" ifstr(i) $(AddCopy) == "YES" ifcontains(i) $(NTVersion) not-in {"3.50", "3.51"} AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-$(Option)-Cfg $(SrcDir) $(!STF_WINDOWSSYSPATH) else AddSectionFilesToCopyList Files-$(Option)-351 $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH) endif endif Debug-Output "OEMSETNT.INF: [Install-Option] DoCopy = "$(DoCopy) ifstr(i) $(DoCopy) == "YES" set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList endif ifstr(i) $(DoConfig) == "YES" endif Exit [Install-Update] set !G:DebugOutputControl = 1 set STF_VITAL = "" set STF_OVERWRITE = "VERIFYSOURCEOLDER" ifcontains(i) $(NTVersion) not-in {"3.50", "3.51"} AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-$(Option)-Cfg $(SrcDir) $(!STF_WINDOWSSYSPATH) else AddSectionFilesToCopyList Files-$(Option)-351 $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH) endif set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList exit [Signature] FileType = MICROSOFT_FILE [GetSignature] read-syms Signature return $(FileType) [ProductType] STF_PRODUCT = Winnt STF_PLATFORM = I386 ;[Files-Inf] ;2, oemsetup.inf, SIZE=35000, RENAME=$(!UG_Filename) [Files-JT1ND] 1, JT1ND4.SYS , SIZE=55000 [Files-JT1ND-351] 1, JT1ND3.SYS , SIZE=55000 [Files-JT1ND-Cfg] 1, JatoCfg.exe, SIZE=127000 1, JatoCfgDll.dll, SIZE=247000 1, JatoCfgDll.HLP, SIZE=35000 1, JatoProt.sys, SIZE=98000 [Files-Hlp] 1, JT1ND3.HLP , SIZE=35000 [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 = "Level One Communications' NetCelerator Family Adapter" ProductSoftwareDescription = $(FunctionTitle)" Driver" ProductHardwareJT1NDDescription = $(FunctionTitle) ProductSoftwareTitle = $(ProductSoftwareDescription) ProductHardwareJT1NDTitle = $(FunctionTitle) ShellCodeErrorTitle = "Error: "$(FunctionTitle) ShellCodeErrorText = "Shell Code Error." CANNOT_FIND_ANY_CARD = "Network card is not present in the system" ; ; ; set up for permanent network address ; [FileDependentDlg1ENG] DlgTemplate = "QUERY_PRODUCT_ID" Caption = $(FunctionTitle) EditTextLim = "" CBOptionsGreyed = {} HelpContext = $(HelpId) Caption = "Level One NetCelerator Family Adapter Setup" DlgText = "Your network adapter has a universally administered "+ "address(UAA) permanently assigned to it. The UAA "+ "is used to uniquely identify an adapter when more "+ "than one like adapter is present in the system. There "+ "is no need to specify this parameter if only one adapter "+ "is installed in the system."$(!LF)$(!LF) Edit1Label = "PermanentAddress" Continue = "Continue" Cancel = "Cancel" Help = "&Help" Exit = "E&xit Setup" DlgType = "Edit" DlgTemplate = "QUERY_PRODUCT_ID" EditTextLim = 12 EditTextIn = $(PermanentNetworkAddressValue) EditFocus = "ALL" ; ; ; set up for network address ; [FileDependentDlg2ENG] DlgTemplate = "QUERY_PRODUCT_ID" Caption = $(FunctionTitle) EditTextLim = "" CBOptionsGreyed = {} HelpContext = $(HelpId) Caption = "Level One NetCelerator Family Adapter Setup" DlgText = "Your network adapter has a universally administered "+ "address(UAA) permanently assigned to it. If you want "+ "to override the UAA, enter a 12-digit locally administered "+ "network address."$(!LF)$(!LF) Edit1Label = "NetworkAddress" Continue = "Continue" Cancel = "Cancel" Help = "&Help" Exit = "E&xit Setup" DlgType = "Edit" DlgTemplate = "QUERY_PRODUCT_ID" EditTextLim = 12 EditTextIn = $(NetworkAddressValue) EditFocus = "ALL" ; ; ; Speed dialog ; [FileDependentDlg3ENG] Caption = "Level One NetCelerator Family Adapter Setup" DlgText = "Choose the speed for the network adapter."$(LF)$(LF)+ "Selecting Auto Negotiate will cause the driver to determine "+ "the network speed automatically." Combo1Label = "&Network Speed:" DlgTemplate = "ADAP_PROTO_COMBO" DlgType = "Combination" Caption = $(FunctionTitle) Combo1List = $(SpeedList) Combo1Out = $(SpeedIndex) ComboListItemsIn = {Combo1List} ComboListItemsOut = {Combo1Out} EditTextLim = "" CBOptionsGreyed = {} HelpContext = $(HelpId) ; ; DuplexMode dialog ; [FileDependentDlg4ENG] Caption = "Level One NetCelerator Family Adapter Setup" DlgText = "Choose the duplex mode for the network adapter."$(LF)$(LF)+ "Selecting Auto Negotiate will cause the driver to determine "+ "the duplex mode automatically." Combo1Label = "&Duplex Mode:" DlgTemplate = "ADAP_PROTO_COMBO" DlgType = "Combination" Caption = $(FunctionTitle) Combo1List = $(DuplexModeList) Combo1Out = $(DuplexModeIndex) ComboListItemsIn = {Combo1List} ComboListItemsOut = {Combo1Out} EditTextLim = "" CBOptionsGreyed = {} HelpContext = $(HelpId) ;; ;; Magic Packet dialog ;; ;[FileDependentDlg5ENG] ; Caption = "Level One NetCelerator Family Adapter Setup" ; DlgText = "Choose to enable or disable MagicPacket mode for the network adapter."$(LF)$(LF)+ ; "TBD." ; Combo1Label = "&Magic Packet:" ; DlgTemplate = "ADAP_PROTO_COMBO" ; DlgType = "Combination" ; Caption = $(FunctionTitle) ; Combo1List = $(MagicPacketList) ; Combo1Out = $(MagicPacketIndex) ; ComboListItemsIn = {Combo1List} ; ComboListItemsOut = {Combo1Out} ; EditTextLim = "" ; CBOptionsGreyed = {} ; HelpContext = $(HelpId) ; ; PHY Interface dialog ; [FileDependentDlg6ENG] Caption = "Level One NetCelerator Family Adapter Setup" DlgText = "Choose the PHY Type for the network adapter."$(LF)$(LF)+ "Most applications should leave this parameter set to Auto" Combo1Label = "&PHY Type:" DlgTemplate = "ADAP_PROTO_COMBO" DlgType = "Combination" Caption = $(FunctionTitle) Combo1List = $(PHYInterfaceList) Combo1Out = $(PHYInterfaceIndex) ComboListItemsIn = {Combo1List} ComboListItemsOut = {Combo1Out} EditTextLim = "" CBOptionsGreyed = {} HelpContext = $(HelpId) ;; ;; I/O Mode dialog ;; ;[FileDependentDlg7ENG] ; Caption = "Level One NetCelerator Family Adapter Setup" ; DlgText = "Choose the I/O Mode for the network adapter."$(LF)$(LF)+ ; "Programmed I/O (PIO) should only be chosen for "+ ; "debugging purposes." ; Combo1Label = "&I/O Mode:" ; DlgTemplate = "ADAP_PROTO_COMBO" ; DlgType = "Combination" ; Caption = $(FunctionTitle) ; Combo1List = $(IOModeList) ; Combo1Out = $(IOModeIndex) ; ComboListItemsIn = {Combo1List} ; ComboListItemsOut = {Combo1Out} ; EditTextLim = "" ; CBOptionsGreyed = {} ; HelpContext = $(HelpId) ; ; This shell section finds the driver's parameter section in the registry, ; determines which service pack is installed, and sets the driver's ; "Deserialize" parameter accordingly. If NT4 Service Pack 4 or later is ; installed, the driver's deserialize support is enabled, otherwise it is ; disabled. [SetDeserializeFlag] Debug-Output "setDeserializeFlag: Entered" read-syms GeneralConstants read-syms FileConstants set KeyParameters = $($0) Debug-Output "KeyParameters="$(KeyParameters)" KeyNull="$(KeyNull) ifstr $(KeyParameters) == $(KeyNull) ; Find the driver's parameter section in the registry OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) == $(KeyNull) Debug-Output "OEMSETNT.INF: Cannot find component product key" Goto exit_SetDeserializeFlag Endif Debug-Output "KeyProduct="$(KeyProduct) GetRegValue $(KeyProduct) "ServiceName" RegServiceName Debug-Output "Install Options Install Mode = "$(!NTN_InstallMode)", ProductKeyName = "$(!NTN_RegBase)", RegServiceName = "$(RegServiceName) set ServiceName = *($(RegServiceName),4) ifstr $(ServiceName) == "" Debug-Output "OEMSETNT.INF: Cannot find component product key" Goto exit_SetDeserializeFlag Endif Debug-Output "Install Options Install Mode = "$(!NTN_InstallMode)", ProductKeyName = "$(!NTN_RegBase)", ServiceName = "$(ServiceName) Debug-Output "OEMSETNT.INF: INF: Shelling to FindService" Shell $(UtilityInf) FindService, $(KeyProduct) Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMSETNT.INF: INF: FindService shell failure" Goto exit_SetDeserializeFlag Endif Debug-Output "OEMSETNT.INF: INF: Returned from FindService"$($R0)","$($R1)","$($R2)","$($R3)","$($R4)"." Ifstr(i) $($R0) != NO_ERROR Debug-Output "OEMSETNT.INF: INF: FindService Shell error: "$($R0) Goto exit_SetDeserializeFlag endif set KeyParameters = $($R2) Debug-Output "KeyParameters="$(KeyParameters) CloseRegKey $($R1) Ifstr $(KeyParameters) == $(KeyNull) set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE Debug-Output "OEMSETNT.INF: Cannot find component service" goto exit_SetDeserializeFlag endif endif ; Figure out which service pack and set the Deserialize flag accordingly. set DeserializeValue = "0" set KeyName = "Software\Microsoft\Windows NT\CurrentVersion" OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access" goto set_DeserializeValue endif GetRegValue $(KeyHandle) "CurrentVersion" NTVersionValue ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) CloseRegKey $(KeyHandle) Debug-Output "GetRegValue of CurrentVersion failed. RegLastError="$(RegLastError) goto set_DeserializeValue endif set NTVersion = *($(NTVersionValue),4) Debug-Output "NTVersion="$(NTVersion) ifstr(i) $(NTVersion) != "4.0" CloseRegKey $(KeyHandle) goto set_DeserializeValue endif GetRegValue $(KeyHandle) "CSDVersion" NTCSDVersionValue ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) CloseRegKey $(KeyHandle) goto set_DeserializeValue endif set NTCSDVersion = *($(NTCSDVersionValue),4) Debug-Output "NTCSDVersion="$(NTCSDVersion) ifcontains(i) $(NTCSDVersion) in {"Service Pack 1", "Service Pack 2", "Service Pack 3"} Debug-Output "Clearing DeserializeValue." set DeserializeValue = "0" else Debug-Output "Setting DeserializeValue." set DeserializeValue = "1" endif CloseRegKey $(KeyHandle) set_DeserializeValue = + Debug-Output "DeserializeValue="$(DeserializeValue) ; Write the "Deserialize" parameter to the driver's registry section set NewValueList = {+ {$(DeserializeKeyword),$(NoTitle),$(!REG_VT_DWORD),$(DeserializeValue)}} Debug-Output "KeyParameters="$(KeyParameters) Debug-Output "NewValueList="$(NewValueList) Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList) Debug-Output "$ShellCode="$($ShellCode) CloseRegKey $(KeyParameters) exit_SetDeserializeFlag = + Debug-Output "setDeserializeFlag: Exit" ReturnDownload 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.