Jump to content

Adresse MAC - octets OUI - Nom Fabricant - Windows


Recommended Posts

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

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 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"

Link to comment
Share on other sites

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

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 ? :francais:

Link to comment
Share on other sites

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

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

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

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 -A

Starting 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-prefixes

0013D3 Micro-star International CO.

C'est exactement identique pour le PCI et l'USB :

lsusb | grep -i cam

Bus 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.0

03: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

# ifconfig wlan1

wlan1 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 -exx

tcpdump: 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

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...