[Identification] OptionType = NetAdapter [PlatformsSupported] ISA EISA PCMCIA [LanguagesSupported] ENG [Options] PCMFAST [OptionsTextENG] PCMFAST = "Fast Ethernet PCCard" [Source Media Descriptions] 1 = "Fast Ethernet PCCard Device Driver Diskette" [Files-PCMFAST] 1,pcmfast.sys, SIZE=40000 [Files-Dll] 1,pcmfast.dll, SIZE=40000 [Files-Inf] 1, oemsetup.inf, SIZE=40000, RENAME=$(!UG_Filename) [date] Now = {} ? $(!LIBHANDLE) GetSystemDate [FileConstants] UtilityInf = "UTILITY.INF" ParamInf = "NCPARAM.INF" SubroutnInf = "SUBROUTN.INF" SoftwareType = "driver" NetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\Drivers\Pcmfast.Sys" Manufacturer = "ARGOSY" ProductMajorVersion = "3" ProductMinorVersion = "51" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) ProductSoftwareName = "Pcmfast" ProductSoftwareImagePath = "\SystemRoot\System32\drivers\pcmfast.sys" NetRuleSoftwareType = "pcmfastSys ndisDriver pcmfastDriver" NetRuleSoftwareUse = $(SoftwareType) NetRuleSoftwareBindForm = """PcmfastSys"" yes no container" NetRuleSoftwareClass = {"pcmfastDriver basic"} NetRuleSoftwareBindable = {"pcmfastDriver pcmfastAdapter non exclusive 100"} ProductHardwareName = "Pcmfast" NetRuleHardwareType = "pcmfast pcmfastAdapter" NetRuleHardwareBindForm = " yes yes container" NetRuleHardwareClass = {"pcmfastAdapter basic"} ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters" ProductSoftwareDescription = "Fast Ethernet Driver" ProductSoftwareTitle = "Fast Ethernet Driver" ProductHardwareDescription = "Fast Ethernet PCCard" ProductHardwareTitle = "Fast Ethernet PCCard" [PcmciaKeys] CardManufacturer = "PCMCIA" CardKeyName = "Fast Ethernet PCCard" PcmciaPath = $(!NTN_ServiceBase)"\Pcmcia\DataBase" PcmciaManufacturePath = $(!NTN_ServiceBase)"\Pcmcia\DataBase\"$(CardManufacturer) PcmciaProductPath = $(!NTN_ServiceBase)"\Pcmcia\DataBase\"$(CardManufacturer)"\"$(CardKeyName) PcmciaRMKeyName = $(!NTN_ServiceBase)"\resman" PcmciaRMDBKeyName = $(!NTN_ServiceBase)"\resman\MacDataBase" [GeneralConstants] KeyNull = "" MAXIMUM_ALLOWED = 33554432 KeyProduct = "" KeyParameters = "" PcmciaKey = "" PcmciaManufactureKey = "" PcmciaProductKey = "" NoTitle = 0 OldVersionExisted = FALSE DriverPath = $(!STF_NTPATH)\drivers [FileConstantsENG] ProCaption = "Windows NT Setup" ProCancel = "Cancel" ProCancelMsg = "The Fast Ethernet PCCard is not correctly installed."+ "Are you sure you want to cancel copying files?" ProCancelCap = "Network Setup Message" ProText1 = "Copying:" ProText2 = "To:" FunctionTitle = "Fast Ethernet PCCard Setup" [IRQChoices] IRQ0 = "3",3 IRQ1 = "4",4 IRQ2 = "5",5 IRQ3 = "7",7 IRQ4 = "9",9 IRQ5 = "10",10 IRQ6 = "11",11 IRQ7 = "12",12 IRQ8 = "15",15 [IOBaseAddrChoices] Base0 = "0x300",0x0300 Base1 = "0x320",0x0320 Base2 = "0x340",0x0340 Base3 = "0x360",0x0360 [MediaChoices] Media0 = "AutoDetect" Media1 = "10BaseT" Media2 = "BNC" Media3 = "AUI" [HexDigits] Hex0 = 0 Hex1 = 1 Hex2 = 2 Hex3 = 3 Hex4 = 4 Hex5 = 5 Hex6 = 6 Hex7 = 7 Hex8 = 8 Hex9 = 9 HexA = A HexB = B HexC = C HexD = D HexE = E HexF = F [DialogConstantsENG] Help = "&Help" Exit = "Cancel" OK = "OK" HelpContext = "" Continue = "Continue" Cancel = "Cancel" BadAddr1 = "Network Address must be 12 hexadecimal digits" BadAddr2 = "Network Address contains invalid hexadecimal digit: " BadAddr3 = "Network Address invalid, group bit must be 0" [FileDependentDlgENG] DlgType = "RadioCombination" DlgTemplate = "PCMFAST" Caption = "Fast Ethernet PCCard Setup" Combo1Label = "&IRQ Level:" Combo2Label = "I/O &Base:" Combo3Label = "&Media Type:" Label3 = "&Network Address:" Check1Label = "&WatchDog Timer Enable:" IrqList = ^(IRQChoices, 1) IoBaseList = ^(IOBaseAddrChoices, 1) MediaList = ^(MediaChoices, 1) MediaTypeValue = 0 Combo1List = $(IrqList) Combo1Out = $(IRQLevel) Combo2List = $(IoBaseList) Combo2Out = $(IOBaseAddress) Combo3List = $(MediaList) Combo3Out = $(Media) ComboListItemsIn = {Combo1List, Combo2List, Combo3List} ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out} CBOptionsGreyed = {} RCCtlFocusOn = 403 [Identify] read-syms Identification shell "" DebugControl set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) [ReturnOptions] shell "" DebugControl set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) ifstr(i) $($0) == "" set Status = STATUS_NOLANGUAGE goto ExitReturnOptions endif else set Status = STATUS_NOLANGUAGE goto ExitReturnOptions endif set PlatformList = ^(PlatformsSupported, 1) Ifcontains(i) $($1) NOT-IN $(PlatformList) ifstr(i) $($1) != "" set Status = STATUS_NOTSUPPORTED endif endif ExitReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) [InstallOption] set Option = $($1) set SrcDir = $($2) set AddCopy = $($3) set DoCopy = $($4) set DoConfig = $($5) read-syms GeneralConstants read-syms FileConstants read-syms FileDependentDlg$(!STF_LANGUAGE) read-syms DialogConstants$(!STF_LANGUAGE) read-syms FileConstants$(!STF_LANGUAGE) shell "" DebugControl StartWait set LanguageList = ^(LanguagesSupported, 1) Ifstr(i) $(!NTN_InstallMode) == deinstall set SubFunction = RemoveAdapter else-Ifstr(i) $(!NTN_InstallMode) == install set SubFunction = InstallAdapter else-Ifstr(i) $(!NTN_InstallMode) == update set SubFunction = UpgradeSoftware else-Ifstr(i) $(!NTN_InstallMode) == configure set SubFunction = ConfigureAdapter else set SubFunction = NoWay endif Shell "" $(SubFunction) EndWait return $($R0) [InstallAdapter] read-syms GeneralConstants read-syms FileConstants detect date set CurrentTime = *($(Now),1) set SrcDir = $(!p:SrcDir) set Option = $(!p:Option) set DoCopy = $(!p:DoCopy) set AddCopy = $(!p:AddCopy) set KeyProduct = $(KeyNull) set DoSetup = TRUE set OldVersionExisted = FALSE OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) CloseRegKey $(KeyProduct) ifstr(i) $(!NTN_RegBase) == $(ProductKeyName) Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle), + $(ProductVersion) ifstr(i) $($R1) != "OK" Return STATUS_FAILED endif else Shell $(UtilityInf), CardExistedDlg ifstr(i) $($R1) != "OK" Return STATUS_FAILED endif set OldVersionExisted = TRUE endif endif IfStr(i) $(DoSetup) == TRUE set NetworkAddress = "" ifint $(MediaTypeValue) == 0 set MediaValue = "AutoDetect" else set MediaValue = "10BaseT" endif set ReceiveTimer = 0 set DLLPATH = "" ifstr(i) $(DoCopy) == "YES" OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) CloseRegKey $(KeyProduct) set DLLPATH = $(!STF_CWDDIR) else set BuiltIn = "YES" ifstr(i) $(!NTN_Origination) == "NCPA" Set BuiltIn = "NO" endif Shell $(UtilityInf) DoAskSource $(!STF_CWDDIR) $(SrcDir) $(BuiltIn) set DLLPATH = $($R1) set SrcDir = $($R1) endif endif dowind =+ install "Install-Dll" Shell "" AdapterSetup IfStr(i) $($R0) != TRUE Return STATUS_USERCANCEL endif ifstr(i) $(MediaValue) == "AutoDetect" set MediaTypeValue = 0 else-ifstr(i) $(MediaValue) == "10BaseT" set MediaTypeValue = 1 else-ifstr(i) $(MediaValue) == "BNC" set MediaTypeValue = 1 else-ifstr(i) $(MediaValue) == "AUI" set MediaTypeValue = 1 endif IfStr(i) $(OldVersionExisted) == FALSE Shell "" SetCopy $(DoCopy) $(AddCopy) $(SrcDir) "Install-Option" IfStr(i) $($R0) == TRUE Shell "" SetSoftware $(CurrentTime) IfStr(i) $($R0) != TRUE Return STATUS_FAILED endif endif endif Shell "" SetHardware $(CurrentTime) IfStr(i) $($R0) == TRUE Shell "" WriteParameters endif endif IfStr(i) $($R0) == TRUE Return STATUS_SUCCESSFUL else Return STATUS_FAILED endif [ConfigureAdapter] set Option = $(!p:Option) read-syms GeneralConstants read-syms FileConstants read-syms FileDependentDlg$(!STF_LANGUAGE) set DLLPATH = $(!STF_CWDDIR) ifstr(i) $(!NTN_RegBase) == $(ProductKeyName) Shell $(UtilityInf) RegistryErrorString CANNOT_CONFIGURE_SOFTWARE Shell "" ShellError $($R0) Return STATUS_FAILED endif OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) == $(KeyNull) Shell $(UtilityInf) RegistryErrorString CANNOT_FIND_COMPONENT_SERVICE Shell "" ShellError $($R0) Return STATUS_FAILED endif Shell $(UtilityInf) FindService, $(KeyProduct) Ifstr(i) $($R0) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return STATUS_FAILED endif Set !KeyParameters = $($R2) CloseRegKey $($R1) Ifstr $(!KeyParameters) == $(KeyNull) Shell $(UtilityInf) RegistryErrorString CANNOT_FIND_COMPONENT_SERVICE Shell "" FatalError $($R0) Return STATUS_FAILED endif set ValueName = "" set ValueData = "" set ValueStr = "" set ValueList = {} EnumRegValue $(!KeyParameters) ValueList set NetworkAddress = "" ForListDo $(ValueList) set ValueItem = $($) set ValueName = *($(ValueItem),1) set ValueData = *($(ValueItem),4) Ifstr(i) $(ValueName) == "Transceiver" set MediaValue = $(ValueData) else-ifstr(i) $(ValueName) == "Interrupt" set IRQLevel = $(ValueData) else-ifstr(i) $(ValueName) == "IoBase" set IOBaseValue = $(ValueData) else-ifstr(i) $(ValueName) == "Speed" set SpeedValue = $(ValueData) else-ifstr(i) $(ValueName) == "NetworkAddress" set NetworkAddress = $(ValueData) else-ifstr(i) $(ValueName) == "ReceiveTimer" set ReceiveTimer = $(ValueData) endif EndForListDo ifstr(i) $(MediaValue) == "AutoDetect" set MediaTypeValue = 0 else-ifstr(i) $(MediaValue) == "10BaseT" set MediaTypeValue = 1 else-ifstr(i) $(MediaValue) == "BNC" set MediaTypeValue = 1 else-ifstr(i) $(MediaValue) == "AUI" set MediaTypeValue = 1 endif winagn =+ Shell "" AdapterSetup IfStr(i) $($R0) != TRUE Return STATUS_USERCANCEL endif ifstr(i) $(MediaValue) == "AutoDetect" set MediaTypeValue = 0 else-ifstr(i) $(MediaValue) == "10BaseT" set MediaTypeValue = 1 else-ifstr(i) $(MediaValue) == "BNC" set MediaTypeValue = 1 else-ifstr(i) $(MediaValue) == "AUI" set MediaTypeValue = 1 endif Shell "" WriteParameters IfStr(i) $($R0) == TRUE Return STATUS_SUCCESSFUL else Return STATUS_FAILED endif [NoWay] read-syms GeneralConstants Shell "" ShellError "NoWay" Return STATUS_FAILED [RemoveAdapter] read-syms GeneralConstants read-syms FileConstants set Option = $(!p:Option) Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $(!NTN_RegBase) ifstr(i) $($R0) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return STATUS_FAILURE endif Return STATUS_SUCCESSFUL [UpgradeSoftware] read-syms GeneralConstants read-syms FileConstants set SrcDir = $(!p:SrcDir) set Option = $(!p:Option) ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) == $(KeyNull) Return STATUS_FAILED endif set DoCopy = YES set AddCopy = YES Shell "" SetCopy $(DoCopy) $(AddCopy) $(SrcDir) "Install-Update" SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)} SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)} CloseRegKey $(KeyProduct) else OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) NetworkCardKey Ifstr(i) $(NetworkCardKey) == $(KeyNull) Return STATUS_FAILED endif GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo set ServiceName = *($(ServiceNameInfo), 4) OpenRegKey $(NetworkCardKey) "" "NetRules" $(MAXIMUM_ALLOWED) NetRuleKey Ifstr(i) $(NetRuleKey) == $(KeyNull) Return STATUS_FAILED endif CloseRegKey $(NetRules) CloseRegKey $(NetworkCardKey) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName) $(MAXIMUM_ALLOWED) ServiceKey Ifstr(i) $(ServiceKey) == $(KeyNull) Return STATUS_FAILED endif CloseRegKey $(ServiceKey) endif Return STATUS_SUCCESSFUL [AdapterSetup] set Option = $(!p:Option) read-syms FileDependentDlg$(!STF_LANGUAGE) read-syms DialogConstants$(!STF_LANGUAGE) read-syms FileConstants$(!STF_LANGUAGE) read-syms GeneralConstants read-syms FileConstants set Combo1Out = $(!p:IRQLevel) set-dectohex Combo2Out = $(!p:IOBaseValue) set MediaValue = $(!p:MediaValue) set NetworkAddress = $(!p:NetworkAddress) set DLLPATH = $(!p:DLLPATH) ifstr(i) $(DLLPATH) != "" Split-String $(DLLPATH) "\" TempList QueryListSize ListSize $(TempList) ifstr(i) *($(TempList), $(ListSize)) != "\" set DLLPATH = $(DLLPATH)"\" endif endif set AdapterStatus = FALSE ;; set Combo3Out = $(MediaValue) set EditTextIn = {$(NetworkAddress)} set NotifyFields = {NO, NO, NO} set EditTextLim = {12} set EditFocusOn = "" ifint $(!p:ReceiveTimer) == 1 set CheckItemsIn = { "ON" } else set CheckItemsIn = { "OFF" } endif loadlibrary "Fast Ethernet PCCard Device Driver Diskette" $(DLLPATH)pcmfast.dll DllHandle RetryDialog =+ EndWait ui start "InputDlg" $(DllHandle) StartWait set NewNetworkAddress = *($(EditTextOut), 1) ifstr(i) $(DLGEVENT) == "CONTINUE" set AdapterStatus = TRUE ifstr(i) $(NewNetworkAddress) != "" Split-String $(NewNetworkAddress), "0123456789ABCDEFabcdef", TempList set HexList = ^(HexDigits, 1) QueryListSize ListSize $(TempList) ifint $(ListSize) == 12 set Index1 = 1 set Loop = 1 else Shell "" WarnError $(BadAddr1) goto RetryDialog endif NetAddrLoop =+ set Temp1 = *($(TempList), $(Index1)) ifcontains(i) $(Temp1) not-in $(HexList) Shell "" WarnError $(BadAddr2)$(Temp1) goto RetryDialog endif ifint $(Index1) == 2 ifcontains(i) $(Temp1) in { 1,3,5,7,9,b,d,f } Shell "" WarnError $(BadAddr3) goto RetryDialog endif endif set-add Index1 = $(Index1), 1 set-add Loop = $(Loop), 1 ifint $(Loop) < 13 goto NetAddrLoop endif endif endif set-hextodec !p:IOBaseValue = $(Combo2Out) set !p:IRQLevel = $(Combo1Out) set !p:NetworkAddress = $(NewNetworkAddress) ui pop 1 ifstr(i) $(DLGEVENT) == "CONTINUE" IfStr(i) $(!STF_NCDETINFO) == {} Set !p:BusType = 1 Set !p:BusNumber = 0 Else Set !p:BusType = *($(!STF_NCDETINFO),5) Set !p:BusNumber = *($(!STF_NCDETINFO),6) EndIf Endif ;; set !p:MediaValue = $(Combo3Out) set Check = *($(CheckItemsOut), 1) ifstr(i) $(Check) == "ON" set !p:ReceiveTimer = 1 else set !p:ReceiveTimer = 0 endif freelibrary $(DllHandle) return $(AdapterStatus) [SetCopy] read-syms GeneralConstants read-syms FileConstants read-syms FileConstants$(!STF_LANGUAGE) set DoCopy = $($0) set AddCopy = $($1) set SrcDir = $($2) set InstallSection = $($3) set Needcopy = FALSE Ifstr(i) $(DoCopy) == "YES" set NeedCopy = TRUE else-ifstr(i) $(AddCopy) == "YES" set NeedCopy = TRUE else Return TRUE endif set BuiltIn = "YES" ifstr(i) $(!NTN_Origination) == "NCPA" set BuiltIn = "NO" endif Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) $(BuiltIn) Ifstr(i) $($R0) == STATUS_FAILED Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" Shell "" FatalError $($R0) Return FALSE Else-Ifstr(i) $($R0) == STATUS_USERCANCEL Return FALSE Endif Set SrcDir = $($R1) install $(InstallSection) ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" Shell "" FatalError $($R0) Return FALSE endif Return TRUE [SetSoftware] read-syms GeneralConstants read-syms FileConstants read-syms date set Option = $(!p:Option) Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), + $(ProductSoftwareName), + $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+ $(NetEventDLL) Ifstr(i) $($R0) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif ; ; At this point: ; $R1 contains the product version key handle; ; $R2 contains the NetRules subkey handle; ; $R3 contains the new Services key handle; and ; $R4 contains the Parameters key ; $R5 contains the Linkage Key ; set KeyProduct = $($R1) Set SoftNetRulesKey = $($R2) CloseRegKey $($R3) CloseRegKey $($R4) CloseRegKey $($R5) Ifstr(i) $($R0) != NO_ERROR CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif 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),$($0)}} Shell $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList) Ifstr(i) $($R0) != NO_ERROR CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE 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, $(SoftNetRulesKey), $(NewValueList) CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) Ifstr(i) $($R0) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif return TRUE [SetHardware] read-syms GeneralConstants read-syms FileConstants read-syms date set Option = $(!p:Option) Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName) Ifstr(i) $($R0) != NO_ERROR CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif ; ; At this point: ; $R1 Registry key variable for HARDWARE\Netcard\(n) ; $R2 Registry key variable for HARDWARE\Netcard\(n)\\NetRules ; $R3 Registry key handle for <service>\Parameters key ; $R4 Adapter number assigned to adapter ; $R5 Service name generated by combining svc name with adapter number ; set !KeyParameters = $($R3) set KeyAdapterRules = $($R2) set AdapterNumber = $($R4) set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+ {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+ {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),$($0)}} Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList) Ifstr(i) $($R0) != NO_ERROR CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif CloseRegKey $($R1) 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) Ifstr(i) $($R0) != NO_ERROR CloseRegKey $(!KeyParameters) CloseRegKey $(KeyAdapterRules) Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif CloseRegKey $(KeyAdapterRules) return TRUE [WriteParameters] read-syms FileConstants read-syms GeneralConstants set Option = $(!p:Option) set Base = $(!p:IOBaseValue) set Irq = $(!p:IRQLevel) set Media = $(!p:MediaValue) set NetworkAddress = $(!p:NetworkAddress) set BusType = $(!p:BusType) set BusNumber = $(!p:BusNumber) set SpeedValue = $(!p:SpeedValue) set ReceiveTimer = $(!p:ReceiveTimer) ifint $(BusType) == 8 set BusType = 1 endif Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusType)},+ {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+ {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+ {Transceiver,$(NoTitle),$(!REG_VT_SZ),$(Media)},+ {Interrupt,$(NoTitle),$(!REG_VT_DWORD),$(Irq)},+ {IoBase,$(NoTitle),$(!REG_VT_DWORD),$(Base)},+ {Speed,$(NoTitle),$(!REG_VT_DWORD),100},+ {ReceiveTimer,$(NoTitle),$(!REG_VT_DWORD),$(ReceiveTimer)},+ {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)},+ {Pcmcia,$(NoTitle),$(!REG_VT_DWORD),1},+ {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(Irq)},+ {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(Base)}, + {IOLength,$(NoTitle),$(!REG_VT_DWORD),15}} Shell $(UtilityInf), AddValueList, $(!KeyParameters), $(NewValueList) Set Status = $($R0) Shell "" SetUpPcmcia CloseRegKey $(!KeyParameters) Ifstr(i) $(Status) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $(Status) Shell "" ShellError $($R0) Return FALSE endif Return TRUE [ShellError] read-syms DialogConstants$(!STF_LANGUAGE) read-syms FileConstants$(!STF_LANGUAGE) set DlgType = "MessageBox" set STF_MB_TITLE = $(FunctionTitle) set STF_MB_TEXT = $($0) set STF_MB_TYPE = 1 set STF_MB_ICON = 3 set STF_MB_DEF = 1 ifstr(i) $(STF_MB_TEXT) == "" set STF_MB_TEXT = "Unknown Error" endif ui start "Error Message" Return [Install-Option] set STF_VITAL = "" ifstr(i) $(AddCopy) == "YES" AddSectionFilesToCopyList Files-PCMFAST $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH) endif ifstr(i) $(DoCopy) == "YES" set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList endif Exit [Install-Update] set STF_VITAL = "" set STF_OVERWRITE = "VERIFYSOURCEOLDER" AddSectionFilesToCopyList Files-PCMFAST $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH) set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList exit [Install-Dll] set STF_VITAL = "" AddSectionFilesToCopyList Files-PCMFAST $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH) set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList Exit [FatalError] read-syms FileConstants ifstr(i) $($0) == "" set Message = "Unknown Error" else set Message = $($0) endif Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) FATAL $(Message) Return [VerifyError] read-syms FileConstants ifstr(i) $($0) == "" set Message = "Unknown Error" else set Message = $($0) endif Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) WARNING $(Message) Return $($R1) [WarnError] read-syms FileConstants ifstr(i) $($0) == "" set Message = "Unknown Error" else set Message = $($0) endif Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) NONFATAL $(Message) Return [DebugControl] set !DebugOutputControl = 1 return [SetUpPcmcia] Read-Syms FileConstants Read-Syms PcmciaKeys Read-Syms GeneralConstants Debug-Output "Opening PCMCIA DataBase" OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaPath) $(MAXIMUM_ALLOWED) PcmciaKey IfStr(i) $(PcmciaKey) == $(KeyNull) Debug-Output "Failed to open "$(PcmciaPath) Shell "" FatalError "Cannot Open PCMCIA Registry DataBase!" Return FALSE EndIf Debug-Output "Opening PCMCIA Manufacture Key" OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaManufacturePath) $(MAXIMUM_ALLOWED) PcmciaManufactureKey IfStr(i) $(PcmciaManufactureKey) == $(KeyNull) Debug-Output "Open failed - creating key" CreateRegKey $(PcmciaKey) {$(CardManufacturer), 0, 0 } "" $(MAXIMUM_ALLOWED) "" PcmciaManufactureKey IfStr(i) $(PcmciaManufactureKey) == $(KeyNull) Debug-Output "Failed to create PCMCIA Manufacture key" Shell "" FatalError "Cannot Create Manufacture Key in Registry DataBase PCMCIA!" CloseRegKey $(PcmciaKey) Return FALSE EndIf EndIf Debug-Output "Opening PCMCIA Product Key = "$(PcmciaProductPath) OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaProductPath) $(MAXIMUM_ALLOWED) PcmciaProductKey IfStr(i) $(PcmciaProductKey) == $(KeyNull) Debug-Output "Open failed - creating key" CreateRegKey $(PcmciaManufactureKey) {$(CardKeyName), 0, 0 } "" $(MAXIMUM_ALLOWED) "" PcmciaProductKey IfStr(i) $(PcmciaProductKey) == $(KeyNull) Shell "" FatalError "Cannot Create PCMCIA Product Key in Registry DataBase PCMCIA!" CloseRegKey $(PcmciaManufactureKey) CloseRegKey $(PcmciaKey) Return FALSE EndIf EndIf Debug-Output "Writing Driver Keyword" SetRegValue $(PcmciaProductKey) {Driver, 0, $(!REG_VT_SZ), $(ProductSoftwareName)} CloseRegKey $(PcmciaProductKey) CloseRegKey $(PcmciaManufactureKey) CloseRegKey $(PcmciaKey) Debug-Output "Opening CardWizard Resource Manager" OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaRMKeyName) $(MAXIMUM_ALLOWED) PcmciaRMKey ifstr $(PcmciaRMKey) == $(NULL) Debug-Output "Systemsoft CardWizard service not present" else set SystemsoftPresent = $(TRUE) OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaRMDBKeyName) $(MAXIMUM_ALLOWED) PcmciaRMDBKey ifstr $(PcmciaRMDBKey) == $(NULL) debug-output "Adding "$(PcmciaRMDBKeyName) CreateRegKey $(PcmciaRMKey) {"MacDataBase" , 0, 0} "" $(MAXIMUM_ALLOWED) "" PcmciaRMDBKey CloseRegKey PcmciaRMDBKey endif CloseRegKey $(PcmciaRMKey) endif OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaRMDBKeyName) $(MAXIMUM_ALLOWED) PcmciaRMDBKey ifstr $(PcmciaRMDBKey) == $(NULL) Debug-Output "Systemsoft CardWizard service not present" else OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaRMDBKeyName)"\"$(CardManufacturer) $(MAXIMUM_ALLOWED) PcmciaManufactureKey ifstr $(PcmciaManufactureKey) == $(NULL) debug-output "Adding "$(PcmciaRMDBKeyName)"\"$(CardManufacturer) CreateRegKey $(PcmciaRMDBKey) {$(CardManufacturer), 0, 0} "" $(MAXIMUM_ALLOWED) "" PcmciaManufactureKey else debug-output "Manufacture sub key already exist" endif OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaRMDBKeyName)"\"$(CardManufacturer)"\"$(CardKeyName) $(MAXIMUM_ALLOWED) PcmciaProductKey ifstr $(PcmciaProductKey) == $(NULL) debug-output "Adding "$(PcmciaRMDBKeyName)"\"$(CardManufacturer)"\"$(CardKeyName) CreateRegKey $(PcmciaManufactureKey) {$(CardKeyName), 0, 0} "" $(MAXIMUM_ALLOWED) "" PcmciaProductKey SetRegValue $(PcmciaProductKey) {MacDriverHandle, 0, $(!REG_VT_DWORD),0} SetRegValue $(PcmciaProductKey) {MacDriverName,0,$(!REG_VT_SZ),$(ProductSoftwareName)} SetRegValue $(PcmciaProductKey) {MacDriverState,0,$(!REG_VT_DWORD),1} SetRegValue $(PcmciaProductKey) {MacDriverVersion,0,$(!REG_VT_DWORD),$(ProductMajorVersion)$(ProductMinorVersion)} SetRegValue $(PcmciaProductKey) {MacSwapCapability,0,$(!REG_VT_DWORD),2} else debug-output "Device sub key already exist" GetRegValue $(PcmciaProductKey),+"MacDriverName",GetData ifstr *($(GetData),7) != $(ProductSoftwareName) SetRegValue $(PcmciaProductKey) {MacDriverHandle, 0, $(!REG_VT_DWORD),0} SetRegValue $(PcmciaProductKey) {MacDriverName,0,$(!REG_VT_SZ),$(ProductSoftwareName)} SetRegValue $(PcmciaProductKey) {MacDriverState,0,$(!REG_VT_DWORD),1} SetRegValue $(PcmciaProductKey) {MacDriverVersion,0,$(!REG_VT_DWORD),$(ProductMajorVersion)$(ProductMinorVersion)} SetRegValue $(PcmciaProductKey) {MacSwapCapability,0,$(!REG_VT_DWORD),2} endif endif CloseRegKey $(PcmciaProductKey) CloseRegKey $(PcmciaManufactureKey) CloseRegKey $(PcmciaRMDBKey) endif Debug-Output "All done with SetUpPcmcia" return TRUEDownload 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.