2010-11-29 33 views
1

Mon objectif est de mesurer la moyenne des octets reçus par seconde en utilisant l'API du compteur de performance Windows. Mon problème est que, lorsqu'il y a plusieurs adaptateurs réseau, je ne sais pas lequel est le "primaire" (c'est-à-dire celui utilisé pour le trafic Internet et LAN).Comment déterminer la carte réseau primaire dans les résultats de PdhExpandWildCardPath?

Je peux passer "\ Interface réseau (*) \ Bytes Received/sec" à PdhExpandWildCardPath() et obtenir une liste de retour, mais cette liste semble être dans l'ordre alphabétique, pas l'ordre de routage. Et les noms retournés par PdhExpandWildCardPath() ne semblent pas être les mêmes que ceux utilisés par les fonctions WMI - Pdh semble ajouter "Packet Scheduler Miniport" - donc même si je suis allé sur cette route, je ne suis pas sûr de savoir comment corréler les informations provenant des différentes API.

Répondre

1

Quelle carte réseau est «primaire» est un jugement qualitatif. Un ordinateur peut comporter à la fois des adaptateurs Ethernet sans fil 802.11 et des adaptateurs Ethernet câblés, dont l'un peut être primaire à un moment donné (ou même en même temps).

Vous devrez probablement utiliser le IP Helper API pour déterminer celui que vous préférez et corréler avec la sortie PerfMon. ou vous pouvez choisir celui qui a le plus d'activité et l'appeler primaire. C'est juste le genre de jugement de valeur que PerfMon ne peut pas faire, car ces statistiques sont transparentes.