Gros problème,avis d'un expert demandé.

Résolu
Utilisateur anonyme -  
Yoan Messages postés 11905 Statut Modérateur -
Bonjour,

J'ai étais sur le site, ma-config.com, et donc fais une détection de mon ordi, puis j'ai installé quelques driver qu'ils me disaient d'intaller.

Dont eux:

"3Com 3C900/3C905 version 5.4 WHQL" ////// "VT6421 IDE RAID Controller" ////// "82845 845 [Brookdale] Chipset Host Bridge" ////// "82801 PCI Bridge" .

Le GROS problème c'est que maintenent quand j'allume mon ordi, j'ai pleins pleins de fenètre qui s'ouvre, j'ai noté leur nom.


Dossier: WFW311 ///// NWSERVER

Bloc note: W9XEL90X ///// W9X90XBC ///// OEMSETUP ///// License ///// Readme .

Catalogue de sécurité .

3 COM ADPATER <-- c'est le nom de la fenètre et dedans il ya marquer, Please turn off your computer, Install the NIC then start your computer.

Et une fenètre qui dit que j'éssaye d'ouvrir un fichier système je sais pa quoi, mais le pire ce que je touche a rien, tout vien tout seul.

Je sais pas quoi aider moi s'il vous plait.
A voir également:

45 réponses

kramma Messages postés 606 Statut Membre 118
 
Tu as chopé un bon virus
0
Utilisateur anonyme
 
Oh non !!!!!!!!!!!
0
Utilisateur anonyme
 
Qu'est ce que je peux faire?

J'ai avast et CCleaner sa peux aider ?
0
kramma Messages postés 606 Statut Membre 118
 
restaure ton systeme et sa ira mieux
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
Heu comment sa "restaure" ?

Formater ?!!
0
kramma Messages postés 606 Statut Membre 118
 
non tu restaure seulement le systeme windows comme sa il sera comme neuf
0
Utilisateur anonyme
 
Ok je veux bien mais comment.

Par ce que j'ai un ordi mais je surf sur internet joue à des jeux puis c'est tout, je sais rien faire d'autre.

Donc comment on fais pour restaurer windows ?
0
kramma Messages postés 606 Statut Membre 118
 
1. Ouvrez une session Windows en tant qu'administrateur.
2. Cliquez sur Démarrer, pointez sur Tous les programmes, sur Accessoires, sur Outils système, puis cliquez sur Restauration du système. La Restauration du système démarre.
3. Sur la page Restauration du système, cliquez sur l'option Restaurer mon ordinateur à une heure antérieure (si elle n'est pas déjà sélectionnée), puis cliquez sur Suivant.
4. Sur la page Sélectionnez un point de restauration, cliquez sur le point de vérification système le plus récent dans la liste Sur cette liste, cliquez sur un point de restauration, puis sur Suivant. Un message de la Restauration du système peut s'afficher pour indiquer les modifications de configuration qu'elle effectuera. Cliquez sur OK.
5. Sur la page Confirmez la sélection du point de restauration, cliquez sur Suivant. L'outil Restauration du système restaure la configuration Windows XP antérieure, puis redémarre l'ordinateur.
6. Ouvrez une session sur l'ordinateur en tant qu'administrateur. La page Restauration complète de la Restauration du système s'affiche.
7. Cliquez sur OK.

si tu comprends pas tu me fait signe
0
Utilisateur anonyme
 
C'était trop beau pour ètre vraie.

J'avais pas tout les détails que tu me diser.


3. Sur la page Restauration du système, cliquez sur l'option Restaurer mon ordinateur à une heure antérieure (si elle n'est pas déjà sélectionnée), puis cliquez sur Suivant

On va reprendre a partir de là,donc apres j'avais un calendirer donc j'ai choisi le point de vérification le plus récent ( hier) et fais suivant, de nouveaux suivant, et l'ordi s'est éteint puis rallumer, et ensuite sa me dit que la restauration est incomplète, en faite ya rien qui a changer, tout a foiré.


Du coup j'ai toujours mes page par dizaines.
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Non ce n'est pas un virus. A moins que tu aies téléchargé un pilote malveillant", mais compte-tenu des "symptomes" ça m'étonnerait, désinstalle le pilote et tout utilitaire qui a avec dans le pnneau de config > ajout de suppression de programme.

Ensuite, on verra, mais je pense que ça résoudra le pb. IL nous restera à réinstaller proprement le pilote du périphérique concerné.
0
Utilisateur anonyme
 
Déja faudrais que je sache quel pilote en est la cause, par ce que j'ai est instaler 2-3 en mème temps.

Je pence que c'est le pilote de ma carte réseaux.
Car sur une des fenètre qui souvre, j'ai remarquer "3com" c'est le nom de ma carte réseaux.
0
Utilisateur anonyme
 
Sa va ètre galère, comment savoir quel pilote est a l'origine de tout ces problème ?
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Désinstalle ton adaptateur réseau 3COM
SI un utilitaire est présent (je l'ignore, mais peut-être dans le cas d'un adaptateur Wifi par exemple), vire-le aussi. En résumé :
1) Clic droit sur le poste de travail > propriétés > Matériel > Gestio. de périph. > Sélectionne la carte 3COM, clic droit > désinstaller > valider
2) Poste de travail > Ajout/Suppr de programmes > Cherche un utilitaire réseau qui viendrait de 3COM (qui n'existe pas forcément), si oui, désinstalle-le.
3) Redémarre, le problème est-il résolu ?
0
Utilisateur anonyme
 
1) Clic droit sur le poste de travail > propriétés > Matériel > Gestio. de périph. > Sélectionne la carte 3COM, clic droit > désinstaller > valider

Sa ok j'ai trouver aucun soucis,mais j'ai pas encore désinstaller.


2) Poste de travail > Ajout/Suppr de programmes > Cherche un utilitaire réseau qui viendrait de 3COM (qui n'existe pas forcément), si oui, désinstalle-le.

Si cette utilitaire existe, a quoi il resemble, quel nom ?


Et merci de m'aider les gas, c'est vraiment sympa.


EDIT: Aussi si je suprime ma carte réseau 3com, y vas ce passer quoi ? Et j'ai remarqué que je pouvais juste la désactiver, c'est mieux que de la suprimer? Je demande un max de détail déja que je stress a cause de sa depuis tout a l'heur.
0
Utilisateur anonyme
 
Bon j'ai d'abord éssayer de juste la désactiver et ensuite redémarer l'ordi, sa n'avait rien changer, là ensuite je l'ai désinstaller, redémarer l'ordi, toujours rien de neuf.


C'est peut ètre pas ma carte réseau 3com qui fait sa j'en c'est rien, mais en tout cas dans les bloc note qui souvre bon déja ya pleins d'écriture et je vois marquer 3com un peu partout.


Serieux c'est énervant je voulais juste télécharger des pilotes en penssant que sa aurait apporter quelque chose de positif à mon ordi.
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Ca va se passer que t'auras plus de réseau ^^
Tu fais bien de le préciser, je n'y avais pas pensé. Plusieurs cas s'offrent à nous : comment te connectes-tu à Internet ? Une "box" ? Utilises-tu un câble Ethernet, USB ou une connexion Wifi ?

Même si tu utilises un câble Ethernet et que tu vires ta carte réseau, tu vas te déconnecter momentanément d'internet mais au redémarrage, Windows te proposera des pilotes génériques. Si tu utilises le Wifi, faut voir si cet adaptateur 3COM peut être l'adaptateur Wifi. Dans ce cas il ne faut pas le virer.
Pour l'USB i'a pas de souci. Et si tu utilises un autre modem direct (pas de "box"), encore moins.
0
Utilisateur anonyme
 
J'ai une live'box, avant j'étais brancher en wifi mais maintenent par cable.

Et en faite quand je vais dans "conexion réseaux" j'ai 2 réseau:

" Conexion au réseau local 4
Cable réseau non brancher
Carte réseau 3COM Etherlink XL 10/ "

Et un autre réseau:

" Conexion au réseau local 3
Conecté
Inventel gateway "

Et au niveau des branchements qui sorte de ma box ba j'ai un file d'alimentation, cable usb qui vas jusqu'a l'odi et un autre cable qui vas a une prise téléphonique.

Mais j'ai pencé cette nuit à un truc, vue que j'ai ce problème depusi que j'ai installer quelque pilote, il sufirait que je les suprime, enfin je dit sa mais je sais mème quel pilote exactment j'ai installer et ou ils sont.
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Mais j'ai pencé cette nuit à un truc, vue que j'ai ce problème depusi que j'ai installer quelque pilote, il sufirait que je les suprime
je te signale quand-même que c'est ce que j'essaie de te faire faire. Enfin bon, si la nuit tu penses à ce que tu as vu le jour, ça marche :)

Par câble oui, mais quoi comme câble ? Vu tes connexions réseau ça doit être un câble USB.

Main'nant 'faut passer à l'action : désinstalle complètement ta carte réseau 3COM
Redémarre
Utilise les pilotes génériques de Windows pour la réinstaller ou n'installe aucun pilote temporairement s'il n'en trouve pas de générique. Redémarre. Le problème est-il résolu ?
0
Utilisateur anonyme
 
Pour la désisntaller je fais comme tu ma dit, clik droit sur poste de travaile propriété ect...?
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
oui chef.
0
Utilisateur anonyme
 
Ok ba sa y est j'ai suprimer, et par la mème occasion j'ai suprimé emule, par ce que (la nuit porte conseil) je crois que certain pilote que j'ai installer c'était mis dans le dossier config d'emule.

Maintenent je vais redémarer et on vérras apres.
0
Utilisateur anonyme
 
Hum, mon bug est encore là.

Parmis les blocs notes qui s'ouvrent tout seul j'en ai garder 4 là, si je fait copier coller de ce qu'il ya dedans sa peut t'aider?

Et ma carte réseau 3com ce réinstalle toute seul au démarge de l'ordi.
0
kramma Messages postés 606 Statut Membre 118
 
sa me serait d'une très grande aide pour pouvoir régler ton problème
0
Utilisateur anonyme
 
Ok alors:

1er bloc note:
Titre de la fenètre: OEMSETUP


[InstallOptions]
Install_3NIC_Diag = "NO"
Install_Shortcuts = "NO"
Install_Installer = "NO"


[Identification]
OptionType = NetAdapter


[PlatformsSupported]
ISA
EISA
PCI
"Jazz-Internal Bus"
ForListDo $(ToInstallList)

[Options]
3C90X
3C905
3C900


[NDDriverConstantsNDIS3]
ND3NDNetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el90xnd3.sys"
ND3NDProdSWImagePath = "%SystemRoot%\System32\drivers\el90xnd3.sys"
ND3NDProdSWUpgradePath = "\SystemRoot\System32\drivers\el90xnd3.sys"


[NDDriverConstantsNDIS4]
ND4NDNetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el90xnd4.sys"
ND4NDProdSWImagePath = "%SystemRoot%\System32\drivers\el90xnd4.sys"
ND4NDProdSWUpgradePath = "\SystemRoot\System32\drivers\el90xnd4.sys"


[BCDriverConstantsNDIS3]
ND3BCNetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el90xbc3.sys"
ND3BCProdSWImagePath = "%SystemRoot%\System32\drivers\el90xbc3.sys"
ND3BCProdSWUpgradePath = "\SystemRoot\System32\drivers\el90xbc3.sys"


[BCDriverConstantsNDIS4]
ND4BCNetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\EL90xBC4.sys"
ND4BCProdSWImagePath = "%SystemRoot%\System32\drivers\EL90xBC4.sys"
ND4BCProdSWUpgradePath = "\SystemRoot\System32\drivers\EL90xBC4.sys"


;**************************************************************************************************


[FileConstants]
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
SWType = "driver"
Exit_Code = 0
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
NetworkCardsKey = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"
FunctionTitle = "3Com 3C90x Adapter Card Setup"
3CNUMBER = "3C90X"
GROUP_NAME = "3Com EtherLink PCI NIC"
ProdHWXXXXXTitle = "3Com EtherLink PCI NIC "
ProdHWXXXXXDesc = "3Com EtherLink PCI NIC "
Manufacturer = "3Com"
EtherDiskVersion = "5.4.3"
ProdMajorVer = "1"
ProdMinorVer = "0"
ProdReview = "1"
ProdVer = $(ProdMajorVer)"."$(ProdMinorVer)
ProdSWDesc = "3Com 3C90x Adapter BC Driver"
ProdSWTitle = "3Com 3C90x Adapter BC Driver"
ProdSWName = "El90x"
NetRuleSWType = "El90xSys ndisDriver El90xDriver"
NetRuleSWUse = $(SWType)
NetRuleSWBindForm = """El90xSys"" yes no container"
NetRuleSWClass = {"El90xDriver basic"}
NetRuleSWBindable = {"El90xDriver El90xAdapter non exclusive 100"}
ProdHWName = "El90x"
NetRuleHWBindForm = " yes yes container"
NetRuleHWType = "El90x El90xAdapter"
NetRuleHWClass = {"El90xAdapter basic"}
ProdKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProdSWName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProdHWName)"\Parameters"
Hardware_Default = "HardwareDefault"
DiagExe = TCAUDIAG
NICPROP = NICPROP
DIAGCARDTYPE = "TCAUM90X"
TrayIconExe = TCAUDIAG
InstallerExe = TCAUDIAG
UnInstallerEXE = UN3C90XA

[BoomFileConstants]
NDProdSWDesc = "3Com 3C90x Adapter ND Driver"
NDProdSWTitle = "3Com 3C90x Adapter ND Driver"
NDProdSWName = "El90xnd"
NDNetRuleSWType = "El90xndSys ndisDriver El90xndDriver"
NDNetRuleSWBindForm = """El90xndSys"" yes no container"
NDNetRuleSWClass = {"El90xndDriver basic"}
NDNetRuleSWBindable = {"El90xndDriver El90xndAdapter non exclusive 100"}
NDProdHWName = "El90xnd"
NDNetRuleHWBindForm = " yes yes container"
NDNetRuleHWType = "El90xnd El90xndAdapter"
NDNetRuleHWClass = {"El90xndAdapter basic"}
NDProdKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(NDProdSWName)"\CurrentVersion"
NDParamKeyName = $(!NTN_ServiceBase)"\"$(NDProdHWName)"\Parameters"


;--------------------these NICs use old NDIS4 driver --------------------------------

ProdHW36944Title = "3Com EtherLink 10/100 PCI NIC (3C905-TX)"
ProdHW36944Desc = "3Com EtherLink 10/100 PCI NIC (3C905-TX)"

ProdHW36945Title = "3Com EtherLink 10/100 PCI T4 NIC (3C905-T4)"
ProdHW36945Desc = "3Com EtherLink 10/100 PCI T4 NIC (3C905-T4)"

ProdHW36864Title = "3Com EtherLink 10 PCI TPO NIC (3C900-TPO)"
ProdHW36864Desc = "3Com EtherLink 10 PCI TPO NIC (3C900-TPO)"

ProdHW36865Title = "3Com EtherLink 10 PCI Combo NIC (3C900-COMBO)"
ProdHW36865Desc = "3Com EtherLink 10 PCI Combo NIC (3C900-COMBO)"






;--------------------these NICs use new NDIS4 driver --------------------------------

ProdHW36952Title = "3Com EtherLink 10/100 PCI Combo NIC (3C905B-COMBO)"
ProdHW36952Desc = "3Com EtherLink 10/100 PCI Combo NIC (3C905B-COMBO)"

ProdHW37376NICTitle = "3Com EtherLink 10/100 PCI NIC (3C905C-TX)"
ProdHW37376NICDesc = "3Com EtherLink 10/100 PCI For Complete PC Management NIC (3C905C-TX)"

ProdHW37376MiniPCITitle= "3Com 10/100 Mini PCI Ethernet Adapter"
ProdHW37376MiniPCIDesc = "3Com 10/100 Mini PCI Ethernet Adapter"

ProdHW37376CatchAllTitle= "3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible)"
ProdHW37376CatchAllDesc = "3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible)"

ProdHW36949CatchAllTitle= "3Com 3C918 Integrated Fast Ethernet Controller (3C905B-TX Compatible)"
ProdHW36949CatchAllDesc = "3Com 3C918 Integrated Fast Ethernet Controller (3C905B-TX Compatible)"

ProdHW36949NICTitle = "3Com EtherLink 10/100 PCI NIC (3C905B-TX)"
ProdHW36949NICDesc = "3Com EtherLink 10/100 PCI TX NIC (3C905B-TX)"

ProdHW36954Title = "3Com EtherLink 100 PCI Fiber NIC (3C905B-FX)"
ProdHW36954Desc = "3Com EtherLink 100 PCI Fiber NIC (3C905B-FX)"

ProdHW36868Title = "3Com EtherLink 10 PCI TPO NIC (3C900B-TPO)"
ProdHW36868Desc = "3Com EtherLink 10 PCI TPO NIC (3C900B-TPO)"

ProdHW36869Title = "3Com EtherLink 10 PCI Combo NIC (3C900B-COMBO)"
ProdHW36869Desc = "3Com EtherLink 10 PCI Combo NIC (3C900B-COMBO)"

ProdHW36870Title = "3Com EtherLink 10 PCI TPC NIC (3C900B-TPC)"
ProdHW36870Desc = "3Com EtherLink 10 PCI TPC NIC (3C900B-TPC)"

ProdHW36874Title = "3Com EtherLink 10 PCI Fiber NIC (3C900B-FL)"
ProdHW36874Desc = "3Com EtherLink 10 PCI Fiber NIC (3C900B-FL)"

ProdHW37377Title = "3Com 3C920B-EMB Integrated Fast Ethernet Controller"
ProdHW37377Desc = "3Com 3C920B-EMB Integrated Fast Ethernet Controller"


;---- OLD NAMES OF 90XBC NICs, THESE NAMES USED FOR CHECKING IF THE NIC ALREADY INSTALLED

OLDProdHW36944Desc = "3Com Fast EtherLink XL 10/100Mb TX Ethernet NIC (3C905-TX)"
OLDProdHW36945Desc = "3Com Fast EtherLink XL 10/100Mb T4 Ethernet NIC (3C905-T4)"
OLDProdHW36949Desc = "3Com Fast EtherLink XL 10/100Mb TX Ethernet NIC (3C905B-TX)"
OLDProdHW36954Desc = "3Com Fast EtherLink XL 10/100Mb FX Ethernet NIC (3C905B-FX)"
OLDProdHW36864Desc = "3Com EtherLink XL TPO 10Mb Ethernet NIC (3C900-TPO)"
OLDProdHW36865Desc = "3Com EtherLink XL COMBO 10Mb Ethernet NIC (3C900-COMBO)"
OLDProdHW36868Desc = "3Com EtherLink XL TPO 10Mb Ethernet NIC (3C900B-TPO)"
OLDProdHW36869Desc = "3Com EtherLink XL COMBO 10Mb Ethernet NIC (3C900B-COMBO)"
OLDProdHW36870Desc = "3Com EtherLink XL TPC 10Mb Ethernet NIC (3C900B-TPC)"
OLDProdHW36874Desc = "3Com EtherLink XL FL 10Mb Ethernet NIC (3C900B-FL)"
OLDProdHW36952Desc = "3Com EtherLink XL COMBO 10/100Mb Ethernet NIC (3C905B-COMBO)"


; EtherDisk5.0 have diff. desc. for 10Mb cards, so we need to check that, too.

ED50HW36868Desc = "3Com EtherLink PCI TPO NIC (3C900B-TPO)"
ED50HW36864Desc = "3Com EtherLink PCI TPO NIC (3C900-TPO)"
ED50HW36865Desc = "3Com EtherLink PCI Combo NIC (3C900-COMBO)"
ED50HW36869Desc = "3Com EtherLink PCI Combo NIC (3C900B-COMBO)"
ED50HW36870Desc = "3Com EtherLink PCI TPC NIC (3C900B-TPC)"
ED50HW36874Desc = "3Com EtherLink PCI Fiber NIC (3C900B-FL)"

;------------------------------------------------------------------------------------------------


; List of NICs
CFIDList = {36944, 36945, 36864, 36865,36868, 36869, 36870, 36874, 36949, 36952, 36954, 37376, 37377}
AdapterType = 5

NT4_CFG = NT4_CFG


[GeneralConstants]
from = ""
to = ""
ExitCodeOk = 0
ExitCodeCancel = 1
ExitCodeFatal = 2
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
RegistryErrorIndex = NO_ERROR
KeyProduct = ""
KeyParameters = ""
TRUE = 1
FALSE = 0
NoTitle = 0
ExitState = "Active"
OldVersionExisted = $(FALSE)
DriverPath = $(!STF_NTPATH)\drivers
NT350VersionConstant = "3.50"
NT310VersionConstant = "3.10"
NT400VersionConstant = "(4.0)"
INF_PROCESSER = "I386"

enum = "enum"
int = "int"
long = "long"

disable = "DISABLE"
enable = "ENABLE"
disable_value = "DISABLE"
enable_value = "ENABLE"
basic = "Basic"
enhanced = "Enhanced"
media_select = "Media Select"
media_auto = "Auto-Negotiate"
media_10_full = "10 Mbps, Full-Duplex"
media_10_half = "10 Mbps, Half-Duplex"
media_100_full = "100 Mbps, Full-Duplex"
media_100_half = "100 Mbps, Half-Duplex"
media_default = "Hardware Default"
flow_control = "Flow Control"
rom_boot = "ROMBoot"
self_healing = "Self Healing"
num_tx_entries = "Descriptors: Transmit"
num_rx_entries = "Descriptors: Receive"
ipsec_offload = "Offload: IPSec"
tcpseg_offload = "Offload: TCP Segmentation"
checksum_offload = "Offload: IP Checksum"
vlan_offload = "Offload: 802.1p"
GenTxThreshold = "Transmit broadcast limiting"


[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate


[Identify]
read-syms Identification
set Status = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)


[ReturnOptions]
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)


[checkFileExist]
DiagFound = {} ? $(!LIBHANDLE) FindFileInstances $(!STF_WINDOWSSYSPATH)"\tcaudiag.exe"


[DiagRegistry]
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(!REG_KEY_WRITE) SOFTKEY
OpenRegKey $(SOFTKEY) "" "3Com" $(!REG_KEY_WRITE) COMKEY
ifstr $(COMKEY) == ""
CreateRegKey $(SOFTKEY) {"3Com", 0, GenericClass} "" $(!REG_KEY_WRITE) "" COMKEY
endif

OpenRegKey $(COMKEY) "" "TCAUDIAG" $(!REG_KEY_WRITE) TCAUDIAGKEY
ifstr $(TCAUDIAGKEY) == ""
CreateRegKey $(COMKEY) {"TCAUDIAG", 0, GenericClass} "" $(!REG_KEY_WRITE) "" TCAUDIAGKEY
endif

OpenRegKey $(TCAUDIAGKEY) "" "TCAUM90X" $(!REG_KEY_WRITE) TCAUM90XKEY
ifstr $(TCAUM90XKEY) == ""
CreateRegKey $(TCAUDIAGKEY) {"TCAUM90X", 0, GenericClass} "" $(!REG_KEY_WRITE) "" TCAUM90XKEY
endif

SetRegValue $(TCAUM90XKEY) {"DriverNames", 0, $(!REG_VT_SZ), "3C90X.COM;EL90X.DOS;SYSTEM\EL90XND3.SYS;SYSTEM\EL90XND4.SYS;SYSTEM\EL90XBC4.SYS"}
OpenRegKey $(TCAUM90XKEY) "" "Extensions" $(!REG_KEY_WRITE) ExtensionsKEY
ifstr $(ExtensionsKEY) == ""
CreateRegKey $(TCAUM90XKEY) {"Extensions", 0, GenericClass} "" $(!REG_KEY_WRITE) "" ExtensionsKEY
endif

OpenRegKey $(ExtensionsKEY) "" "DA" $(!REG_KEY_WRITE) DAKEY
ifstr $(DAKEY) == ""
CreateRegKey $(ExtensionsKEY) {"DA", 0, GenericClass} "" $(!REG_KEY_WRITE) "" DAKEY
endif

CloseRegKey $(SOFTKEY)
CloseRegKey $(COMKEY)
CloseRegKey $(TCAUDIAGKEY)
CloseRegKey $(TCAUM90XKEY)
CloseRegKey $(ExtensionsKEY)
CloseRegKey $(DAKEY)
return


[InstallOption]
set CurrLang = $($0)
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

set-subst LF = "\n"
read-syms InstallOptions
read-syms GeneralConstants
read-syms FileConstants
read-syms BoomFileConstants
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
EndWait


Begin = +
;*********** add this to check correct platform supported********
ifstr(i) $(!STF_PLATFORM) == "Alpha"
set CommonStatus = STATUS_USERCANCEL
goto end
else-ifstr(i) $(!STF_PLATFORM) == "Alpha_AXP"
set CommonStatus = STATUS_USERCANCEL
goto end
endif
;*****************************************************************

set CurrentVersionValue = ""
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
Ifstr(i) $(KeyNt) != ""
GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue
Debug-Output "$(InfFile) : WinNT CurrentVersion ="$(CurrentVersionValue)
CloseRegKey $(KeyNt)
Endif

ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
set NDIS_VER = NDIS4
else
set NDIS_VER = NDIS3
endif

read-syms BCDriverConstants$(NDIS_VER)
read-syms NDDriverConstants$(NDIS_VER)
ifstr(i) (*($(CurrentVersionValue),4)) == $(NT310VersionConstant)
Debug-Output "$(InfFile) : Configureadapter"
set Error = "Windows NT v3.10 is not support by this product"
goto fatal
endif

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
ifstr $(!STF_PLATFORM) == $(INF_PROCESSER)

ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG\TCAUM90X" $(!REG_KEY_READ) TCAUDIAGKEY
ifstr $(TCAUDIAGKEY) != ""
detect checkFileExist
set Diag = *($(DiagFound), 1)
ifstr(i) $(Diag) == "tcaudiag.exe"
; UN-Block the spawning of TD-Diags upon the "Properties" event in the NCP
StartDetachedProcess ExitCode "Windows Directory" "" $(DiagExe).EXE

else

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(!REG_KEY_ALL_ACCESS) NICKey
Ifstr(i) $(NICKey) != "" ; key exists
GetRegValue $(NICKey) "ServiceName" ServiceNameList

;Determine the Service Name and put in var NICServiceName
set NICServiceName = *($(ServiceNameList), 4)
endif
CloseRegKey $(NICKey)

;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Command Line parameter is -ServiceName_"$(NICServiceName)""
;"Windows Directory" being the system32 dir
RunProgram ExitCode "Windows Directory" "" $(NT4_CFG).EXE -ServiceName_$(NICServiceName)

; RunProgram ExitCode "Windows Directory" "" $(InstallerExe).EXE
set CommonStatus = STATUS_USERCANCEL
goto end

;StartDetachedProcess ExitCode "Windows Directory" "" NT4_CFG.EXE $(!NTN_RegBase)

endif


CloseRegKey $(TCAUDIAGKEY)

else


OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(!REG_KEY_ALL_ACCESS) NICKey
Ifstr(i) $(NICKey) != "" ; key exists
GetRegValue $(NICKey) "ServiceName" ServiceNameList

;Determine the Service Name and put in var NICServiceName
set NICServiceName = *($(ServiceNameList), 4)
endif
CloseRegKey $(NICKey)

;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Command Line parameter is -ServiceName_"$(NICServiceName)""
;"Windows Directory" being the system32 dir
RunProgram ExitCode "Windows Directory" "" $(NT4_CFG).EXE -ServiceName_$(NICServiceName)

; RunProgram ExitCode "Windows Directory" "" $(InstallerExe).EXE
set CommonStatus = STATUS_USERCANCEL
goto end


StartDetachedProcess ExitCode "Windows Directory" "" NT4_CFG.EXE $(!NTN_RegBase)

endif


set CommonStatus = STATUS_USERCANCEL
goto end

else
set StartLabel = configureadapter
endif


else-Ifstr(i) $(ProdKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

set Error = $($R0)
set from = end
set to = end
goto nonfatalinfo




else-Ifstr(i) $(NDProdKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

set Error = $($R0)
set from = end
set to = end
goto nonfatalinfo

else
set StartLabel = configureadapter
endif

else
set StartLabel = installadapter
set OEM_ABANDON_OPTIONS = {}
set OEM_ABANDON_SOFTWARE = FALSE
set OEM_ABANDON_ON = TRUE
endif


Debug-Output "$(InfFile) : =================================================="
Debug-Output "$(InfFile) : STF_CWDIR is: "$(!STF_CWDIR)
Debug-Output "$(InfFile) : STF_SRCDIR is: "$(!STF_SRCDIR)
Debug-Output "$(InfFile) : STF_LANGUAGE is: "$(!STF_LANGUAGE)
Debug-Output "$(InfFile) : Option is: "$(Option)
Debug-Output "$(InfFile) : !STF_NCN_InstallMode is:"$(!NTN_InstallMode)
Debug-Output "$(InfFile) : !STF_NCDETECT is: "$(!STF_NCDETECT)
Debug-Output "$(InfFile) : !STF_NCOPTION is: "$(!STF_NCOPTION)
Debug-Output "$(InfFile) : !STF_NCDETCARD is: "$(!STF_NCDETCARD)
Debug-Output "$(InfFile) : !STF_NCDETINFO is: "$(!STF_NCDETINFO)
Debug-Output "$(InfFile) : !STF_GUI_UNATTENDED is: "$(!STF_GUI_UNATTENDED)
Debug-Output "$(InfFile) : !STF_BusType is $(!STF_BUSTYPE)"
Debug-Output "$(InfFile) : !STF_BusTypeList is $(!STF_BUSTYPELIST)"
Debug-Output "$(InfFile) : =================================================="

set from = $(fatal)
set to = $(fatal)
goto $(StartLabel)


installadapter = +
Debug-Output "$(InfFile) : Installadapter"
OpenRegKey $(!REG_H_LOCAL) "" $(ProdKeyName) $(!REG_KEY_READ) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
ifstr(i) !(NTN_RegBase) == $(ProdKeyName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error: cannot get an error string."
goto ShellCodeError
endif
goto end
else
;********* add this because of 2 service names *******************************
OpenRegKey $(!REG_H_LOCAL) "" $(NDProdKeyName) $(!REG_KEY_READ) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
ifstr(i) !(NTN_RegBase) == $(NDProdKeyName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error: cannot get an error string."
goto ShellCodeError
endif
goto end
else
set OldVersionExisted = $(TRUE)
endif
Endif
;*****************************************************************************
;;;set OldVersionExisted = $(TRUE)
endif
Endif
Goto adapteroptions


configureadapter = +
Debug-Output "$(InfFile) : Configureadapter"
set Error = "Cannot configure the software component"
goto fatal


adapteroptions = +
Debug-Output "$(InfFile) : Adapteroptions"
set from = adapteroptions
ifstr(i) $(!NTN_InstallMode) == configure
goto updateparameters
endif


installproduct =+
install "Install-OTHER"
Debug-Output "$(InfFile) : installproduct"
StartWait
set AdapterList = $($R1)

Debug-Output "$(InfFile) : About to look for 3Com PCI Cards"
set TargetVersion = *($(CurrentVersionValue),4)

Debug-Output "$(InfFile) : Current Version:"$(TargetVersion)
ifstr $(TargetVersion) == $(NT350VersionConstant)
Debug-Output "Running on WindowsNT 3.50"
set Version350 = $(TRUE)
else
Debug-Output "Running on WindowsNT 3.51 or higher"
set Version350 = $(FALSE)
endif

ifint $(Version350) == $(TRUE)
Debug-Output "Running on WindowsNT v3.50, Not using PCI Detection!!!"

ifstr $(!STF_GUI_UNATTENDED) == "YES"
Debug-Output "$(InfFile) : Running in GUI unattended mode"
ifstr(i) $(!AutoNetInterfaceType) != ""
set BusInterfaceType = $(!AutoNetInterfaceType)
else
set BusInterfaceType = 5
endif

ifstr(i) $(!AutoNetBusNumber) != ""
set BusNumber = $(!AutoNetBusNumber)
else
set BusNumber = 0
endif

set NTDetected = $(FALSE)
set AdapterList = {{$(Option),0, XXXXX}}
Debug-Output "$(InfFile) : BusInterfaceType = $(BusInterfaceType)"
Debug-Output "$(InfFile) : BusNumber = $(BusNumber)"

else ;;; GUI_UNATTENDED=NO
Debug-Output "$(InfFile) : Running 3.50 Bus Dialog"
set BusInterfaceType = 5
set BusNumber = 0
set NTDetected = $(FALSE)
Shell $(UtilityInf),GetBusTypeDialog,$(ProdHWXXXXXDesc) $(BusInterfaceType) $(BusNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error."
goto ShellCodeError
endif

set BusInterfaceType = $($R1)
set BusNumber = $($R2)
set AdapterList = {{$(Option),0, XXXXX}}
Debug-Output "$(InfFile) : BusInterfaceType = $(BusInterfaceType)"
Debug-Output "$(InfFile) : BusNumber = $(BusNumber)"
endif ;;; end check GUI_UNATTENDED


else ;;; Version350=FALSE
Debug-Output "$(InfFile) : Running 3.51 or higher using PCI Dectection"
set NTDetected = $(TRUE)
set Vendor = 4279
set CFIDList = $(CFIDList)
Debug-Output "$(InfFile) : VendorID = $(Vendor)"
Debug-Output "$(InfFile) : CFIDList = $(CFIDList)"
set AdapterList = {}

ForListDo $(CFIDList)
set-div CFID = $($) 1
set DeviceID = $($)
Shell $(UtilityInf), GetPCIInformation, $(Vendor) $(CFID)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

ForListDo $($R0)
set AdapterList = >($(AdapterList), {*($($),1), *($($),2), $(DeviceID)})
EndForListDo

EndForListDo

ifstr(i) $(AdapterList) == {}
set Error = $(CANNOT_FIND_ANY_CARD)
set CommonStatus = USER_CANCEL
set from = end
goto nonfatal
endif
endif

set ToInstallList = {}
Debug-Output "$(InfFile) : Adapterlist = $(AdatperList)"



ForListDo $(AdapterList)
ifint $(NTDetected) == $(TRUE)
set DetectedBusNum = *($($),1)
set DetectedSlotNum = *($($),2)
set DeviceID = *($($),3)


; 1.) Call Executable to populate the reg key "SOFTWARE\3Com\PCI_DATA" with the PCI data the current instance of the NIC
RunProgram ExitCode "" "" $(SrcDir)PCI_DATA.EXE /$(DetectedBusNum) /$(DetectedSlotNum)


; 2.) Check open key for the data of interest. *** DeviceID, SubSystemID, SubVendorID, and VendorID are present

OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\PCI_DATA" $(!REG_KEY_ALL_ACCESS) PCI_DATA_KEY

GetRegValue $(PCI_DATA_KEY) "DeviceID" Array_DeviceID
GetRegValue $(PCI_DATA_KEY) "VendorID" Array_VendorID
GetRegValue $(PCI_DATA_KEY) "SubSystemID" Array_SubSystemID
GetRegValue $(PCI_DATA_KEY) "SubVendorID" Array_SubVendorID

Set Value_DeviceID = *($(Array_DeviceID),4)
Set Value_VendorID = *($(Array_VendorID),4)
Set Value_SubSystemID = *($(Array_SubSystemID),4)
Set Value_SubVendorID = *($(Array_SubVendorID),4)

;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected DeviceID is ("$(Value_DeviceID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected VendorID is ("$(Value_VendorID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubSystemID is ("$(Value_SubSystemID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubVendorID is ("$(Value_SubVendorID)")"

; 3.) Stepthrough logic to determine card type



; 3Com Product
ifstr(i) $(Value_VendorID) == "10B7"

; 3C905C NIC / Mini PCI NIC

; 3C905C (NIC) ********************************************************
ifstr(i) $(Value_DeviceID) == "9200"
ifstr(i) $(Value_SubSystemID) == "1000"
ifstr(i) $(Value_SubVendorID) == "10B7"

; Only in this circumstance is it a 3Com NIC
; Vendor and SubVendor ID = 10B7 so it's not a LOM
; SubSystem ID IS NOT(!) a duplicate of Device ID

set DeviceID = 37376NIC
endif
endif
endif

; 3C905C (Mini PCI NIC) ***********************************************
ifstr(i) $(Value_DeviceID) == "9200"
ifstr(i) $(Value_SubSystemID) == "7000"

ifstr(i) $(Value_SubVendorID) == "10B7"

; Only in this circumstance is it a 3Com NIC
; Vendor and SubVendor ID = 10B7 so it's not a LOM
; SubSystem ID IS NOT(!) a duplicate of Device ID

set DeviceID = 37376MiniPCI
endif
endif
endif


; 3C905 Catch All *****************************************************
ifstr(i) $(Value_DeviceID) == "9200"

; *** The DeviceID is 9200 ***
; *** The Vendor ID is 10B7 (3Com) but the SubVendorID IS NOT ***
; *** You're in an OEM situation. Break out of this iteration fo the Loop ***
; *** SubSystemID is a don't care value. OEMs can assign this to ANYTHING ***

ifstr(i) $(Value_SubVendorID) != "10B7"
set DeviceID = 37376CatchAll
endif

endif

; 3C905B (NIC) ******************************************************
ifstr(i) $(Value_DeviceID) == "9055"
ifstr(i) $(Value_SubSystemID) == "9055"
ifstr(i) $(Value_SubVendorID) == "10B7"

; Only in this circumstance is it a 3Com NIC
; Vendor and SubVendor ID = 10B7 so it's not a LOM
; SubSystem ID IS a duplicate of Device ID

set DeviceID = 36949NIC
endif
endif
endif

; 3C918 (LOM NIC) ****************************************************
ifstr(i) $(Value_DeviceID) == "9055"

; *** The DeviceID is 9055 ***
; *** The Vendor ID is 10B7 (3Com) but the SubVendorID IS NOT ***
; *** You're in an OEM situation.
; *** SubSystemID is a don't care value. OEMs can assign this to ANYTHING ***

ifstr(i) $(Value_SubVendorID) != "10B7"
set DeviceID = 36949CatchAll
endif

endif


endif



CloseRegKey $(PCI_DATA_KEY)


Debug-Output "$(InfFile) : DetectedBusNumber = $(DetectedBusNum)"
Debug-Output "$(InfFile) : DetectedSlotNum = $(DetectedSlotNum)"

;**************** add this because of 2 Service names**************
set BoomCard = FALSE
ifstr(i) $(DeviceID) == "36944"
set BoomCard = TRUE
else-ifstr(i) $(DeviceID) == "36945"
set BoomCard = TRUE
else-ifstr(i) $(DeviceID) == "36864"
set BoomCard = TRUE
else-ifstr(i) $(DeviceID) == "36865"
set BoomCard = TRUE
endif

ifstr(i) $(BoomCard) == TRUE
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProdHW$(DeviceID)Desc), "El90xnd"

ifstr(i) $($R1) != "YES"
goto AddToNotList
else
goto endchecking
endif

;we don't have to check old names for Boomerang because we don't allow update on Boomerang
;Update only allowed if Boom card has used new service name El90xnd.
;Ed5.0 and anything before that didn't use service name El90xnd.

else ; 90xBC CARD
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), +
$(DetectedSlotNum), $(ProdHW$(DeviceID)Desc), "El90x"

;**** DO THIS BECAUSE WE NOW USE NEW NAMES FOR OUR CARDS, CHECK OLD NAME
ifstr(i) $($R1) != "YES" ;not installed yet, not sure, check oldnames
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), +
$(DetectedSlotNum), $(OLDProdHW$(DeviceID)Desc), "El90x"

ifstr(i) $($R1) != "YES" ;not installed yet, still not sure because we changed desc twice before
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), +
$(DetectedSlotNum), $(ED50HW$(DeviceID)Desc), "El90x"

ifstr(i) $($R1) != "YES" ;not installed yet, sure by now
goto AddToNotList
else ;already installed with old name on ED5.0
goto endchecking
endif

else ;already installed with old name on ED4.0 or before that
goto endchecking
endif
else ;already installed with current name on ECD5.1
goto endchecking
endif
endif


AddToNotList=+
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
endif

;ifstr(i) $(ToInstallList) == {} ; COMMENT THIS OUT TO INSTALL MULTIPLE NIC at a time
ifstr(i) $($R1) != "YES"
set ToInstallList = >($(ToInstallList), $($))
endif
;endif


endchecking =+

endif

EndForListDo




ifstr(i) $(ToInstallList) == {}
set Error = $(CANNOT_FIND_ANY_UNINSTALLED_CARD)
set CommonStatus = USER_CANCEL
set from = end
goto nonfatal
endif



ForListDo $(ToInstallList)
set DetectedBusNum = *($($),1)
set DetectedSlotNum = *($($),2)
set DeviceID = *($($),3)
set BoomDetected = FALSE
set NonBoomDetected = FALSE


; 1.) Call Executable to populate the reg key "SOFTWARE\3Com\PCI_DATA" with the PCI data the current instance of the NIC
RunProgram ExitCode "" "" $(SrcDir)PCI_DATA.EXE /$(DetectedBusNum) /$(DetectedSlotNum)


; 2.) Check open key for the data of interest. *** DeviceID, SubSystemID, SubVendorID, and VendorID are present

OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\PCI_DATA" $(!REG_KEY_ALL_ACCESS) PCI_DATA_KEY

GetRegValue $(PCI_DATA_KEY) "DeviceID" Array_DeviceID
GetRegValue $(PCI_DATA_KEY) "VendorID" Array_VendorID
GetRegValue $(PCI_DATA_KEY) "SubSystemID" Array_SubSystemID
GetRegValue $(PCI_DATA_KEY) "SubVendorID" Array_SubVendorID

Set Value_DeviceID = *($(Array_DeviceID),4)
Set Value_VendorID = *($(Array_VendorID),4)
Set Value_SubSystemID = *($(Array_SubSystemID),4)
Set Value_SubVendorID = *($(Array_SubVendorID),4)

;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected DeviceID is ("$(Value_DeviceID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected VendorID is ("$(Value_VendorID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubSystemID is ("$(Value_SubSystemID)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubVendorID is ("$(Value_SubVendorID)")"

; 3.) Stepthrough logic to determine card type


; 3Com Product
ifstr(i) $(Value_VendorID) == "10B7"


; 3C905C NIC / Mini PCI NIC

; 3C905C (NIC) ********************************************************
ifstr(i) $(Value_DeviceID) == "9200"
ifstr(i) $(Value_SubSystemID) == "1000"
ifstr(i) $(Value_SubVendorID) == "10B7"

; Only in this circumstance is it a 3Com NIC
; Vendor and SubVendor ID = 10B7 so it's not a LOM
; SubSystem ID IS NOT(!) a duplicate of Device ID

set DeviceID = 37376NIC
endif
endif
endif

; 3C905C (Mini PCI NIC) ***********************************************
ifstr(i) $(Value_DeviceID) == "9200"
ifstr(i) $(Value_SubSystemID) == "7000"

ifstr(i) $(Value_SubVendorID) == "10B7"

; Only in this circumstance is it a 3Com NIC
; Vendor and SubVendor ID = 10B7 so it's not a LOM
; SubSystem ID IS NOT(!) a duplicate of Device ID

set DeviceID = 37376MiniPCI
endif
endif
endif


; 3C905 Catch All *****************************************************
ifstr(i) $(Value_DeviceID) == "9200"

; *** The DeviceID is 9200 ***
; *** The Vendor ID is 10B7 (3Com) but the SubVendorID IS NOT ***
; *** You're in an OEM situation. Break out of this iteration fo the Loop ***
; *** SubSystemID is a don't care value. OEMs can assign this to ANYTHING ***

ifstr(i) $(Value_SubVendorID) != "10B7"
set DeviceID = 37376CatchAll
endif

endif

; 3C905B (NIC) ******************************************************
ifstr(i) $(Value_DeviceID) == "9055"
ifstr(i) $(Value_SubSystemID) == "9055"
ifstr(i) $(Value_SubVendorID) == "10B7"

; Only in this circumstance is it a 3Com NIC
; Vendor and SubVendor ID = 10B7 so it's not a LOM
; SubSystem ID IS a duplicate of Device ID

set DeviceID = 36949NIC
endif
endif
endif

; 3C918 Catch All ****************************************************
ifstr(i) $(Value_DeviceID) == "9055"

; *** The DeviceID is 9055 ***
; *** The Vendor ID is 10B7 (3Com) but the SubVendorID IS NOT ***
; *** You're in an OEM situation.
; *** SubSystemID is a don't care value. OEMs can assign this to ANYTHING ***

ifstr(i) $(Value_SubVendorID) != "10B7"
set DeviceID = 36949CatchAll
endif

endif


endif



CloseRegKey $(PCI_DATA_KEY)




;********************************************************************
; Check if 90XBC or Boomerang
;********************************************************************
set BoomCard = FALSE

ifstr(i) $(DeviceID) == "36944"
set BoomCard = TRUE
else-ifstr(i) $(DeviceID) == "36945"
set BoomCard = TRUE
else-ifstr(i) $(DeviceID) == "36864"
set BoomCard = TRUE
else-ifstr(i) $(DeviceID) == "36865"
set BoomCard = TRUE
endif

ifstr(i) $(BoomCard) == TRUE
set CorrectProdHWName = $(NDProdHWName)
set CorrectProdSWName = $(NDProdSWName)
set CorrectNetRuleSWType = $(NDNetRuleSWType)
set CorrectNetRuleSWBindForm = $(NDNetRuleSWBindForm)
set CorrectNetRuleSWClass = $(NDNetRuleSWClass)
set CorrectNetRuleSWBindable = $(NDNetRuleSWBindable)
set CorrectNetRuleHWBindForm = $(NDNetRuleHWBindForm)
set CorrectNetRuleHWType = $(NDNetRuleHWType)
set CorrectNetRuleHWClass = $(NDNetRuleHWClass)
set CorrectProdKeyName = $(NDProdKeyName)
set CorrectParamKeyName = $(NDParamKeyName)
set CorrectProdSWDesc = $(NDProdSWDesc)
set CorrectProdSWTitle = $(NDProdSWTitle)

ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
set CorrectNetEventDLL = $(ND4NDNetEventDLL)
set CorrectProdSWImagePath = $(ND4NDProdSWImagePath)
set CorrectProdSWUpgradePath = $(ND4NDProdSWUpgradePath)
else
set CorrectNetEventDLL = $(ND3NDNetEventDLL)
set CorrectProdSWImagePath = $(ND3NDProdSWImagePath)
set CorrectProdSWUpgradePath = $(ND3NDProdSWUpgradePath)
endif

else ; 90XBC CARD
set CorrectProdSWDesc = $(ProdSWDesc)
set CorrectProdSWTitle = $(ProdSWTitle)
set CorrectProdHWName = $(ProdHWName)
set CorrectProdSWName = $(ProdSWName)
set CorrectNetRuleSWType = $(NetRuleSWType)
set CorrectNetRuleSWBindForm = $(NetRuleSWBindForm)
set CorrectNetRuleSWClass = $(NetRuleSWClass)
set CorrectNetRuleSWBindable = $(NetRuleSWBindable)
set CorrectNetRuleHWBindForm = $(NetRuleHWBindForm)
set CorrectNetRuleHWType = $(NetRuleHWType)
set CorrectNetRuleHWClass = $(NetRuleHWClass)
set CorrectProdKeyName = $(ProdKeyName)
set CorrectParamKeyName = $(ParamKeyName)

ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
set CorrectNetEventDLL = $(ND4BCNetEventDLL)
set CorrectProdSWImagePath = $(ND4BCProdSWImagePath)
set CorrectProdSWUpgradePath = $(ND4BCProdSWUpgradePath)
else
set CorrectNetEventDLL = $(ND3BCNetEventDLL)
set CorrectProdSWImagePath = $(ND3BCProdSWImagePath)
set CorrectProdSWUpgradePath = $(ND3BCProdSWUpgradePath)
endif

endif ; END CHECK CARD



;DEBUG:
; ifstr(i) $(BoomCard) == TRUE
; Set DlgText = "bOOM CARD"
; else
; Set DlgText = "90xbc CARD"
; endif
; Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText)
; Set DlgText = "firstDB "$(CorrectProdHWName)" "$(CorrectProdSWName)
; Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText)
; Set DlgText = $(CorrectProdKeyName)" "$(CorrectProdSWImagePath)
; Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText)
; Set DlgText = "Netevent "$(CorrectNetEventDLL)
; Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText)
;END DEBUG

OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(CorrectProdHWName) $(!REG_KEY_READ) KeyNt
CloseRegKey $(KeyNt)

Ifstr(i) $(KeyNt) == "" ; Begin check Key=null

Debug-Output "$(InfFile) : AddSoftwareComponent"
Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
$(CorrectProdSWName), +
$(CorrectProdSWName), +
$(CorrectProdSWTitle), $(STF_CONTEXTINFNAME), +
$(CorrectProdSWImagePath), "kernel", "NDIS", {}, "",+
$(CorrectNetEventDLL)
Set OEM_ABANDON_SOFTWARE = TRUE

ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
endif

;DEBUG:
; ifstr(i) $(BoomCard) == TRUE
; Set DlgText = "bOOM CARD"
; else
; Set DlgText = "90xbc CARD"
; endif
; Shell "Done Add Software comp to get keyhandle"
; Set DlgText = "firstDB "$(CorrectProdHWName)" "$(CorrectProdSWName)
;END DEBUG

Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
Set SoftServiceKey = $($R3)
Set SoftParameterKey = $($R4)
Set SoftLinkageKey = $($R5)
set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SWType)},+

{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMajorVer)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMinorVer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWDesc)},+
{Review,$(NoTitle),$(!REG_VT_DWORD),$(ProdReview)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWName)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)},+
{EDVersion,$(NoTitle),$(!REG_VT_SZ),$(EtherDiskVersion)}}
Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)

ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
goto fatalregistry
endif

set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetRuleSWType)},+

{use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSWUse)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetRuleSWBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(CorrectNetRuleSWClass)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(CorrectNetRuleSWBindable)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)

ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
goto fatalregistry
endif

;********** Add parameter for driver *************************

set WakeOnLan = YES
set WakeOnLink = NO
set ValueEnable = ENABLE

ifstr(i) $(BoomCard) == TRUE
Set NewValueList = {{WakeOnMagic,$(NoTitle),$(!REG_VT_SZ),$(WakeOnLan)},+
{WakeOnLink,$(NoTitle),$(!REG_VT_SZ),$(WakeOnLink)},+
{FLOWCONTROL,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}}

else
Set NewValueList = {{RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)},+
{FLOWCONTROL,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}}
endif

Shell $(UtilityInf), AddValueList, $(SoftParameterKey), $(NewValueList)
CreateRegKey $(SoftParameterKey) {"3CDefault" , 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) +
"" KeyNt2

;;;
Set ThisValueList = {RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}


OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(NDProdSWName) $(!REG_KEY_ALL_ACCESS) NDKeyNt
ifstr $(KeyNt2) != ""
SetRegValue $(KeyNt2 ) $("ThisValueList")
CloseRegKey $(KeyNt2 )
endif
;;;

ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)

Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
goto fatalregistry
endif

;*************************************************************

endif ; end check Key=null

Debug-Output "$(InfFile) : DetectedBusNumber = $(DetectedBusNum)"
Debug-Output "$(InfFile) : DetectedSlotNum = $(DetectedSlotNum)"
Debug-Output "$(InfFile) : Installing Card at $(DetectedBusNum):$(DetectedSlotNum)!"

Shell $(UtilityInf), AddHardwareComponent, $(CorrectProdHWName),$(STF_CONTEXTINFNAME),$(CorrectProdKeyName)
ifint $($R4) != -1
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
endif

ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
goto fatalregistry
endif


Set HardNetCardKey = $($R1)
Set HardNetRuleKey = $($R2)
Set HardParameterKey = $($R3)
set AdapterNumber = $($R4)
set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProdHW$(DeviceID)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProdHW$(DeviceID)Desc)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdHWName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)},+
{EDVersion,$(NoTitle),$(!REG_VT_SZ),$(EtherDiskVersion)},+
}

; Workaround: Sometimes AddHardwareComponent can't return correct handle for HardNetCardKey
; We have to manually open the key using adapter number returned from AddHardwareComponent
; might have to do the same for HardParameterKey

OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKey)$($R4) $(!REG_KEY_SET_VALUE) HardNetCardKey

; end workaround

Shell $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

;set RegistryErrorIndex = $($R0)
;Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
;EndWait
;goto fatalregistry
;endif

set BusTypeNum = 5
ifstr(i) $(DeviceID) == "36944"
set CardType = 0
else-ifstr(i) $(DeviceID) == "36945"
set CardType = 0
else-ifstr(i) $(DeviceID) == "36949"
set CardType = 0
else
set CardType = 2
endif

ifint $(NTDetected) == $(TRUE)
set BusNumber = $(DetectedBusNum)
set SlotNum = $(DetectedSlotNum)
set BusInterfaceType = $(BusTypeNum)
set WakeOnLan = YES
set WakeOnLink = NO
set FlowControl = ENABLE

;
Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"

Set NewValueList = {+
{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
{Slot,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)},+
{FlowControl,$(NoTitle),$(!REG_VT_SZ),$(FlowControl)},+
{DownPollRate,$(NoTitle),$(!REG_VT_SZ),"8"},+
{NDIS_VERSION,$(NoTitle),$(!REG_VT_SZ),"NDIS 4"},+
{8021pOffload,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
{RxChecksum,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
{TxChecksum,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
{RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),"ENABLE"},+
{InitDelayCount,$(NoTitle),$(!REG_VT_SZ),"0"},+
{DoubleNego,$(NoTitle),$(!REG_VT_SZ),"ENABLE"},+
{PHYCompat,$(NoTitle),$(!REG_VT_SZ),"ENABLE"},+
{LnkChk,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
{RWUPING,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
{RWUARP,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
}

Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)

ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(!REG_KEY_WRITE) SOFTKEY
OpenRegKey $(SOFTKEY) "" "3Com" $(!REG_KEY_WRITE) COMKEY


; If the 3Com Key doesn't exists, create one.
ifstr $(COMKEY) == ""
CreateRegKey $(SOFTKEY) {"3Com", 0, GenericClass} "" $(!REG_KEY_WRITE) "" COMKEY
endif

OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
Ifstr(i) $(ServicesKey) != "" ; key exists

EnumRegKey $(ServicesKey) DriverList

ForListDo $(DriverList)





; *** Check whether any EL99X driver instances are present. This is a NIC project specific check!
set foundPythonInstance = FALSE
set Driver = *($($), 1)


Split-String "$(Driver)" "X" DriverTokens

set DriverName = *($(DriverTokens), 1)
ifstr(i) $(Driver) != "EL90X"
ifstr(i) $(DriverName) == "El90"
; We have found a 3Com client-related key
set found3ComClientInstance = TRUE
endif
endif


Split-String "$(Driver)" "x" DriverTokens

set DriverName = *($(DriverTokens), 1)
ifstr(i) $(Driver) != "EL90x"
ifstr(i) $(DriverName) == "El90"
; We have found a 3Com client-related key
set found3ComClientInstance = TRUE
endif
endif


; *** Create a key with a cooresponding service name under the SOFTWARE\3Com key.

Ifstr(i) $(found3ComClientInstance) == "TRUE"

;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Found Typhoon Driver instance ("$(DriverName)")"
;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Driver instance name is ("$(Driver)")"

CreateRegKey $(COMKEY) {$(Driver), 0, GenericClass} "" $(!REG_KEY_WRITE) "" THISNIC
endif





; *************************************************************************************************
; *************************************************************************************************
; NT4_CFG
;
; INSTRUCTIONS
;
; HKEY_LOCAL_MACHINE\SOFTWARE\3Com\B A S E K E Y
;
;Under the BASEKEY we'll have ALL of the NIC parameters the driver supports under the Windows NT 4
;operating system.
;
;e.g.
;
;HKEY_LOCAL_MACHINE\SOFTWARE\3Com\EL99X\F L O W C O N T R O L
;
;Where EL99x is the BASEKEY. Under the parameter you'll find a subkey that determines the type of information
;tobe/nottobe displayed. Legal subkey types are "enum","single value","protected", and "range"
;
;enum: Every Value under this key will be displayed in a listbox. User selections and changes
; will be based upon those value/data combinations exposed under the enum key.
;
;single value: 1 value is expected. The 1st value present that isn't "Default" will be shown. This
; value can be changed at the user's request.
;
;protected: 1 value is expected. Said value will be shown but can not be changed by the user.
;
;range: Programmatically a value will be shown. It will be incremented/decremented based
; on Windows 2000 type /enum data exposed under this key
;
; *************************************************************************************************
; *************************************************************************************************


Ifstr(i) $(found3ComClientInstance) == "TRUE"

;BEGIN PARAMETERS LIST
; *************************************************************************************************

; *** 8021pOffload (DATATYPE ENUM) ***

CreateRegKey $(THISNIC) {"8021pOffload", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_8021pOffload
SetRegValue $(KEY_8021pOffload),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "802.1p Support" }

CreateRegKey $(KEY_8021pOffload) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM

Set ThisValueList = {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
{$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
}

Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)

ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

; *************************************************************************************************

; *** DownPollRate (DATATYPE enum) ***

CreateRegKey $(THISNIC) {"DownPollRate", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_DownPollRate
SetRegValue $(KEY_DownPollRate),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "Down Poll Rate"}

CreateRegKey $(KEY_DownPollRate) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM

Set ThisValueList = {{8,$(NoTitle),$(!REG_VT_SZ),"8"},+
{64,$(NoTitle),$(!REG_VT_SZ),"64"},+
}

Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)

ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

; *************************************************************************************************

; *** FlowControl (DATATYPE ENUM) ***

CreateRegKey $(THISNIC) {"FlowControl", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_FlowControl
SetRegValue $(KEY_FlowControl),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "Flow Control" }

CreateRegKey $(KEY_FlowControl) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM

Set ThisValueList = {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
{$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
}

Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)

ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

; *************************************************************************************************

; *** Media (DATATYPE ENUM) ***

CreateRegKey $(THISNIC) {"media_type", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_XCVR_SELECT
SetRegValue $(KEY_XCVR_SELECT),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "Media Type" }

CreateRegKey $(KEY_XCVR_SELECT) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM

Set ThisValueList = {{AUTOSELECT,$(NoTitle),$(!REG_VT_SZ),$(media_auto)},+
{10HALF,$(NoTitle),$(!REG_VT_SZ),$(media_10_half)},+
{100HALF,$(NoTitle),$(!REG_VT_SZ),$(media_100_half)},+
{10FULL,$(NoTitle),$(!REG_VT_SZ),$(media_10_full)},+
{100FULL,$(NoTitle),$(!REG_VT_SZ),$(media_100_full)},+
{HWDEFAULT,$(NoTitle),$(!REG_VT_SZ),$(media_default)},+
}

Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)

ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif

; *************************************************************************************************

; *** RxChecksum ***

CreateRegKey $(THISNIC) {"RxChecksum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_RxChecksum
SetRegValue $(KEY_RxChecksum),{FriendlyName,$(NoTitle),$(!REG_VT_SZ
0