;******************************************************************************* ; Module Description: ; Oemsetup.inf for Broadcom Gigabit Ethernet adapter. ; ; History: ; 06/03/00 Hav Khauv Inception. ;******************************************************************************* [Identification] OptionType = NetAdapter [Options] B57NT4 [PlatformsSupported] PCI [LanguagesSupported] ENG, English [RequestedMediaTypeB57NT4] "Auto", 0 "UTP 10 Mbps Half Duplex", 3 "UTP 10 Mbps Full Duplex", 4 "UTP 100 Mbps Half Duplex", 5 "UTP 100 Mbps Full Duplex", 6 ; "UTP 1000 Mbps Half Duplex", 7 ; "UTP 1000 Mbps Full Duplex", 8 [OptionsTextENG] B57NT4 = "Broadcom Gigabit Ethernet NDIS 4.0 Driver" [FileConstants] UtilityInf = "UTILITY.INF" SubroutineInf = "SUBROUTN.INF" MAXIMUM_ALLOWED = 33554432 NoTitle = 0 PciVendorId = 5348 PciDeviceId = 5700 Manufacturer = "Broadcom" ProductMajorVersion = "1" ProductMinorVersion = "15" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) NetEventDll = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\B57NT4.sys" ProductSoftwareImagePath = "\SystemRoot\System32\drivers\B57NT4.sys" MiniportProductName = "B57NT4" MiniportProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)+ "\"$(MiniportProductName)+ "\CurrentVersion" MiniportSoftwareType = "driver" MiniportNetRuleSoftwareUse = $(MiniportSoftwareType) MiniportNetRuleSoftwareClass = {"B57NT4Driver basic"} MiniportNetRuleSoftwareType = "B57NT4Sys ndisDriver B57NT4Driver" MiniportNetRuleSoftwareBindForm = """B57NT4Sys"" yes no container" MiniportNetRuleSoftwareBindable = {"B57NT4Driver B57NT4Adapter non "+ "exclusive 100"} MiniportNetRuleHardwareType = "B57NT4 B57NT4Adapter" MiniportNetRuleHardwareBindForm = " yes yes container" MiniportNetRuleHardwareClass = {"B57NT4Adapter basic"} B57NT4HelpId = 100 B57NT4HelpFile = "b57nt4.hlp" IBM_HPP_ServiceKey = "SYSTEM\CurrentControlSet\Services\"+ "HotSrv\SupportedDevices\14E4-1644-14E4-1644" CPQ_HPP_Key = "SOFTWARE\Compaq\Cpqrcmc\ClassDLLs\"+ "NicMiniPort" [FileConstantsENG] FunctionB57NT4Title = "Broadcom Gigabit Ethernet NDIS 4.0 Driver" MiniportProductSoftwareTitle = $(FunctionB57NT4Title) MiniportProductSoftwareDisplayName = "Broadcom Gigabit Ethernet Adapter" MiniportB57NT4HardwareTitle = "Broadcom Gigabit Ethernet Driver" MiniportB57NT4Description = "Broadcom Gigabit Ethernet NDIS 4.0 Driver "+ "Version "$(ProductVersion)"." MsgShellErrorTitle = "Error: "$(Function$(OptionId)Title) MsgShellErrorText = "Shell Code Error." MsgRegistryKeyDoesNotExist = "Open registry key failed." MsgNoAdapterFound = "Network card is not present in the system." MsgDowngrade = "Cannot downgrade to an older driver. To downgrade, "+ "you must uninstall first and then re-install the older driver." MsgUpdateDone = "Driver update will take effect on the next reboot." [DialogConstantsENG] Help = "&Help" Exit = "C&ancel" OK = "&OK" HelpContext = "" Continue = "&Continue" Cancel = "C&ancel" [RequestedMediaTypeDlgENG] DlgText = "Select the line speed and duplex mode to connect "+ "to the network. The recommended selection is 'Auto' "+ "which sets up the adapter to auto detect the optimal "+ "connection." DlgTemplate = "ADAP_PROTO_COMBO" DlgType = "Combination" Caption = $(Function$(OptionId)Title) Combo1Label = "&Link Selection" Combo1List = $(ConnectionList) Combo1Out = $(ConnectionValue) ComboListItemsIn = { Combo1List } ComboListItemsOut = { Combo1Out } EditTextLim = "" CBOptionsGreyed = {} MinHelpId = 100 MaxHelpId = 1000 HelpContext = $($(OptionId)HelpId) [DebugControl] !DebugOutputControl = 0 [CurrentDate] Now = {} ? $(!LIBHANDLE) GetSystemDate [Source Media Descriptions] 1 = "Broadcom Driver Installation Disk" [Files-B57NT4Driver] 1, b57nt4.sys, SIZE=999 [Files-B57NT4Help] 1, b57nt4.hlp, SIZE=999 ;******************************************************************************* ; Description: ; ; Input: ; None. ; ; Output: ; None. ;******************************************************************************* [ShowShellErrorMessage] read-syms DebugControl debug-output "### ShowShellErrorMessage" read-syms FileConstants read-syms FileConstants$(!STF_LANGUAGE) set DlgType = "MessageBox" set STF_MB_TITLE = $(MsgShellErrorTitle) set STF_MB_TEXT = $(MsgShellErrorText) set STF_MB_TYPE = 1 set STF_MB_ICON = 3 set STF_MB_DEF = 1 ui start "Error Message" return ;******************************************************************************* ; Description: ; ; Input: ; $($0) = "WARNING", "FATAL", "NONFATAL", or "STATUS" ; $($1) = Registery fatal text code. ; ; Output: ; STATUS_FAILED ; STATUS_SUCCESSFUL ;******************************************************************************* [ShowRegistryErrorMessage] read-syms DebugControl debug-output "### ShowRegistryErrorMessage" read-syms FileConstants read-syms FileConstants$(!STF_LANGUAGE) set Severity = $($0) set RegStrCode = $($1) shell $(UtilityInf) RegistryErrorString $(RegStrCode) ifint $($ShellCode) != $(!SHELL_CODE_OK) shell "" ShowShellErrorMessage return STATUS_FAILED endif set RegText = $($R0) shell $(SubroutineInf) SetupMessage $(!STF_LANGUAGE) $(Severity) $(RegText) return STATUS_SUCCESSFUL ;******************************************************************************* ; Description: ; Displays shell error message. ; ; Input: ; $($0) = "WARNING", "FATAL", "NONFATAL", or "STATUS" ; $($1) = Fatal text string. ; ; Output: ; None. ;******************************************************************************* [ShowErrorMessage] read-syms DebugControl debug-output "### ShowErrorMessage" read-syms FileConstants shell $(SubroutineInf) SetupMessage $(!STF_LANGUAGE) $($0) $($1) ifint $($ShellCode) != $(!SHELL_CODE_OK) shell "" ShowShellErrorMessage endif return ;******************************************************************************* ; Description: ; ; Input: ; ; Output: ;******************************************************************************* [Install-Help] debug-output "### Install-Help" set STF_VITAL = "" AddSectionFilesToCopyList Files-$(OptionId)Help $(SrcDir) + $(!STF_WINDOWSSYSPATH) set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList exit ;******************************************************************************* ; Description: ; ; Input: ; ; Output: ;******************************************************************************* [Install-Update] debug-output "### Install-Update" set STF_VITAL = "" set STF_OVERWRITE = "VERIFYSOURCEOLDER" AddSectionFilesToCopyList Files-$(OptionId)Driver $(SrcDir) + $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-$(OptionId)Help $(SrcDir) + $(!STF_WINDOWSSYSPATH) set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList exit ;******************************************************************************* ; Description: ; ; Input: ; None. ; ; Output: ; None. ;******************************************************************************* [Install-Option] debug-output "### Install-Option" ; Copy files. set STF_VITAL = "" ifstr(i) $(AddCopy) == "YES" debug-output "Add driver file to copy list." AddSectionFilesToCopyList Files-$(OptionId)Driver $(SrcDir) + $(!STF_WINDOWSSYSPATH)\drivers endif ifstr(i) $(DoCopy) == "YES" debug-output "copy files in copy list." set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList endif exit ;******************************************************************************* ; Description: ; ; Input: ; None. ; ; Output: ; $($R0): STATUS: STATUS_SUCCESSFUL ; $($R1): Option Type (COMPUTER ...) ; $($R2): Diskette description ;******************************************************************************* [Identify] read-syms DebugControl debug-output "### Identify" read-syms Identification set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) return $(Status) $(Identifier) $(Media) ;******************************************************************************* ; Description: ; ; Input: ; $($0): Language used. (ENG|FRN|...) ; ; Output: ; $($R0): STATUS: STATUS_SUCCESSFUL ; STATUS_NOLANGUAGE ; STATUS_FAILED ; STATUS_NOTSUPPORTED ; ; $($R1): Option List ; $($R2): Option Text List ;******************************************************************************* [ReturnOptions] read-syms DebugControl debug-output "### ReturnOptions" set OptionList = {} set OptionTextList = {} set LanguageList = ^(LanguagesSupported, 1) ifcontains(i) $($0) in $(LanguageList) set Status = STATUS_SUCCESSFUL set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) ifstr(i) $($1) != "" set PlatformList = ^(PlatformsSupported, 1) ifcontains(i) $($1) not-in $(PlatformList) debug-output "Unknown platform: "$($1) set Status = STATUS_NOLANGUAGE endif endif else debug-output "Language not supported." set Status = STATUS_NOLANGUAGE endif return $(Status) $(OptionList) $(OptionTextList) ;******************************************************************************* ; Description: ; This section performs the following tasks: ; Copy files representing Options. ; Configure the installed option. ; Update the registry for the installed option ; ; Input: ; $($0): Language to use ; $($1): OptionID to install ; $($2): SourceDirectory ; $($3): AddCopy (YES | NO) ; $($4): DoCopy (YES | NO) ; $($5): DoConfig (YES | NO) ; ; Output: ; $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE | ; STATUS_USERCANCEL | ; STATUS_FAILED ;******************************************************************************* [InstallOption] read-syms DebugControl debug-output "### InstallOption" Set LanguageList = ^(LanguagesSupported, 1) ifcontains(i) $($0) not-in $(LanguageList) return STATUS_NOLANGUAGE endif set OptionId = $($1) set SrcDir = $($2) read-syms FileConstants$(!STF_LANGUAGE) read-syms FileConstants set-title $(Function$(OptionId)Title) ifstr(i) $(!NTN_InstallMode) == Deinstall shell "" RemoveSection $(OptionId) else-ifstr(i) $(!NTN_InstallMode) == Update shell "" UpdateSection $(OptionId) $(SrcDir) else-ifstr(i) $(!NTN_InstallMode) == Bind shell "" BindSection $(OptionId) else-ifstr(i) $(!NTN_InstallMode) == Configure shell "" ConfigureSection $(OptionId) else startwait shell "" InstallSection $($1) $($2) $($3) $($4) $($5) endwait ifstr(i) $($R0) != STATUS_SUCCESSFUL shell "" RemoveSection endif endif debug-output "Final status: "$($R0) return $($R0) ;******************************************************************************* ; Description: ; ; Input: ; $($0): OptionId ; ; Output: ; $($R0) Status ;******************************************************************************* [RemoveSection] read-syms DebugControl debug-output "### RemoveSection" set OptionId = $($0) read-syms FileConstants read-syms FileConstants$(!STF_LANGUAGE) ifstr(i) $(MiniportProductKeyName) == $(!NTN_RegBase) debug-output "Removing software component." shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(MiniportProductName) else debug-output "Removing hardware component." shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(MiniportProductName), $(!NTN_RegBase) endif return STATUS_SUCCESSFUL ;******************************************************************************* ; Description: ; ; Input: ; $($0): OptionId ; $($1): SourceDirectory ; ; Output: ; $($R0) Status ;******************************************************************************* [UpdateSection] read-syms DebugControl debug-output "### UpdateSection" set OptionId = $($0) set SrcDir = $($1) read-syms FileConstants read-syms FileConstants$(!STF_LANGUAGE) openregkey $(!REG_H_LOCAL) "" $(MiniportProductKeyName) $(MAXIMUM_ALLOWED) + ProductKey ifstr $(ProductKey) == "" debug-output "Cannot get registry key." shell "" ShowErrorMessage "FATAL" $(MsgRegistryKeyDoesNotExist) return STATUS_FAILED endif getregvalue $(ProductKey), "MajorVersion", VersionInfo set MajorVersion = *($(VersionInfo), 4) debug-output "Major version: "$(MajorVersion) getregvalue $(ProductKey), "MinorVersion", VersionInfo set MinorVersion = *($(VersionInfo), 4) debug-output "Minor version: "$(MinorVersion) set-mul OldVersion = $(MajorVersion), 1000 set-add OldVersion = $(OldVersion), $(MinorVersion) set-mul NewVersion = $(ProductMajorVersion), 1000 set-add NewVersion = $(NewVersion), $(ProductMinorVersion) ifint $(OldVersion) > $(NewVersion) debug-output "Oldversion: "$(OldVersion)", NewVersion: "$(NewVersion) shell "" ShowErrorMessage "FATAL" $(MsgDowngrade) return STATUS_USERCANCEL endif install "Install-Update" setregvalue $(ProductKey) { MajorVersion, $(NoTitle), $(!REG_VT_SZ), + $(ProductMajorVersion) } setregvalue $(ProductKey) { MinorVersion, $(NoTitle), $(!REG_VT_SZ), + $(ProductMinorVersion) } closeregkey $(ProductKey) ; Enumerate all netcards installed of this type and update them set iSearch = 1 nextnetcard = + shell $(UtilityInf), FindNextNetworkCard, $(MiniportProductName), + $(iSearch) set KeyNetcard = $($R0) set iSearch = $($R1) ifstr $(KeyNetcard) != $(KeyNull) setregvalue $(KeyNetcard) { Description, $(NoTitle), + $(!REG_VT_SZ), $(Miniport$(OptionId)Description) } closeregkey $(KeyNetcard) goto nextnetcard Endif shell "" ShowErrorMessage "NONFATAL" $(MsgUpdateDone) return STATUS_SUCCESSFUL ;******************************************************************************* ; Description: ; ; Input: ; $($0): OptionId ; ; Output: ; $($R0) Status ;******************************************************************************* [BindSection] read-syms DebugControl debug-output "### BindSection" set OptionId = $($0) return STATUS_SUCCESSFUL ;******************************************************************************* ; Description: ; ; Input: ; $($0): OptionId ; ; Output: ; $($R0) STATUS_FAILED or STATUS_SUCCESSFUL ;******************************************************************************* [ConfigureSection] read-syms DebugControl debug-output "### ConfigureSection" set OptionId = $($0) read-syms FileConstants read-syms FileConstants$(!STF_LANGUAGE) openregkey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) ProductKey ifstr $(ProductKey) == "" debug-output "Component not installed." shell "" ShowRegistryErrorMessage "FATAL" CANNOT_FIND_COMPONENT_SERVICE return STATUS_FAILED Endif shell $(UtilityInf) FindService $(ProductKey) ifstr(i) $($R0) != NO_ERROR debug-output "Canot not find the component." closeregkey $(ProductKey) shell "" ShowRegistryErrorMessage "FATAL" $($R0) return STATUS_FAILED endif closeregkey $($R1) closeregkey $(ProductKey) set ParameterKey = $($R2) ifstr $(ParameterKey) == "" shell "" ShowRegistryErrorMessage "FATAL" CANNOT_FIND_COMPONENT_SERVICE return STATUS_FAILED endif EnumRegValue $(ParameterKey) ValueList set ConnectionIndex = 1 ForListDo $(ValueList) set ValueItem = $($) set ValueName = *($(ValueItem), 1) set ValueData = *($(ValueItem), 4) ifstr(i) $(ValueName) == "RequestedMediaType" set ConnectionIndex = $(ValueData) endif EndForListDo set OldConnectionValue = $(ValueData) set ConnectionList = ^(RequestedMediaType$(OptionId), 1) set ConnectionValueList = ^(RequestedMediaType$(OptionId), 2) debug-output "ConnectionList: "$(ConnectionList) debug-output "ConnectionValueList: "$(ConnectionValueList) set ConnectionValue = *($(ConnectionList), ~($(ConnectionValueList), + $(ConnectionIndex))) ifstr(i) $(ConnectionValue) == "" set ConnectionValue = *($(ConnectionList), 1) endif read-syms DialogConstants$(!STF_LANGUAGE) read-syms RequestedMediaTypeDlg$(!STF_LANGUAGE) debug-output "HelpContext = "$(HelpContext) sethelpfile $(!STF_WINDOWSSYSPATH)"\"$($(OptionId)HelpFile) + $(MinHelpId) $(MaxHelpId) $($(OptionId)HelpId) set ConnectionIndex = *($(ConnectionList), 1) set RetStatus = STATUS_SUCCESSFUL ui start "InputDlg" ifstr(i) $(DLGEVENT) == "CONTINUE" set ConnectionIndex = $(Combo1Out) else-ifstr(i) $(DLGEVENT) == "BACK" set RetStatus = STATUS_USERCANCEL endif ui pop 1 set NewConnectionValue = *($(ConnectionValueList), + ~($(ConnectionList), $(ConnectionIndex))) debug-output "NewConnection value = "$(NewConnectionValue) debug-output "OldConnection value = "$(OldConnectionValue) ifstr(i) $(NewConnectionValue) == $(OldConnectionValue) set RetStatus = STATUS_USERCANCEL endif ifstr(i) $(RetStatus) == "STATUS_SUCCESSFUL" set NewValueList = { + { RequestedMediaType, $(NoTitle), $(!REG_VT_DWORD), + $(NewConnectionValue)} } shell $(UtilityInf), AddValueList, $(ParameterKey), $(NewValueList) endif closeregkey $(ParameterKey) return $(RetStatus) ;******************************************************************************* ; Description: ; ; Input: ; $($0): OptionId ; $($1): SourceDirectory ; $($2): AddCopy (YES | NO) ; $($3): DoCopy (YES | NO) ; $($4): DoConfig (YES | NO) ; ; Output: ; $($R0) STATUS_FAILED or STATUS_SUCCESSFUL ;******************************************************************************* [InstallSection] read-syms DebugControl debug-output "### InstallSection" set OptionId = $($0) set SrcDir = $($1) set AddCopy = $($2) set DoCopy = $($3) set DoConfig = $($4) read-syms FileConstants read-syms FileConstants$(!STF_LANGUAGE) detect CurrentDate ; Get the adapter list. shell $(UtilityInf), GetPCIInformation, $(PciVendorId) $(PciDeviceId) ifint $($ShellCode) != $(!SHELL_CODE_OK) shell "" ShowShellErrorMessage return STATUS_FAILED endif ifstr(i) $($R0) == {} shell "" ShowErrorMessage "NONFATAL" $(MsgNoAdapterFound) return STATUS_USERCANCEL endif set AdapterList = $($R0) debug-output "AdapterList: "$(AdapterList) ; Get installation source directory. ifstr(i) $(DoCopy) == "YES" debug-output "DoCopy" shell $(UtilityInf) DoAskSource $(!STF_CWDDIR) $(SrcDir) YES ifint $($ShellCode) != $(!SHELL_CODE_OK) shell "" ShowShellErrorMessage return STATUS_FAILED else-ifstr(i) $($R0) == STATUS_FAILED shell "" ShowRegistryErrorMessage "FATAL" ASK_SOURCE_FAIL return STATUS_FAILED else-ifstr(i) $($R0) == STATUS_USERCANCEL debug-output "User cancelled." return STATUS_USERCANCEL endif set SrcDir = $($R1) endif ; Default line setting. set ConnectionValue = 1 ; First time installation -- we need to install the software component. openregkey $(!REG_H_LOCAL) "" $(MiniportProductKeyName) $(MAXIMUM_ALLOWED) + ProductKey ifstr $(ProductKey) == "" debug-output "First time installation" install "Install-Help" ; Pop up a GUI to allow the user to configure the line setting. ifstr(i) $(!STF_GUI_UNATTENDED) != "YES" set ConnectionList = ^(RequestedMediaType$(OptionId), 1) set ConnectionValueList = ^(RequestedMediaType$(OptionId), 2) debug-output "ConnectionList = "$(ConnectionList) debug-output "ConnectionValueList = "$(ConnectionValueList) set ConnectionValue = *($(ConnectionList), + ~($(ConnectionValueList), $(ConnectionIndex))) read-syms DialogConstants$(!STF_LANGUAGE) read-syms RequestedMediaTypeDlg$(!STF_LANGUAGE) sethelpfile $(!STF_WINDOWSSYSPATH)"\"$($(OptionId)HelpFile) + $(MinHelpId) $(MaxHelpId) $($(OptionId)HelpId) ui start "InputDlg" ifstr(i) $(DLGEVENT) == "CONTINUE" set ConnectionIndex = $(Combo1Out) debug-output "Connection Index = "$(ConnectionIndex) else-ifstr(i) $(DLGEVENT) == "BACK" debug-output "gui cancelled" ui pop 1 return STATUS_USERCANCEL endif ui pop 1 endif ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS debug-output "Copy file failed." shell "" ShowRegistryErrorMessage "FATAL" UNABLE_COPY_FILE return STATUS_FAILED endif install "Install-Option" debug-output "Create the software component." shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(MiniportProductName), $(MiniportProductName), + $(MiniportProductSoftwareDisplayName), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "", + $(NetEventDll) ifstr(i) $($R0) != NO_ERROR debug-output "Add miniport software component failed." closeregkey $($R1) closeregkey $($R2) closeregkey $($R3) closeregkey $($R4) closeregkey $($R5) shell "" ShowRegistryErrorMessage "FATAL" $($R0) return STATUS_FAILED endif ; $R1 contains handle to "SOFTWARE\Broadcom\CurrentVersion". ; $R2 contains handle to "SOFTWARE\Broadcom\CurrentVersion\NetRules". ; $R3 contains handle to "SYSTEM\CurrentControlSet\Blfp". ; $R4 contains handle to "SYSTEM\CurrentControlSet\Blfp\Parameters". ; $R5 contains handle to "SYSTEM\CurrentControlSet\Blfp\Linkage". set ProductKey = $($R1) set NetRuleKey = $($R2) set ServiceKey = $($R3) set ParameterKey = $($R4) set LinkageKey = $($R5) set NewValueList = { + { SoftwareType, $(NoTitle), $(!REG_VT_SZ), + $(MiniportSoftwareType) }, + { MajorVersion, $(NoTitle), $(!REG_VT_DWORD), + $(ProductMajorVersion) }, + { MinorVersion, $(NoTitle), $(!REG_VT_DWORD), + $(ProductMinorVersion) }, + { Title, $(NoTitle), $(!REG_VT_SZ), + $(MiniportProductSoftwareTitle) }, + { Description, $(NoTitle), $(!REG_VT_SZ), + $(MiniportProductDescription) }, + { ServiceName, $(NoTitle), $(!REG_VT_SZ), + $(MiniportProductName) }, + { InstallDate, $(NoTitle), $(!REG_VT_DWORD), + *($(Now),1) } } shell $(UtilityInf), AddValueList, $(ProductKey), $(NewValueList) ifstr(i) $($R0) != NO_ERROR debug-output "Cannot create miniport software key." closeregkey $(ProductKey) closeregkey $(NetRuleKey) closeregkey $(ServiceKey) closeregkey $(ParameterKey) closeregkey $(LinkageKey) shell "" ShowRegistryErrorMessage "FATAL" $($R0) return STATUS_FAILED endif set NewValueList = { + { type, $(NoTitle), $(!REG_VT_SZ), + $(MiniportNetRuleSoftwareType) }, + { use, $(NoTitle), $(!REG_VT_SZ), + $(MiniportNetRuleSoftwareUse) }, + { bindform, $(NoTitle), $(!REG_VT_SZ), + $(MiniportNetRuleSoftwareBindForm) }, + { class, $(NoTitle), $(!REG_VT_MULTI_SZ), + $(MiniportNetRuleSoftwareClass) }, + { bindable, $(NoTitle), $(!REG_VT_MULTI_SZ), + $(MiniportNetRuleSoftwareBindable) }, + { InfOption, $(NoTitle), $(!REG_VT_SZ), $(OptionId) } } shell $(UtilityInf), AddValueList, $(NetRuleKey), $(NewValueList) ifstr(i) $($R0) != NO_ERROR debug-output "### Cannot create the miniport netrules." closeregkey $(ProductKey) closeregkey $(NetRuleKey) closeregkey $(ServiceKey) closeregkey $(ParameterKey) closeregkey $(LinkageKey) shell "" ShowRegistryErrorMessage "FATAL" $($R0) return STATUS_FAILED endif closeregkey $(NetRuleKey) closeregkey $(ServiceKey) closeregkey $(ParameterKey) closeregkey $(LinkageKey) endif closeregkey $(ProductKey) forlistdo $(AdapterList) debug-output "Installing adapter "$($)"." set BusNum = *($($), 1) set DeviceNum = *($($), 2) set FunctionNum = *($($), 3) shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNum), + $(DeviceNum), $(Miniport$(OptionId)Description), + $(MiniportProductName) "YES" ifstr $($R0) != NO_ERROR shell "" ShowRegistryErrorMessage "FATAL" $($R0) return STATUS_FAILED endif ifstr(i) $($R1) != YES debug-output "add hardware component." shell $(UtilityInf), AddHardwareComponent, $(MiniportProductName), + $(STF_CONTEXTINFNAME), $(MiniportProductKeyName) ifstr(i) $($R0) != NO_ERROR debug-output "### Add hardware component error." closeregkey $($R1) closeregkey $($R2) closeregkey $($R3) shell "" ShowRegistryErrorMessage "FATAL" $($R0) return STATUS_FAILED endif set HardNetCardKey = $($R1) set HardNetRuleKey = $($R2) set HardParameterKey = $($R3) set AdapterNumber = $($R4) debug-output "Write adapter info." set NewValueList = { + { Manufacturer, $(NoTitle), $(!REG_VT_SZ), $(Manufacturer) }, + { Title, $(NoTitle), $(!REG_VT_SZ), + "["$($R4)"] "$(Miniport$(OptionId)HardwareTitle)" "+ "(Bus "$(BusNum)", Slot "$(DeviceNum)")." }, + { Description, $(NoTitle), $(!REG_VT_SZ), + $(Miniport$(OptionId)Description) }, + { ProductName, $(NoTitle), $(!REG_VT_SZ), + $(MiniportProductName) }, + { ServiceName, $(NoTitle), $(!REG_VT_SZ), $($R5) }, + { InstallDate, $(NoTitle), $(!REG_VT_DWORD), *($(Now), 1) } } shell $(UtilityInf), AddValueList, $(HardNetCardKey), + $(NewValueList) ifstr(i) $($R0) != NO_ERROR closeregkey $(HardNetCardKey) closeregkey $(HardNetRuleKey) closeregkey $(HardParameterKey) shell "" ShowRegistryErrorMessage "FATAL" $($R0) return STATUS_FAILED endif set ConnectionValue = *($(ConnectionValueList), + ~($(ConnectionList), $(ConnectionIndex))) debug-output "Connection value = "$(ConnectionValue) debug-output "Write driver params." set NewValueList = { + { BusType, $(NoTitle), $(!REG_VT_DWORD), 5 }, + { BusNumber, $(NoTitle), $(!REG_VT_DWORD), $(BusNum) }, + { SlotNumber, $(NoTitle), $(!REG_VT_DWORD), $(DeviceNum) }, + { FunctionNumber, $(NoTitle), $(!REG_VT_DWORD), + $(FunctionNum) }, + { MediaType, $(NoTitle), $(!REG_VT_DWORD), 1 }, + { RxPacketDescLowWaterMark, $(NoTitle), $(!REG_VT_DWORD), 40}, + { VlanEnable, $(NoTitle), $(!REG_VT_DWORD), 0 }, + { NumOfMapRegisters, $(NoTitle), $(!REG_VT_DWORD), 100 }, + { TxPacketDescCnt, $(NoTitle), $(!REG_VT_DWORD), 100 }, + { RxStdDescCnt, $(NoTitle), $(!REG_VT_DWORD), 200 }, + { RxCoalescingTicks, $(NoTitle), $(!REG_VT_DWORD), 150 }, + { TxCoalescingTicks, $(NoTitle), $(!REG_VT_DWORD), 150 }, + { RxMaxCoalescedFrames, $(NoTitle), $(!REG_VT_DWORD), 10 }, + { TxMaxCoalescedFrames, $(NoTitle), $(!REG_VT_DWORD), 10 }, + { RxCoalescingTicksDuringInt, $(NoTitle), $(!REG_VT_DWORD), + 0 }, + { TxCoalescingTicksDuringInt, $(NoTitle), $(!REG_VT_DWORD), + 0 }, + { RxMaxCoalescedFramesDuringInt, $(NoTitle), $(!REG_VT_DWORD), + 0 }, + { TxMaxCoalescedFramesDuringInt, $(NoTitle), $(!REG_VT_DWORD), + 0 }, + { StatsCoalescingTicks, $(NoTitle), $(!REG_VT_DWORD), 1000000},+ { TxBufferSize, $(NoTitle), $(!REG_VT_DWORD), 0 }, + { RxJumboDescCnt, $(NoTitle), $(!REG_VT_DWORD), 0 }, + { TxMtu, $(NoTitle), $(!REG_VT_DWORD), 1514 }, + { RxMtu, $(NoTitle), $(!REG_VT_DWORD), 1514 }, + { DisableAutoNeg, $(NoTitle), $(!REG_VT_DWORD), 1 }, + { FlowControlCap, $(NoTitle), $(!REG_VT_DWORD), 0 }, + { RequestedMediaType, $(NoTitle), $(!REG_VT_DWORD), + $(ConnectionValue) } } shell $(UtilityInf), AddValueList, $(HardParameterKey), + $(NewValueList) ifstr(i) $($R0) != NO_ERROR debug-output "### Add parameter shell error." closeregkey $(HardNetCardKey) closeregkey $(HardNetRuleKey) closeregkey $(HardParameterKey) shell "" ShowRegistryErrorMessage "FATAL" $($R0) return STATUS_FAILED endif set TempProdName = """"$(MiniportProductName)$(AdapterNumber)"""" set TempBindForm = $(TempProdName)$(MiniportNetRuleHardwareBindForm) debug-output "updating netrules." set NewValueList = { + { type, $(NoTitle), $(!REG_VT_SZ), + $(MiniportNetRuleHardwareType) }, + { bindform, $(NoTitle), $(!REG_VT_SZ), $(TempBindForm) }, + { class, $(NoTitle), $(!REG_VT_MULTI_SZ), + $(MiniportNetRuleHardwareClass) }, + { InfOption, $(NoTitle), $(!REG_VT_SZ), $(OptionId)} } shell $(UtilityInf), AddValueList, $(HardNetRuleKey), + $(NewValueList) ifstr(i) $($R0) != NO_ERROR debug-output "### Add hardware component error." closeregkey $(HardNetCardKey) closeregkey $(HardNetRuleKey) closeregkey $(HardParameterKey) shell "" ShowRegistryErrorMessage "FATAL" $($R0) return STATUS_FAILED endif closeregkey $(HardNetCardKey) closeregkey $(HardNetRuleKey) ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" Shell $(UtilityInf), AddDefaultNetCardParameters, + $(HardParameterKey) endif closeregkey $(HardParameterKey) endif endforlistdo ; Create IBM hot plug PCI service key. createregkey $(!REG_H_LOCAL) { $(IBM_HPP_ServiceKey), $(NoTitle), + GenericClass } "" $(MAXIMUM_ALLOWED) "" HppKey ifstr(i) $(HppKey) != "" set NewValueList = { + { DriverServices, $(NoTitle), $(!REG_VT_SZ), + $(MiniportProductName) }, + { FriendlyName, $(NoTitle), $(!REG_VT_SZ), + $(MiniportProductSoftwareDisplayName) } } shell $(UtilityInf), AddValueList, $(HppKey), $(NewValueList) closeregkey $(HppKey) endif ; Create Compaq hot plug PCI key. openregkey $(!REG_H_LOCAL) "" $(CPQ_HPP_Key) $(MAXIMUM_ALLOWED) HppKey ifstr $(HppKey) == "" createregkey $(!REG_H_LOCAL) { $(CPQ_HPP_Key), $(NoTitle), + GenericClass } "" $(MAXIMUM_ALLOWED) "" HppKey set NewValueList = { + { ClassID, $(NoTitle), $(!REG_VT_SZ), 0 }, + { DLLName, $(NoTitle), $(!REG_VT_SZ), "CQRNICMN.DLL" } } shell $(UtilityInf), AddValueList, $(HppKey), $(NewValueList) endif closeregkey $(HppKey) createregkey $(!REG_H_LOCAL) { $(CPQ_HPP_Key)"\"$(MiniportProductName), + $(NoTitle), GenericClass } "" $(MAXIMUM_ALLOWED) "" HppKey set NewValueList = { + { BaseOIDAddress, $(NoTitle), $(!REG_VT_DWORD), 4278322176 }, + { SetOIDAddress, $(NoTitle), $(!REG_VT_DWORD), 4278321933 } } shell $(UtilityInf), AddValueList, $(HppKey), $(NewValueList) closeregkey $(HppKey) return STATUS_SUCCESSFULDownload 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.