Valgarv Posted November 28, 2008 Share Posted November 28, 2008 Attention question existentielle ! Quand vous faites un IPConfig /all , Windows vous sort les infos de votre carte réseau, et notamment le nom du fabricant (+ modèle de carte) et l'adresse MAC. Ma question est la suivante : où Windows récupère-t-il le nom du fabricant (et par extension le modèle) ? - Les 3 premiers octets de l'adresse MAC, l'OUI, identifient le constructeur, les valeurs hexa étant données par l'IEEE aux constructeurs. Je doute que Windows dispose d'une table référençant les correspondances OUI - Constructeur. Surtout parce que si un nouveau fabricant sort, il y sera pas du coup (même si ça serait possible via les MAJ windows). - L'adresse MAC est enregistrée dans l'EPROM de la carte Réseau, auraient-ils également enregistré le nom du fabricant et le modèle ? Windows vie l'installation des pilotes irait lire les infos dans cette EPROM. - Tout con : Tout est dans le driver. J'avoue que ça me turlupine. Link to comment Share on other sites More sharing options...
fabien29200 Posted November 28, 2008 Share Posted November 28, 2008 Un indice peut être en voyant qu'il n'y a pas que les cartes réseaux dont le nom est connu ? Et que si tu mets un périphérique non référencé sans avoir installé de driver on voit alors : "Périphérique inconnu" ? Link to comment Share on other sites More sharing options...
Valgarv Posted November 28, 2008 Author Share Posted November 28, 2008 Still... L'info serait-elle dans le driver ? Ou sur le périphérique (le driver permettant d'aller lire l'info dans la ROM) ? Pour avoir regardé un fichier .inf de Realtek, l'info semblerait en find e compte être dans le driver justement. Cf la fin du fichier : ;;Source disk nameDISKNAME = "Realtek 10/100/1000 NIC Family all in one NDIS Driver" RTL8169.DeviceDesc = "Realtek RTL8169/8110 Family Gigabit Ethernet NIC" RTL8139.DeviceDesc = "Realtek RTL8139/810x Family Fast Ethernet NIC" RTL8139P.DeviceDesc = "Realtek RTL8139C+ Fast Ethernet NIC" RTL8139Panasonic.DeviceDesc = "(MOBILE ASSIST)Realtek RTL8139/810x Family Fast Ethernet NIC" ;;NT service name Rtlnic.Service.DispName = "Realtek 10/100/1000 PCI NIC Family NDIS NT Driver" Rtlnicxp.Service.DispName = "Realtek 10/100/1000 PCI NIC Family NDIS XP Driver" Rtlnicx64.Service.DispName = "Realtek 10/100/1000 PCI NIC Family NDIS XP(x64) Driver" Link to comment Share on other sites More sharing options...
aerocool Posted November 28, 2008 Share Posted November 28, 2008 Les 3 premiers octets de l'@ Mac servent à identifier le fabriquant, le modèle etc Link to comment Share on other sites More sharing options...
Krapace Posted November 28, 2008 Share Posted November 28, 2008 Les 3 premiers octets de l'@ Mac servent à identifier le fabriquant, le modèle etc Une adresse MAc se changeant tu peut donc faire reconnaitre un autre modèle par l'OS ? Non je pense juste que le nom du constructeur et modèle sont en dur dans le chip de la carte Link to comment Share on other sites More sharing options...
aerocool Posted November 29, 2008 Share Posted November 29, 2008 Comment tu changes une @ Mac? Personnellement je sais que c'est sur ces 3 premiers octets, je l'apprend en cours maintenant ça peut avoir changé Link to comment Share on other sites More sharing options...
Krapace Posted November 29, 2008 Share Posted November 29, 2008 http://fr.wikipedia.org/wiki/Adresse_MAC Link to comment Share on other sites More sharing options...
Valgarv Posted November 29, 2008 Author Share Posted November 29, 2008 Comment tu changes une @ Mac?Personnellement je sais que c'est sur ces 3 premiers octets, je l'apprend en cours maintenant ça peut avoir changé Les 3 premiers octets identifient le constructeur chez l'IEEE, pas chez Windows, c'est une identification universelle, ça n'a rien à voir avec l'OS. Faut pas oublier que Windows est un con. Si tu lui files un OUI, y va pas te sortir "c'est tel fabricant", sauf s'il a une table de référence ou s'il va interoger une base chez l'IEEE. Comme dit Krapace il est aussi possible que ce soit en dur dans l'EPROM, mais au final je pencherai plutôt pour le driver... [version]Signature = "$Chicago$" Compatible = 1 Class = Net ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} Provider = %Realtek% CatalogFile.NT = netrtl.cat ;;for WHQL certified DriverVer = 10/30/2008,5.707.1030.2008 [Manufacturer] %Realtek% = Realtek, NTx86.5.1, NTamd64 [ControlFlags] ExcludeFromSelect = * [Realtek] ; DisplayName Section DeviceID ; ----------- ------- -------- %RTL8169.DeviceDesc% = RTL8169.ndi, PCI\VEN_10EC&DEV_8169 %RTL8169.DeviceDesc% = RTL8169.ndi, PCI\VEN_10EC&DEV_8167 %RTL8139.DeviceDesc% = RTL8139.ndi, PCI\VEN_10EC&DEV_8139&REV_10 %RTL8139P.DeviceDesc% = RTL8139P.ndi, PCI\VEN_10EC&DEV_8139&REV_20 %RTL8169.DeviceDesc% = RTL8169.ndi, PCI\VEN_10EC&DEV_8169&SUBSYS_816910EC %RTL8169.DeviceDesc% = RTL8169.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_816710EC %RTL8139.DeviceDesc% = RTL8139.ndi, PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10 %RTL8139P.DeviceDesc% = RTL8139P.ndi, PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_20 %RTL8139.DeviceDesc% = RTL8139_TOS.ndi, PCI\VEN_10EC&DEV_8139&SUBSYS_00011179 %RTL8139.DeviceDesc% = RTL8139_TOS.ndi, PCI\VEN_10EC&DEV_8139&SUBSYS_00021179 %RTL8139Panasonic.DeviceDesc% = RTL8139.ndi, PCI\VEN_10EC&DEV_8139&SUBSYS_834310F7 [Realtek.NTx86.5.1]; This section will only be installed by Windows XP %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8169 %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167 %RTL8139.DeviceDesc% = RTL8139x.ndi, PCI\VEN_10EC&DEV_8139&REV_10 %RTL8139P.DeviceDesc% = RTL8139Px.ndi, PCI\VEN_10EC&DEV_8139&REV_20 %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8169&SUBSYS_816910EC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_816710EC %RTL8139.DeviceDesc% = RTL8139x.ndi, PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10 %RTL8139P.DeviceDesc% = RTL8139Px.ndi, PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_20 ;OEM IDs for GBE(8167) %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_009A1025;Acer %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_009B1025;Acer %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_009F1025;Acer %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1077147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_107B147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_107D147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_107E147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1080147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1082147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1083147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1087147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1088147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1089147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_108A147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_108B147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_108D147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1423147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1424147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1425147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_180A147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1C2A147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_1C2B147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_240B147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_240C147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_240E147B;ABIT %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_13451043;ASUS %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_820D1043;ASUS %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_376C1462;CHANNEL %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_02961558;Clevo %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_05171558;Clevo %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_06601558;Clevo %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_54051558;Clevo %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_81671019;ECS %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_81691019;ECS %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_90381695;Epox %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60041509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60081509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_601C1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_601D1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_601E1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_601F1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60211509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60221509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60231509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60241509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60271509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60281509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60291509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_602A1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_602B1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_602C1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_602D1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_602E1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_602F1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60301509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60311509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60321509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60331509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60341509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60351509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60361509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60371509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60381509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_60391509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_603A1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_603B1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_603C1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_603D1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_603E1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_603F1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_801A1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_801B1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_801C1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_801D1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_801E1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_801F1509;FIC %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_0C06105B;Foxconn %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_0C07105B;Foxconn %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_0C08105B;Foxconn %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_0C09105B;Foxconn %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_0C0A105B;Foxconn %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_0C0B105B;Foxconn %RTL8169.DeviceDesc% = RTL8169x.ndi, PCI\VEN_10EC&DEV_8167&SUBSYS_0C0C105B;Foxconn [...] ;;**************************************************************************** ;; Windows XP ;;**************************************************************************** ;;RTL8139(XP) [RTL8139x.ndi.NT] DelReg = PreParams.DelReg AddReg = RTL8023xp.reg, NetworkAddress.reg, Speed10_100.reg, OptimalPerf.reg,WOLCapability.reg, LinkUp.reg AddReg = LinkDownPwSav.reg, S5Wol.reg, RxBuf.reg, ApmWol.reg, ForceMode.reg AddReg = RtNicProp32.reg Characteristics = 0x84 BusType = 5 CopyFiles = Rtlnic.CopyFilesXP, RTNicProp.CopyListXP [RTL8139x.ndi.NT.Services] AddService = RTL8023xp, 2, rtsntxp.Service, common.EventLog ;;**************************************************************************** ;;RTL8139P(XP) [RTL8139Px.ndi.NT] DelReg = CpPreParams.DelReg AddReg = RTL8023xp.reg, NetworkAddress.reg, Speed10_100.reg, OptimalPerf.reg,WOLCapability.reg, LinkUp.reg AddReg = LinkDownPwSav.reg, S5Wol.reg, TxCoalesceNum.reg, Offload39.reg, VLanTagging.reg, ForceMode.reg, SupportExternalPhy.reg AddReg = RtNicProp32.reg Characteristics = 0x84 BusType = 5 CopyFiles = Rtlnic.CopyFilesXP, RTNicProp.CopyListXP [RTL8139Px.ndi.NT.Services] AddService = RTL8023xp, 2, rtsntxp.Service, common.EventLog ;;**************************************************************************** ;;RTL8139 TOS(XP) [RTL8139_TOSx.ndi.NT] DelReg = PreParams.DelReg AddReg = RTL8023xp.reg, NetworkAddress.reg, RxBuf.reg, LinkUp.reg, WOLCapability.reg, ApmWol.reg, LinkDownPwSav.reg AddReg = TxMaxDMABurst.reg, RxMaxDMABurst.reg, EarlyRxThreshold.reg, S5Wol.reg, ForceMode.reg AddReg = RtNicProp32.reg Characteristics = 0x84 BusType = 5 CopyFiles = Rtlnic.CopyFilesXP, RTNicProp.CopyListXP [RTL8139_TOSx.ndi.NT.Services] AddService = RTL8023xp, 2, rtsntxp.Service, common.EventLog ;;**************************************************************************** ;;RTL8169(XP) [RTL8169x.ndi.NT] DelReg = GigPreParams.DelReg Characteristics = 0x84 BusType = 5 AddReg = RTL8023xp.reg, NetworkAddress.reg, Speed.reg, 69Jumboframe.reg, Flowctrl.reg, S5Wol.reg, WolShutdownLinkSpeed.reg AddReg = OffloadChksum.reg, OffloadLargesend.reg, VLanTagging.reg, WolCap.reg AddReg = RtNicProp32.reg, ForceMode.reg CopyFiles = Rtlnic.CopyFilesXP, RTNicProp.CopyListXP [RTL8169x.ndi.NT.Services] AddService = RTL8023xp, 2, rtsntxp.Service, common.EventLog [Rtlnic.CopyFilesXP] Rtnicxp.sys,,,2 [RTNicProp.CopyListXP] RtNicProp32.dll,,,0x10 [...] ;;French_Standard [strings.040c] Realtek = "Realtek Semiconductor Corp." VLanTagging = "802.1Q/1p Etiquette réseau local virtuel" ;VLanID = "802.1Q Identifiant réseau local virtuel" ChecksumOffload = "Somme de contrôle hors charge" LargesendOffload = "Grand envoi hors charge" SpeedDuplexMode = "Vitesse & Duplex" auto_nego = "Négociation auto" sd10half = "10 Mbps Semi-duplex" sd10full = "10 Mbps Duplex intégral" sd100half = "100 Mbps Semi-duplex" sd100full = "100 Mbps Duplex intégral" sd1000full = "1.0 Gbps Duplex intégral" NetworkAddress = "Adresse de réseau" JumboFrame = "Cadre jumbo" ;TxDescNumber = "Nombre de descripteur de transmission" ;RxDescNumber = "Nombre de descripteur de réception " ;TxHPQDescNumber = "Nombre de descripteur de transmission haute priorité " WOLCapability = "Réveil avec ARP/PING" WOLLinkChange = "Réveil avec Changement de lien" LDPSCapability = "Economie d’énergie lien coupé" OptimalPerf = "Performance optimale" RxBufSize = "Taille mémoire tampon de réception" 8KBytes = "8K bytes" 16KBytes = "16K bytes" 32KBytes = "32K bytes" 64KBytes = "64K bytes" ApmWol = "Réveil avec mode APM" TxCoalesceBufNum = "Nombre de mémoire tampon de transmission coalesce" TaskOffload39 = "Tâche hors charge" AllDisable = "All Disable" Chksum39 = "Somme de contrôle hors charge" ChksumAndTcp39 = "Somme de contrôle & Protocole de contrôle de transmission hors charge" TxDmaBurstSize = "Transmettre taille burst d’accès direct à la mémoire" RxDmaBurstSize = "Recevoir taille burst d’accès direct à la mémoire" RxFifoThreshold = "Recevoir limite FIFO" 16Bytes = "16 bytes" 32Bytes = "32 bytes" 64Bytes = "64 bytes" 128Bytes = "128 bytes" 256Bytes = "256 bytes" 512Bytes = "512 bytes" 1024Bytes = "1024 bytes" 2048Bytes = "2048 bytes" Unlimitted = "Illimité" NoThreshold = "Pas de limite" FlowControl = "Contrôle de flux" ;AutoSpeedDown = "Ralentir auto vitesse" S5WakeOnLan = "Arrêter Réveil par réseau" 10MbFirst = "10 Mbps en premier" 100MbFirst = "100 Mbps en premier" WolShutdownLinkSpeed = "Vitesse de lien Réveil par réseau & Arrêt" Disabled = "Désactiver" Enabled = "Activer" TxEnabled = "Tx activé" RxEnabled = "Rx activé" RxTxEnabled = "Rx & Tx activé" 2KBMTU = "2KB MTU" 3KBMTU = "3KB MTU" 4KBMTU = "4KB MTU" 5KBMTU = "5KB MTU" 6KBMTU = "6KB MTU" 7KBMTU = "7KB MTU" WolCap = "Fonctions Réveil par le réseau" None = "Aucun" PatternMatch = "Correspondance au modèle" MagicPacket = "Paquet Magic" PatternAndMagic = "Correspondance au modèle et Paquet Magic" ;;Source disk name DISKNAME = "Realtek 10/100/1000 NIC Family all in one NDIS Driver" RTL8169.DeviceDesc = "Realtek RTL8169/8110 Family Gigabit Ethernet NIC" RTL8139.DeviceDesc = "Realtek RTL8139/810x Family Fast Ethernet NIC" RTL8139P.DeviceDesc = "Realtek RTL8139C+ Fast Ethernet NIC" RTL8139Panasonic.DeviceDesc = "(MOBILE ASSIST)Realtek RTL8139/810x Family Fast Ethernet NIC" ;;NT service name Rtlnic.Service.DispName = "Realtek 10/100/1000 PCI NIC Family NDIS NT Driver" Rtlnicxp.Service.DispName = "Realtek 10/100/1000 PCI NIC Family NDIS XP Driver" Rtlnicx64.Service.DispName = "Realtek 10/100/1000 PCI NIC Family NDIS XP(x64) Driver" Après la question c'est... Comment Windows trouve-t-il automatiquement le bon driver si celui-ci est présent dans l'OS ? Il les tests tous à la suite ? Link to comment Share on other sites More sharing options...
Krapace Posted November 29, 2008 Share Posted November 29, 2008 En réseau informatique une adresse MAC (Media Access Control address) est un identifiant physique stocké dans une carte réseau ou une interface réseau similaire et utilisé pour attribuer mondialement une adresse unique au niveau de la couche de liaison (couche 2 du modèle OSI). L'OS n'a plus qu'a trouver la correspondance dans ces drivers.Tous les essayer ? Non je ne pense pas. Il existe des drivers dit "generique" parce que beaucoup de constructeur utilise la meme puce. Link to comment Share on other sites More sharing options...
fabien29200 Posted November 29, 2008 Share Posted November 29, 2008 Chaque périphérique qu'il soit PCI ou USB dispose de codes afin qu'ils puissent être reconnus. Exemple sous Linux : Interceptor ~ # lspci 00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02) 00:01.0 PCI bridge: Intel Corporation 82945G/GZ/P/PL PCI Express Root Port (rev 02) 00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01) 00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01) 00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01) 00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01) 00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01) 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01) 00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1) 00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01) 00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01) 00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01) 00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01) 01:01.0 Ethernet controller: D-Link System Inc DGE-528T Gigabit Ethernet Adapter (rev 10) 01:02.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a) 01:02.1 Input device controller: Creative Labs SB Live! Game Port (rev 0a) 01:03.0 Mass storage controller: Integrated Technology Express, Inc. ITE 8211F Single Channel UDMA 133 (rev 11) 02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 19) 04:00.0 VGA compatible controller: nVidia Corporation GeForce 8400 GS (rev a1) Interceptor ~ # lsusb Bus 003 Device 001: ID 1d6b:0001 Bus 004 Device 001: ID 1d6b:0001 Bus 001 Device 001: ID 1d6b:0001 Bus 002 Device 006: ID 058f:6362 Alcor Micro Corp. Hi-Speed 21-in-1 Flash Card Reader/Writer (Internal/External) Bus 002 Device 005: ID 045e:00dd Microsoft Corp. Bus 002 Device 002: ID 2001:f103 D-Link Corp. [hex] Bus 002 Device 001: ID 1d6b:0001 Bus 002 Device 004: ID 046d:c01e Logitech, Inc. MX518 Optical Mouse Bus 002 Device 003: ID 05e3:0605 Genesys Logic, Inc. USB 2.0 Hub [ednet] Interceptor ~ # Link to comment Share on other sites More sharing options...
Valgarv Posted November 29, 2008 Author Share Posted November 29, 2008 Ok donc en fait l'OS compare ce code avec les en-têtes des drivers qu'il trouve (en limitant la recherche à la catégorie du périphérique), et dès que ça correspond hop il installe ? Ca semble plausible vu qu'en installation automatique, l'OS "cherche" le driver. En sachant au passage qu'un périphérique (quelqu'il soit) entre la détection et l'install du driver indique "Inconnu" dans le champ Fabricant du gestionnaire (je viens de vérifier pour mon histoire de nom fabricant et d'adresse MAC). Link to comment Share on other sites More sharing options...
neologix Posted December 6, 2008 Share Posted December 6, 2008 C'est tout con. Windows a une table de correspondance "préfixe adresse MAC"=>"nom du fabricant". Par exemple, sous Linux : # nmap 192.168.1.129 -AStarting Nmap 4.62 ( http://nmap.org ) at 2008-12-06 12:37 CET Interesting ports on 192.168.1.129: Not shown: 1714 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh (protocol 2.0) MAC Address: 00:13:D3:79:59:00 (Micro-star International CO.) Device type: general purpose Running: Linux 2.6.X OS details: Linux 2.6.9 - 2.6.20 Uptime: 0.067 days (since Sat Dec 6 11:01:18 2008) Network Distance: 1 hop OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 38.577 seconds nmap voit les trois premiers octets, et va chercher le fabricant correspondant dans un fichier # grep 0013D3 /usr/share/nmap/nmap-mac-prefixes0013D3 Micro-star International CO. C'est exactement identique pour le PCI et l'USB : lsusb | grep -i camBus 002 Device 002: ID 046d:08ad Logitech, Inc. QuickCam Communicate STX Dans le fichier /var/lib/usbutils/usb.ids, il y a: 046d Logitech, Inc. 0082 Acer Aspire 5672 Webcam [plein de périphériques usb] 08ad QuickCam Communicate STX 46d:08ad <=> "vendor id":"device id" 046d c'est Logitech, et 0082 c'est la Communicate STX Maintenant, la question existentielle est "où l'OS va-t-il récupérer ça?" Pour changer, regardons un périphérique PCI, par exemple ma carte wifi : $ lspci -vnnx -s 03:00.003:00.0 Network controller [0280]: RaLink RT2500 802.11g Cardbus/mini-PCI [1814:0201] (rev 01) Subsystem: Micro-Star International Co., Ltd. Wireless 11G CardBus CB54G2 [1462:6835] Flags: bus master, slow devsel, latency 64, IRQ 19 Memory at e8400000 (32-bit, non-prefetchable) Capabilities: <access denied> Kernel driver in use: rt2500pci 00: 14 18 01 02 16 00 10 04 01 00 80 02 10 40 00 00 10: 00 00 40 e8 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 01 06 00 00 62 14 35 68 30: 00 00 00 00 40 00 00 00 00 00 00 00 13 01 00 00 Les lignes 00->30 sont un dump de l'espace d'adressage du périphérique (plus précisément le "PCI configuration header"), que l'OS lit sur le bus PCI. Les valeurs en gras, les 32 premiers bits du header, correspondent respectivement au "vendor id" (0x1814) et au "device id" (0x0201). En utilisant ça, l'OS sait quel driver utiliser : si je regarde dans les sources du pilote rt2500pci (drivers/net/wireless/rt2x00/rt2500pci.c) /* * RT2500pci module information. */ static struct pci_device_id rt2500pci_device_table[] = { { PCI_DEVICE(0x1814, 0x0201), PCI_DEVICE_DATA(&rt2500pci_ops) }, { 0, } }; Voilà, on retrouve le "vendor id" 0x1814, et le "device id" 0x0201... Link to comment Share on other sites More sharing options...
Krapace Posted December 6, 2008 Share Posted December 6, 2008 Et dans le cas d'un changement d'adresse MAC ? Link to comment Share on other sites More sharing options...
neologix Posted December 6, 2008 Share Posted December 6, 2008 # ifconfig wlan1wlan1 Link encap:Ethernet HWaddr 00:13:d3:79:59:00 inet adr:192.168.1.129 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:75 errors:0 dropped:0 overruns:0 frame:0 TX packets:78 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:7788 (7.6 KiB) TX bytes:9438 (9.2 KiB) neobox:/home/cf# ifconfig wlan1 down neobox:/home/cf# ifconfig wlan1 hw ether 00:08:32:79:59:00 neobox:/home/cf# ifconfig wlan1 wlan1 Link encap:Ethernet HWaddr 00:08:32:79:59:00 inet adr:192.168.1.129 Bcast:192.168.1.255 Masque:255.255.255.0 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:76 errors:0 dropped:0 overruns:0 frame:0 TX packets:79 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:7830 (7.6 KiB) TX bytes:9500 (9.2 KiB) Cela ne change rien. On n'utilise pas l'adresse MAC pour détecter le type de carte, mais bien son "vendor id":"device id", qui lui ne change pas. On fait appel au driver pour changer l'adresse MAC : cela dépend de la carte, du firmware. La carte est d'ailleurs déjà configurée à ce moment là. Quand on y pense, changer une adresse MAC, c'est juste changer quelques bits (dans les trames émises, et au niveau de la carte pour qu'elle filtre les trames reçues comportant comme adresse MAC de destination la nouvelle), rien de bien méchant : # tcpdump -i any icmp -exxtcpdump: WARNING: Promiscuous mode not supported on the "any" device tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 96 bytes 19:54:55.005533 In 00:13:d3:79:59:00 (oui Unknown) ethertype IPv4 (0x0800), length 100: 192.168.1.129 > 192.168.1.147: ICMP echo request, id 36097, seq 1, length 64 0x0000: 0000 0001 0006 0013 d379 5900 0000 0800 0x0010: 4500 0054 0000 4000 4001 b644 c0a8 0181 0x0020: c0a8 0193 0800 b4b1 8d01 0001 87ca 3a49 0x0030: 0935 0000 0809 0a0b 0c0d 0e0f 1011 1213 0x0040: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 0x0050: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 19:54:55.017900 Out 00:08:a1:82:d0:cf (oui Unknown) ethertype IPv4 (0x0800), length 100: 192.168.1.147 > 192.168.1.129: ICMP echo reply, id 36097, seq 1, length 64 0x0000: 0004 0001 0006 0008 a182 d0cf 0000 0800 0x0010: 4500 0054 18fe 0000 4001 dd46 c0a8 0193 0x0020: c0a8 0181 0000 bcb1 8d01 0001 87ca 3a49 0x0030: 0935 0000 0809 0a0b 0c0d 0e0f 1011 1213 0x0040: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 0x0050: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 ^C 2 packets captured 3 packets received by filter 0 packets dropped by kernel Tu remarqueras que j'ai remis ma vraie adresse MAC, mon routeur fait du filtrage par @MAC ;-) Link to comment Share on other sites More sharing options...
supergao03 Posted December 14, 2008 Share Posted December 14, 2008 oué,j pense aussi que ces info sont implanter dans une ROM de la carte,parceque meme si tu change l'adresse mac de ta carte,elle reste toujours le meme model. donc en claire:il y as les info a l'origine qui sont dans une memoire ROM,donc le systeme d'exploitation prend les info directement la mais si tu veut modifier quelque chose,il doit y avoir une memoire RAM qui peut etre allouer temporairement pour mettre des données que tu veut. enfin,c'est ce que je pense moi Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.