Gros problème,avis d'un expert demandé.
Résolu
Utilisateur anonyme
-
Yoan Messages postés 11905 Statut Modérateur -
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.
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:
- Gros problème,avis d'un expert demandé.
- Expert php pinterest - Télécharger - Langages
- Expert cpu - Télécharger - Informations & Diagnostic
- Musique expert miami - Forum Musique / Radio / Clip
- Destockpro expert avis - Forum Consommation & Internet
- Anagramme expert - Forum Logiciels
45 réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ?
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 ?
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
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
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.
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.
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é.
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é.
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.
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.
Sa va ètre galère, comment savoir quel pilote est a l'origine de tout ces problème ?
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 ?
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 ?
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.
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.
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.
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.
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.
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.
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.
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.
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 ?
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 ?
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.
Maintenent je vais redémarer et on vérras apres.
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.
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.
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
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