;******************************************************************************* ;* ** ;* I N T E L P R O P R I E T A R Y ** ;* ** ;* COPYRIGHT (c) 2000 BY INTEL CORPORATION. ALL RIGHTS RESERVED. NO ** ;* PART OF THIS PROGRAM OR PUBLICATION MAY BE REPRODUCED, TRANSMITTED, ** ;* TRANSCRIBED, STORED IN A RETRIEVAL SYSTEM, OR TRANSLATED INTO ANY ** ;* LANGUAGE OR COMPUTER LANGUAGE IN ANY FORM OR BY ANY MEANS, ELECTRONIC, ** ;* MECHANICAL, MAGNETIC, OPTICAL, CHEMICAL, MANUAL, OR OTHERWISE, WITHOUT ** ;* THE PRIOR WRITTEN PERMISSION OF : ** ;* ** ;* INTEL CORPORATION ** ;* ** ;* 2200 MISSION COLLEGE BLVD ** ;* ** ;* SANTA CLARA, CALIFORNIA 95052-8119 ** ;* ** ;******************************************************************************* ;******************************************************************************* ; Windows NT OEMSETUP.INF for ; ; Intel(R) GD82559ER Fast Ethernet Adapter ; ;******************************************************************************* ; $Revision: 9 $ ;******************************************************************************* ; Define Options ;******************************************************************************* [Options] E100E [OptionsText] E100E = "Intel(R) GD82559ER Fast Ethernet Adapter" [Source Media Descriptions] 1 = "Intel(R) GD82559ER Fast Ethernet Adapter CD-ROM or floppy disk",+ TAGFILE = e100ent.sys ;******************************************************************************* ; Define customizable constants. ;******************************************************************************* [FileConstants] Manufacturer = "Intel" NDIS4 = "e100ent.sys" NDIS4Src = "e100ent.sys" SoftwareName = "E100E" SoftwareTitle = "Intel(R) GD82559ER Fast Ethernet Adapter" SoftwareDescription = "Intel(R) GD82559ER Fast Ethernet Adapter Driver" HardwareTitle = "Intel(R) GD82559ER Fast Ethernet Adapter" HardwareDescription = "Intel(R) GD82559ER Fast Ethernet Adapter" NetEventDLL = "%SystemRoot%\System32\netevent.dll" SoftwareImagePath = "%SystemRoot%\System32\drivers\"$(NDIS4) SoftwareKeyName = "SOFTWARE\"$(Manufacturer)"\"$(SoftwareName)+ "\CurrentVersion" 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:" AutoDetect = "Auto Detect" Speed10Mbps = "10 Mbps" Speed100Mbps = "100 Mbps" HalfDuplex = "Half-Duplex" FullDuplex = "Full-Duplex" SpeedList = {$(AutoDetect), $(Speed10Mbps), $(Speed100Mbps)} DuplexList = {$(AutoDetect), $(HalfDuplex), $(FullDuplex)} KeyNull = "" ;******************************************************************************* ; Define Vendor/Device IDs for support adapters. Each support adapter is listed ; in the format {<Vendor ID>, <Device ID>}. ;******************************************************************************* [VendorDeviceIDs] {32902, 4617} ; 0x8086, 0x1209 {32902, 4649} ; 0x8086, 0x1229 ;******************************************************************************* ; Define miniport instance parameters. This list defines the name of the ; parameter, the registry data type, and the value of the parameter. Each ; parameter is specified in a format ready to be passed into SetRegValue(): ; {<name>, $(NoTitle), <reg value type>, <parameter value>}. ;******************************************************************************* [MiniportParameters] ; HKLM\SYSTEM\CurrentControlSet\Services\[miniport instance]\Parameters {AutoPolarity, $(NoTitle), $(!REG_VT_DWORD), 2} {BusNumber, $(NoTitle), $(!REG_VT_DWORD), $(BusNumber)} {BusType, $(NoTitle), $(!REG_VT_DWORD), 5} {BusTypeLocal, $(NoTitle), $(!REG_VT_DWORD), 5} {Congest, $(NoTitle), $(!REG_VT_DWORD), 0} {Coalesce, $(NoTitle), $(!REG_VT_DWORD), 0} {Connector, $(NoTitle), $(!REG_VT_DWORD), 0} {EQUOFF, $(NoTitle), $(!REG_VT_DWORD), 0} {EnableSelfTest, $(NoTitle), $(!REG_VT_DWORD), 1} {Environment, $(NoTitle), $(!REG_VT_DWORD), 0} {ExtremeCacheAlignment, $(NoTitle), $(!REG_VT_DWORD), 0} {ForceDpx, $(NoTitle), $(!REG_VT_DWORD), 0} {MCWA, $(NoTitle), $(!REG_VT_DWORD), 2} {MWIEnable, $(NoTitle), $(!REG_VT_DWORD), 1} {MediaType, $(NoTitle), $(!REG_VT_DWORD), 1} {NetworkAddress, $(NoTitle), $(!REG_VT_SZ), ""} {NumCoalesce, $(NoTitle), $(!REG_VT_DWORD), 8} {NumRfd, $(NoTitle), $(!REG_VT_DWORD), 16} {NumTbdPerTcb, $(NoTitle), $(!REG_VT_DWORD), 1} {NumTcb, $(NoTitle), $(!REG_VT_DWORD), 8} {PhyAddress, $(NoTitle), $(!REG_VT_DWORD), 255} {RxDmaCount, $(NoTitle), $(!REG_VT_DWORD), 0} {RxFifo, $(NoTitle), $(!REG_VT_DWORD), 8} {SlotNumber, $(NoTitle), $(!REG_VT_DWORD), $(SlotNumber)} {Speed, $(NoTitle), $(!REG_VT_DWORD), 0} {TxDmaCount, $(NoTitle), $(!REG_VT_DWORD), 0} {TxFifo, $(NoTitle), $(!REG_VT_DWORD), 8} {UnderrunRetry, $(NoTitle), $(!REG_VT_DWORD), 1} {UseIo, $(NoTitle), $(!REG_VT_DWORD), 2} {WaitAfterWin, $(NoTitle), $(!REG_VT_DWORD), 0} ;******************************************************************************* ; Define software and hardware component registry settings that are applied ; after calling AddSoftwareComponent() or AddHardwareComponent(). Each ; parameter is specified in a format ready to be passed into SetRegValue(): ; {<name>, $(NoTitle), <reg value type>, <parameter value>}. ;******************************************************************************* [SoftwareCurrentVersion] ; HKLM\SOFTWARE\[Mfg]\[Product]\CurrentVersion {SoftwareType, $(NoTitle), $(!REG_VT_SZ), "driver"} {MajorVersion, $(NoTitle), $(!REG_VT_DWORD), 3} {MinorVersion, $(NoTitle), $(!REG_VT_DWORD), 0} {Title, $(NoTitle), $(!REG_VT_SZ), $(SoftwareTitle)} {Description, $(NoTitle), $(!REG_VT_SZ), $(SoftwareDescription)} {ServiceName, $(NoTitle), $(!REG_VT_SZ), $(SoftwareName)} {InstallDate, $(NoTitle), $(!REG_VT_DWORD), *($(Now),1)} [SoftwareNetBindRules] ; HKLM\SOFTWARE\[Mfg]\[Product]\CurrentVersion\NetRules {type, $(NoTitle), $(!REG_VT_SZ), + $(SoftwareName)"Sys ndisDriver "$(SoftwareName)"Driver"} {use, $(NoTitle), $(!REG_VT_SZ), + "driver"} {bindform, $(NoTitle), $(!REG_VT_SZ), + """"$(SoftwareName)"Sys"" yes no container"} {class, $(NoTitle), $(!REG_VT_MULTI_SZ), + {$(SoftwareName)"Driver basic"}} {bindable, $(NoTitle), $(!REG_VT_MULTI_SZ), + {$(SoftwareName)"Driver "$(SoftwareName)+ "Adapter non exclusive 100"}} {InfOption, $(NoTitle), $(!REG_VT_SZ), + $(Option)} [NetworkCardValues] ; HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\[x] {Manufacturer, $(NoTitle), $(!REG_VT_SZ), + $(Manufacturer)} {Title, $(NoTitle), $(!REG_VT_SZ), + "["$(AdapterNumber)"] "$(HardwareTitle)} {Description, $(NoTitle), $(!REG_VT_SZ), + $(HardwareDescription)} {ProductName, $(NoTitle), $(!REG_VT_SZ), + $(SoftwareName)} {ServiceName, $(NoTitle), $(!REG_VT_SZ), + $(SoftwareName)$(AdapterNumber)} {InstallDate, $(NoTitle), $(!REG_VT_DWORD), + *($(Now),1)} {OperationsSupport, $(NoTitle), $(!REG_VT_DWORD), + 255} [HardwareNetBindRules] ; HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\[x]\NetRules {type, $(NoTitle), $(!REG_VT_SZ), + $(SoftwareName)" "$(SoftwareName)"Adapter"} {bindform, $(NoTitle), $(!REG_VT_SZ), + """"$(SoftwareName)$(AdapterNumber)""" yes yes container"} {class, $(NoTitle), $(!REG_VT_MULTI_SZ), + {$(SoftwareName)"Adapter basic"}} {InfOption, $(NoTitle), $(!REG_VT_SZ), + $(Option)} ;******************************************************************************* ; Detect sections. These sections are called using the detect command. ;******************************************************************************* [Date] Now = {} ? $(!LIBHANDLE) GetSystemDate ;******************************************************************************* ; Returns information to Setup about the type of driver or drivers that ; can be installed by this INF file. ;******************************************************************************* [Identify] Return STATUS_SUCCESSFUL NetAdapter "" ;******************************************************************************* ; This section returns information to the Setup program, listing the ; names of any drivers that can be installed by this INF file. It also ; returns the text strings for each driver (in the requested language) ; to be used in the dialog box that asks the user to select the driver ; to install. ;******************************************************************************* [ReturnOptions] Set Status = STATUS_SUCCESSFUL Set OptionList = ^(Options, 1) Set OptionTextList = ^(OptionsText, 1) IfStr(i) $($1) != "" IfContains(i) $($1) not-in "PCI" Set Status = STATUS_NOTSUPPORTED Set OptionList = {} Set OptionTextList = {} EndIf EndIf Return $(Status) $(OptionList) $(OptionTextList) ;******************************************************************************* ; If the [ReturnOptions] section returns successfully, indicating the ; language is supported, Setup displays a dialog box from which the user ; can select a driver to install. If the user proceeds with the ; installation, Setup calls the [InstallOption] section. ;******************************************************************************* [InstallOption] Set Option = $($1) Set SrcDir = $($2) Set AddCopy = $($3) Set DoCopy = $($4) Set DoConfig = $($5) read-syms FileConstants detect Date ;----------------------------------------------------------------------- ; Switch on the install mode option and goto the appropriate sub. ;----------------------------------------------------------------------- IfStr(i) $(!NTN_InstallMode) == deinstall Set StartLabel = RemoveAdapter Else-IfStr(i) $(!NTN_InstallMode) == update Set StartLabel = UpdateAdapter Else-IfStr(i) $(!NTN_InstallMode) == bind return STATUS_USERCANCEL Else-IfStr(i) $(!NTN_InstallMode) == configure Set StartLabel = ConfigureAdapter Else-IfStr(i) $(!NTN_InstallMode) == install Set StartLabel = InstallAdapters EndIf Set from = FatalError Set to = FatalError Goto $(StartLabel) ;******************************************************************************* ; Called when the user clicks the Add button in the NCPA. ;******************************************************************************* InstallAdapters = + ;----------------------------------------------------------------------- ; NT 3.50 & 3.51 are not supported, so give user the bad news ;----------------------------------------------------------------------- OpenRegKey $(!REG_H_LOCAL) "" + "SOFTWARE\Microsoft\Windows NT\CurrentVersion" + $(!REG_KEY_READ) hKeyWinNT GetRegValue $(hKeyWinNT) "CurrentVersion" CurrentVersion Set WinNTVersion = *($(CurrentVersion), 4) CloseRegKey $(hKeyWinNT) ifcontains(i) $(WinNTVersion) in {"3.50", "3.51"} Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "STATUS" + "NT 3.50 and NT 3.51 are not supported." return STATUS_USERCANCEL EndIf ;----------------------------------------------------------------------- ; Find Adapter(s) by doing a PCI scan (of registry) with Utility.inf. ; The bus/slot/function of each adapter found are returned in a list ; of lists:{{bus0,slot0,func0},{bus1,slot1,func1},...{busN,slotN,funcN}} ;----------------------------------------------------------------------- ; Since multiple Vendor/DeviceIDs are supported, call GetPCIInformation ; for each set, building the bus/slot/function list. Set BusDevFuncList = {} ForListDo ^(VendorDeviceIDs, 1) Shell "Utility.Inf", GetPCIInformation, *($($), 1), *($($), 2) ForListDo $($R0) Set BusDevFuncList = >($(BusDevFuncList), $($)) EndForListDo EndForListDo ; Check for an empty adapter list and abort with error if empty. IfStr $(BusDevFuncList) == {} Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "STATUS" + "No supported adapters were found in the system. "+ "Install the adapter in another PCI slot and try again." return STATUS_USERCANCEL EndIf ;----------------------------------------------------------------------- ; Search through the bus/slot/function list looking for previously ; installed adapters that match. A match is found by searching through ; the installed miniport instances and matching on bus/slot. If a match ; is found, assume that the adapter is already setup and remove the ; adapter from the bus/slot/function list. ;----------------------------------------------------------------------- Set NewBusDevFuncList = {} ForListDo $(BusDevFuncList) Set BusNumber = *($($), 1) Set SlotNumber = *($($), 2) Shell "Utility.Inf", IsNetCardAlreadyInstalled, $(BusNumber), + $(SlotNumber), "", "", "YES" IfStr $($R1) != "YES" Set NewBusDevFuncList = >($(NewBusDevFuncList), $($)) EndIf EndForListDo Set BusDevFuncList = $(NewBusDevFuncList) ; Check for an empty adapter list. If the list is empty, it means that ; all detected adapters already have a NetworkCard entry in the ; registry, or some rogue NetworkCard is pretending to be the software ; key for this adapter. In any case, we're done. The user can remove ; the rogue NetworkCard and reinstall with this software if they want. IfStr $(BusDevFuncList) == {} return STATUS_USERCANCEL EndIf ;----------------------------------------------------------------------- ; Create the software component (service) if it doesn't already exist. ;----------------------------------------------------------------------- OpenRegKey $(!REG_H_LOCAL) "" $(SoftwareKeyName) $(!REG_KEY_READ) hKey IfStr $(hKey) == "" ; The software component didn't exist...Let's create it. Shell "Utility.Inf", AddSoftwareComponent, $(Manufacturer), + $(SoftwareName), $(SoftwareName), $(SoftwareTitle), + $(STF_CONTEXTINFNAME), $(SoftwareImagePath), "kernel", + "NDIS", {}, "", $(NetEventDLL) Set hKeyCurrentVersion = $($R1) Set hKeyNetRule = $($R2) ; Insert other details to the software component's current ; version key. Shell "Utility.Inf", AddValueList, $(hKeyCurrentVersion), + ^(SoftwareCurrentVersion, 1) ; Insert the net bind rules. Shell "Utility.Inf", AddValueList, $(hKeyNetRule), + ^(SoftwareNetBindRules, 1) EndIf CloseRegKey $(hKey) ;----------------------------------------------------------------------- ; For each detected adapter, create a hardware component (miniport ; instance). ;----------------------------------------------------------------------- ForListDo $(BusDevFuncList) ; Get Bus and Slot from PCI device information Set BusNumber = *($($), 1) Set SlotNumber = *($($), 2) ; Create a new miniport instance, AKA hardware component. Shell "Utility.Inf", AddHardwareComponent, $(SoftwareName), + $(STF_CONTEXTINFNAME), $(SoftwareKeyName) Set hKeyNetCard = $($R1) Set hKeyNetRule = $($R2) Set hKeyParameter = $($R3) Set AdapterNumber = $($R4) ; Insert other details to the NetworkCard key. Shell "Utility.Inf", AddValueList, $(hKeyNetCard), + ^(NetworkCardValues, 1) ; Add the miniport parameters. Shell "Utility.Inf", AddValueList, $(hKeyParameter), + ^(MiniportParameters, 1) ; Insert the net bind rules. Shell "Utility.Inf", AddValueList, $(hKeyNetRule), + ^(HardwareNetBindRules, 1) ; Install unattended answer file overrides if running in ; unattended mode. IfStr(i) $(!STF_GUI_UNATTENDED) == "YES" Shell "Utility.Inf", AddDefaultNetCardParameters, + $(hKeyParameter) EndIf EndForListDo ;----------------------------------------------------------------------- ; Install the driver. ;----------------------------------------------------------------------- Install "Install-Option" return STATUS_SUCCESSFUL ;******************************************************************************* ; Called when user clicks the Remove button on the NCPA to remove an ; adapter. ;******************************************************************************* RemoveAdapter = + ;----------------------------------------------------------------------- ; Delete the hardware component (miniport instance). If this is the ; last instance, the software component will be deleted as well. ;----------------------------------------------------------------------- Shell "Utility.Inf", RemoveHardwareComponent, $(Manufacturer), + $(SoftwareName), $(!NTN_RegBase) return STATUS_SUCCESSFUL ;******************************************************************************* ; Called when user clicks the Properties button on the NCPA to modify adapter's ; settings. ;******************************************************************************* ConfigureAdapter = + ;* Retrieve paramters from the registry OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(!REG_KEY_READ) hNetCardKey Set AdapterDisplayName = "" IfStr(i) $(hNetCardKey) != $(KeyNull) ;* Get ServiceName and AdapterTitle GetRegValue $(hNetCardKey) "ServiceName" ServiceInfo Set ServiceName = *($(ServiceInfo),4) GetRegValue $(hNetCardKey) "Title" AdapterTitle Set AdapterDisplayName = *($(AdapterTitle), 4) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters" $(!REG_KEY_READ) hParamKey IfStr(i) $(hParamKey) != $(KeyNull) ;* Setup the current value for Speed and Duplex GetRegValue $(hParamKey) "Speed" SpeedInfo Set SpeedIndex = *($(SpeedInfo),4) IfInt $(SpeedIndex) == 10 ; 10 Mbps Set SpeedValue = $(Speed10Mbps) Else-IfInt $(SpeedIndex) == 100 ; 100 Mbps Set SpeedValue = $(Speed100Mbps) Else Set SpeedValue = $(AutoDetect) EndIf GetRegValue $(hParamKey) "ForceDpx" DuplexInfo Set DuplexIndex = *($(DuplexInfo), 4) IfInt $(DuplexIndex) == "1" Set DuplexValue = $(HalfDuplex) Else-IfInt $(DuplexIndex) == "2" Set DuplexValue = $(FullDuplex) Else Set DuplexValue = $(AutoDetect) EndIf CloseRegKey $(hParamKey) Else Set SpeedValue = 0 Set DuplexValue = 0 EndIf CloseRegKey $(hNetCardKey) EndIf IfStr(i) AdapterDisplayName == "" Set AdapterDisplayName = $(HardwareTitle) EndIf read-syms AdapterPropertiesDlg ui start "AdapterProperties" IfStr(i) $(DLGEVENT) == "CONTINUE" Set SpeedValue = $(Combo1Out) Set DuplexValue = $(Combo2Out); ;*** Save Speed setting IfStr $(SpeedValue) == $(AutoDetect) Set CommonSpeed = 0 Else-IfStr $(SpeedValue) == $(Speed10Mbps) Set CommonSpeed = 10 Else Set CommonSpeed = 100 EndIf ;*** Save Duplex setting IfStr $(DuplexValue) == $(AutoDetect) Set CommonDuplex = 0 Else-IfStr $(DuplexValue) == $(HalfDuplex) Set CommonDuplex = 1 Else Set CommonDuplex = 2 EndIf Else return STATUS_USERCANCEL EndIf ; *** Save paramters to the registry OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(!REG_KEY_READ) hNetCardKey IfStr(i) $(hNetCardKey) != $(KeyNull) GetRegValue $(hNetCardKey) "ServiceName" ServiceInfo Set ServiceName = *($(ServiceInfo),4) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters" $(!REG_KEY_WRITE) hParamKey IfStr(i) $(hParamKey) != $(KeyNull) SetRegValue $(hParamKey) {Speed, $(NoTitle), $(!REG_VT_DWORD), $(CommonSpeed)} SetRegValue $(hParamKey) {ForceDpx, $(NoTitle), $(!REG_VT_DWORD), $(CommonDuplex)} CloseRegKey $(hParamKey) EndIf CloseRegKey $(hNetCardKey) Else return STATUS_USERCANCEL EndIf return STATUS_SUCCESSFUL ;******************************************************************************* ; Something's busted! The "To" and "From" variables were set to this entry ; point, so any fatal errors would be trapped here. ;******************************************************************************* FatalError = + return STATUS_FAILED ;******************************************************************************* ; Install the Option files. ;******************************************************************************* [Install-Option] Set STF_VITAL = 1 Set STF_OVERWRITE = "VERIFYSOURCEOLDER" AddSectionFilesToCopyList "Files-Option-Drivers-NT4" $(SrcDir) + $(!STF_WINDOWSSYSPATH)\drivers Set !STF_NCPA_FLUSH_COPYLIST = 1 CopyFilesInCopyList Exit [Files-Option-Drivers-NT4] 1, $(NDIS4Src), SIZE=50000, RENAME=$(NDIS4) ;******************************************************************************* ; Adapter Settings Dialog ;******************************************************************************* [AdapterPropertiesDlg] DlgType = "RadioCombination" DlgTemplate = "NE2000" Caption = $(AdapterDisplayName)" Settings" Label1 = "Speed" Label2 = "Duplex" Combo1List = $(SpeedList) Combo1Out = $(SpeedValue) Combo2List = $(DuplexList) Combo2Out = $(DuplexValue) ComboListItemsIn = {Combo1List, Combo2List} ComboListItemsOut = {Combo1Out, Combo2Out} CBOptionsGreyed = {} NotifyFields = {NO, NO} EditTextIn = "" EditTextLim = "" HelpContext = "" Continue = "&OK" Cancel = "&Cancel" Help = "&Help"Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.