Search
Categories
Articles
Rainmeter関連
ファイル置き場
お知り合いなど

スポンサーサイト

--.--.-- | スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Rainmeter-dev] ネットワークトラフィックの値がおかしい #3

2010.01.29 | Rainmeter-dev // Issue/ネットワーク関連

0 Comments

前回の記事 : [Rainmeter-dev] ネットワークトラフィックの値がおかしい #2

前回の記事では、ネットワークトラフィック値が本来の値の数倍になってしまう原因について調べました。
その中ではまとめとしてフィルタインタフェース(とループバック)を除外する対象としましたが、それだけだとXPの結果とは違い、論理インタフェースも集計対象になってしまうので、ここではXPでの列挙内容に近づけるために、物理(ハードウェア)インタフェースのみを集計対象とします。
(その他のインタフェースも、Interface=0での集計対象とならないだけで、個別指定をすれば値を取得できる)

Vista以降の環境で上記のような判定をするためには、GetIfTable2(GetIfTable2Ex) APIを使います。そのまま使うと2000/XPでRainmeterが起動できなくなるので、LoadLibrary/GetProcAddress APIを使って動的に使う必要があります。コード詳細は後回しにして、GetIfTable2Ex APIを使って取得した結果は以下のようになりました。

* NETWORK-INTERFACE: Count=32

1: AMD PCNET Family Ethernet Adapter (PCI) - VirtualBox Bridged Networking Driver Miniport
  Type=Other(1), Hardware=No, Filter=No
2: Intel(R) PRO/1000 MT Desktop Adapter - VirtualBox Bridged Networking Driver Miniport
  Type=Other(1), Hardware=No, Filter=No
3: WAN Miniport (IPv6)
  Type=Ethernet(6), Hardware=No, Filter=No
4: WAN Miniport (Network Monitor)
  Type=Ethernet(6), Hardware=No, Filter=No
5: AMD PCNET Family Ethernet Adapter (PCI) #2-agnitum firewall driver-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
6: AMD PCNET Family Ethernet Adapter (PCI) #2 - VirtualBox Bridged Networking Driver Miniport
  Type=Ethernet(6), Hardware=No, Filter=Yes
7: WAN Miniport (IP)
  Type=Ethernet(6), Hardware=No, Filter=No
8: AMD PCNET Family Ethernet Adapter (PCI) #2 - VirtualBox Bridged Networking Driver Miniport-QoS Packet Scheduler-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
9: Intel(R) PRO/1000 MT Desktop Adapter
  Type=Ethernet(6), Hardware=Yes, Filter=No
10: AMD PCNET Family Ethernet Adapter (PCI)
  Type=Ethernet(6), Hardware=No, Filter=No
11: AMD PCNET Family Ethernet Adapter (PCI) #2
  Type=Ethernet(6), Hardware=Yes, Filter=No
12: WAN Miniport (IPv6)-agnitum firewall driver-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
13: WAN Miniport (IPv6)-QoS Packet Scheduler-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
14: WAN Miniport (IP)-agnitum firewall driver-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
15: WAN Miniport (IP)-QoS Packet Scheduler-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
16: WAN Miniport (Network Monitor)-agnitum firewall driver-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
17: WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
18: AMD PCNET Family Ethernet Adapter (PCI) #2 - VirtualBox Bridged Networking Driver Miniport-WFP LightWeight Filter-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
19: VirtualBox Host-Only Ethernet Adapter
  Type=Ethernet(6), Hardware=Yes, Filter=No
20: VirtualBox Host-Only Ethernet Adapter-agnitum firewall driver-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
21: VirtualBox Host-Only Ethernet Adapter-QoS Packet Scheduler-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
22: VirtualBox Host-Only Ethernet Adapter-WFP LightWeight Filter-0000
  Type=Ethernet(6), Hardware=No, Filter=Yes
23: WAN Miniport (PPPOE)
  Type=PPP(23), Hardware=No, Filter=No
24: RAS Async Adapter
  Type=PPP(23), Hardware=No, Filter=No
25: Software Loopback Interface 1
  Type=Loopback(24), Hardware=No, Filter=No
26: WAN Miniport (SSTP)
  Type=Tunnel(131), Hardware=No, Filter=No
27: WAN Miniport (IKEv2)
  Type=Tunnel(131), Hardware=No, Filter=No
28: WAN Miniport (L2TP)
  Type=Tunnel(131), Hardware=No, Filter=No
29: WAN Miniport (PPTP)
  Type=Tunnel(131), Hardware=No, Filter=No
30: Microsoft ISATAP Adapter
  Type=Tunnel(131), Hardware=No, Filter=No
31: Microsoft Teredo Tunneling Adapter
  Type=Tunnel(131), Hardware=No, Filter=No
32: Microsoft ISATAP Adapter #2
  Type=Tunnel(131), Hardware=No, Filter=No

太字にしたものがハードウェアインタフェースです。9番は既に取り外されているインタフェースで(状態を出力するとIfOperStatusNotPresentが返る)、11番は実際にネットワークにつながって通信可能なインタフェース、19番はVirtualBoxが作成したインタフェースです。
(10番も本来はHardware=Yesのはずですが、VMwareで何度も設定を変えて認識させているうちに#2ができたりして状態がおかしくなったのか、Noになっています。9番同様、取り外されているという認識になっているので、集計上は問題はなさそう)

この環境ではInterface=0で上記3つのインタフェースの合計値を出すことになりますが、9番は使われていないので0、19番はゲストOS側でこのインタフェースを使わない限りは0(?)と思われるので、実質11番のみの値が出力されることになります。問題となっていたフィルタインタフェースも集計されません。

※ "Hardware=No, Filter=No"な論理インタフェースについては不明な部分もあり、どうチェックしたらいいのかもわからないので、今回は足しこまないようにしてあります(論理インタフェースということは、結局は物理インタフェースのどれかを使って通信をしているのではとも考えられるので)。また、携帯電話デバイスが認識される環境もあるようですが、どういう風に認識しているのか謎です。

続きからはコード詳細。

続きを読む »

スポンサーサイト

[Rainmeter-dev] ネットワークトラフィックの値がおかしい #2

2010.01.25 | Rainmeter-dev // Issue/ネットワーク関連

0 Comments

前回の記事 : [Rainmeter-dev] ネットワークトラフィックの値がおかしい

前回の記事では、ざっくりとではありますがXPとVista/7での違いを調べました。

今回は、ネットワークトラフィックの値が2~数倍になってしまう原因について調べてみます。
まずはWindows7(on VMware)でのインタフェースの列挙の結果から。VirtualBoxをインストールしてあるので若干変わってます。

* NETWORK-INTERFACE: Count=32

1: AMD PCNET Family Ethernet Adapter (PCI) - VirtualBox Bridged Networking Driver Miniport
2: Intel(R) PRO/1000 MT Desktop Adapter - VirtualBox Bridged Networking Driver Miniport
3: WAN Miniport (IPv6)
4: WAN Miniport (Network Monitor)
5: AMD PCNET Family Ethernet Adapter (PCI) #2-agnitum firewall driver-0000
6: AMD PCNET Family Ethernet Adapter (PCI) #2 - VirtualBox Bridged Networking Driver Miniport
7: WAN Miniport (IP)
8: AMD PCNET Family Ethernet Adapter (PCI) #2 - VirtualBox Bridged Networking Driver Miniport-QoS Packet Scheduler-0000
9: Intel(R) PRO/1000 MT Desktop Adapter
10: AMD PCNET Family Ethernet Adapter (PCI)
11: AMD PCNET Family Ethernet Adapter (PCI) #2
12: WAN Miniport (IPv6)-agnitum firewall driver-0000
13: WAN Miniport (IPv6)-QoS Packet Scheduler-0000
14: WAN Miniport (IP)-agnitum firewall driver-0000
15: WAN Miniport (IP)-QoS Packet Scheduler-0000
16: WAN Miniport (Network Monitor)-agnitum firewall driver-0000
17: WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000
18: AMD PCNET Family Ethernet Adapter (PCI) #2 - VirtualBox Bridged Networking Driver Miniport-WFP LightWeight Filter-0000
19: VirtualBox Host-Only Ethernet Adapter
20: VirtualBox Host-Only Ethernet Adapter-agnitum firewall driver-0000
21: VirtualBox Host-Only Ethernet Adapter-QoS Packet Scheduler-0000
22: VirtualBox Host-Only Ethernet Adapter-WFP LightWeight Filter-0000
23: WAN Miniport (PPPOE)
24: RAS Async Adapter
25: Software Loopback Interface 1
26: WAN Miniport (SSTP)
27: WAN Miniport (IKEv2)
28: WAN Miniport (L2TP)
29: WAN Miniport (PPTP)
30: Microsoft ISATAP Adapter
31: Microsoft Teredo Tunneling Adapter
32: Microsoft ISATAP Adapter #2

32個も列挙されました。
このうち、"AMD PCNET Family Ethernet Adapter (PCI) #2"が実際に通信に使われているNICになります。

次はRainmeter.iniに書き出されたStatsを見てみます。[Statistics]の値です。ここにはRainmeter起動中に行われたネットワークトラフィック量の累積値が書き出されています。
インタフェース32個分あるので、ちょっと長いです。

[Statistics]
Since=Sun Jan 24 00:01:00 2010
NetStatsCount=32

NetStatsInHigh1=0
NetStatsInLow1=0
NetStatsOutHigh1=0
NetStatsOutLow1=0
NetStatsInHigh2=0
NetStatsInLow2=0
NetStatsOutHigh2=0
NetStatsOutLow2=0
NetStatsInHigh3=0
NetStatsInLow3=0
NetStatsOutHigh3=0
NetStatsOutLow3=0
NetStatsInHigh4=0
NetStatsInLow4=0
NetStatsOutHigh4=0
NetStatsOutLow4=0
NetStatsInHigh5=0
NetStatsInLow5=335276
NetStatsOutHigh5=0
NetStatsOutLow5=84770
NetStatsInHigh6=0
NetStatsInLow6=335276
NetStatsOutHigh6=0
NetStatsOutLow6=84770
NetStatsInHigh7=0
NetStatsInLow7=0
NetStatsOutHigh7=0
NetStatsOutLow7=0
NetStatsInHigh8=0
NetStatsInLow8=335276
NetStatsOutHigh8=0
NetStatsOutLow8=84770
NetStatsInHigh9=0
NetStatsInLow9=0
NetStatsOutHigh9=0
NetStatsOutLow9=0
NetStatsInHigh10=0
NetStatsInLow10=0
NetStatsOutHigh10=0
NetStatsOutLow10=0
NetStatsInHigh11=0
NetStatsInLow11=335276
NetStatsOutHigh11=0
NetStatsOutLow11=84770
NetStatsInHigh12=0
NetStatsInLow12=0
NetStatsOutHigh12=0
NetStatsOutLow12=0
NetStatsInHigh13=0
NetStatsInLow13=0
NetStatsOutHigh13=0
NetStatsOutLow13=0
NetStatsInHigh14=0
NetStatsInLow14=0
NetStatsOutHigh14=0
NetStatsOutLow14=0
NetStatsInHigh15=0
NetStatsInLow15=0
NetStatsOutHigh15=0
NetStatsOutLow15=0
NetStatsInHigh16=0
NetStatsInLow16=0
NetStatsOutHigh16=0
NetStatsOutLow16=0
NetStatsInHigh17=0
NetStatsInLow17=0
NetStatsOutHigh17=0
NetStatsOutLow17=0
NetStatsInHigh18=0
NetStatsInLow18=335276
NetStatsOutHigh18=0
NetStatsOutLow18=84770
NetStatsInHigh19=0
NetStatsInLow19=0
NetStatsOutHigh19=0
NetStatsOutLow19=0
NetStatsInHigh20=0
NetStatsInLow20=0
NetStatsOutHigh20=0
NetStatsOutLow20=0
NetStatsInHigh21=0
NetStatsInLow21=0
NetStatsOutHigh21=0
NetStatsOutLow21=0
NetStatsInHigh22=0
NetStatsInLow22=0
NetStatsOutHigh22=0
NetStatsOutLow22=0
NetStatsInHigh23=0
NetStatsInLow23=0
NetStatsOutHigh23=0
NetStatsOutLow23=0
NetStatsInHigh24=0
NetStatsInLow24=0
NetStatsOutHigh24=0
NetStatsOutLow24=0
NetStatsInHigh25=0
NetStatsInLow25=0
NetStatsOutHigh25=0
NetStatsOutLow25=0
NetStatsInHigh26=0
NetStatsInLow26=0
NetStatsOutHigh26=0
NetStatsOutLow26=0
NetStatsInHigh27=0
NetStatsInLow27=0
NetStatsOutHigh27=0
NetStatsOutLow27=0
NetStatsInHigh28=0
NetStatsInLow28=0
NetStatsOutHigh28=0
NetStatsOutLow28=0
NetStatsInHigh29=0
NetStatsInLow29=0
NetStatsOutHigh29=0
NetStatsOutLow29=0
NetStatsInHigh30=0
NetStatsInLow30=0
NetStatsOutHigh30=0
NetStatsOutLow30=0
NetStatsInHigh31=0
NetStatsInLow31=0
NetStatsOutHigh31=0
NetStatsOutLow31=0
NetStatsInHigh32=0
NetStatsInLow32=0
NetStatsOutHigh32=0
NetStatsOutLow32=0

NetStatsOutHighが64ビット中の上位32ビット、NetStatsOutInが64ビット中の下位32ビットを表しています。内部では組み合わせて64ビット値として使われています。

この転送量を見てみると、値が書き出されているのは、「5, 6, 8, 11, 18」の5つです。また、その5つはどれも同じ転送量が記録されています。

インタフェース番号を元に、この5つの名称を抜き出してみると、

5: AMD PCNET Family Ethernet Adapter (PCI) #2-agnitum firewall driver-0000
6: AMD PCNET Family Ethernet Adapter (PCI) #2 - VirtualBox Bridged Networking Driver Miniport
8: AMD PCNET Family Ethernet Adapter (PCI) #2 - VirtualBox Bridged Networking Driver Miniport-QoS Packet Scheduler-0000
11: AMD PCNET Family Ethernet Adapter (PCI) #2
18: AMD PCNET Family Ethernet Adapter (PCI) #2 - VirtualBox Bridged Networking Driver Miniport-WFP LightWeight Filter-0000

同じインタフェースでした。実際に使われているのは本体である11番のはずですが、他の4つからも同じ転送量が取れてしまっています。
こいつらはなんぞやというと、フィルタドライバです(入出力を横取りしてどうこうするもの?)。XPでは列挙されなかったこれらの値が全て加算され、この環境では5倍の値で表示されてしまうというわけです。

除外する対象は分かったものの、今までの方法では区別が付けられません。よって、Vista以降に用意された新しいAPIを使う必要があります。
次回はこのAPIを使って、インタフェースの種類をもう少し細かく振り分けてみます。

[Rainmeter-dev] モニタセレクタ

2010.01.22 | Rainmeter-dev // Issue/マルチモニタ関連

0 Comments

モニタセレクタ

公式のフォーラムで行われていたマルチモニタについての議論の中で、手動でRainmeter.iniを編集することなく、スキンを表示するモニタを指定したいというような要望というか希望というか、そういう話が出ていたので、これまで書いてきたマルチモニタ対応コードを整理して他の部分へも適用しやすくしつつ、新たにモニタセレクタメニューなるものを追加してみました(上の画像の"Display Monitor"サブメニューがそれ)。r317にて他のマルチモニタ対応コードとともにコミット済みです。

Rainmeterには0.14.1の後期から、WindowX/Yに"@2"などのモニタ番号を付加することで、スキンを表示するモニタを指定する機能がついていますが、これは自動的に付加されるものではなく、ユーザ側が手動でRainmeter.iniを編集して付加する必要がありました(一部の環境ではマルチモニタ機能がバグっていたために、モニタ番号を付加しないと意図したように動かなかったこともあり、その回避策として編集してもらうこともあった)。今回追加したメニューはその編集の手間を減らします。

Rainmeter.iniにおけるモニタ番号の解釈には3タイプあり、

 ・プライマリモニタを表す(なにもつけない) 例: WindowX=100
 ・仮想スクリーンを表す("@0"をつける) 例: WindowX=100@0
 ・存在する各モニタの番号を表す("@n"をつける) 例: WindowX=100@2

のどれかが使えます。"@n"のnには1~モニタ数分まで指定できます。1台のみなら"@1"だけで、3台なら"@1"から"@3"まで指定できます。

メニュー項目は上の3項目それぞれに対応しています。"Use default: Primary monitor"がプライマリモニタ、"@0: Virtual screen"が仮想スクリーン、"@1: (モニタ名)" ~ "@3: (モニタ名)"までが各モニタになります。項目を選択した時点で、Rainmeter.iniでの表記もその指定された項目を基準にした座標に置き換わります。

一番下の"Auto-select based on window position"は、モニタ番号の指定をさらに簡略化させるオプションです。これをチェックした状態でスキンウィンドウをドラッグさせると、モニタ番号の指定を自動的にそのウィンドウが位置するモニタ番号に置き換えるようになります。例えば、"@1"にあるスキンウィンドウを"@2"へドラッグすると、Rainmeter.iniのモニタ番号も自動的に"@2"へと置き換わります。
自動判定の仕組み上、メニューからモニタが直接選択されたら、このオプションは解除されます。

* * *

と、いうわけで、シングルモニタ環境ではまったく利益のない機能ではありますが、マルチモニタ環境ではちょっぴり便利になる機能です。

続きからは具体的な処理内容について。

続きを読む »

[Rainmeter-dev] Rainmeter on Windows 2000

2010.01.21 | Rainmeter-dev // Issue/互換性問題やバグ修正

2 Comments

RainmeterをWindows 2000上で動かしたときの問題についてのまとめです。
私的なまとめですので、公開されているビルドに反映されているものではありません。ご注意ください。

■更新履歴(※更新のたびに、たぶん一番上にあがってきます)
- 2009.10.28 : Windows 2000に対応してない標準添付プラグインについて
- 2009.11.04 : Aboutダイアログを出そうとするとエラーが表示される問題について
- 2010.01.20 : ResMonプラグインをWindows 2000に対応させる

以下、続きに格納。

続きを読む »

[Rainmeter-dev] ネットワークトラフィックの値がおかしい

2010.01.04 | Rainmeter-dev // Issue/ネットワーク関連

0 Comments

とりあえず、自分の環境でチェックした部分だけ。
デバイスマネージャの2つ目の表示は、事前に環境変数へ DEVMGR_SHOW_NONPRESENT_DEVICES = 1 と設定して、接続されていないものも表示するようにしてあります(薄く表示されているのがそれ)。

■Windows XPでの結果

デバイスマネージャでの認識 (1つ目が通常表示、2つ目が非表示デバイスも表示)

devmgr_xp_01 devmgr_xp_02

パフォーマンスモニタでの認識 (インスタンスの部分)

perfmon_xp

Rainmeterでの認識

DEBUG: (00:00:00.532) * NETWORK-INTERFACE: Count=2
DEBUG: (00:00:00.532) 1: Intel(R) PRO/100 S Desktop Adapter - Agnitum firewall miniport
DEBUG: (00:00:00.532) 2: MS TCP Loopback interface

Rainmeterでの認識 (上の詳細表示)

DEBUG: (00:00:00.188) * NETWORK-INTERFACE: Count=2
DEBUG: (00:00:00.188) 1: Intel(R) PRO/100 S Desktop Adapter - Agnitum firewall miniport
DEBUG: (00:00:00.188)   Type=Ethernet(6), Stat=Operational(5)
DEBUG: (00:00:00.188) 2: MS TCP Loopback interface
DEBUG: (00:00:00.188)   Type=Loopback(24), Stat=Operational(5)

どの結果を見ても、特に問題はなさそう。物理インタフェースのみが列挙され、論理インタフェースは列挙されない(ファイアウォールを入れているからか、デバイスマネージャでのドライバの見え方が違うのは仕方ないのかなぁ)。
この環境には存在しないけれど、もしかしたら、使っていたけど取り外された状態のインタフェースなんかも、Stat=Non-operationalとして列挙されるかもしれない。
("MS TCP Loopback interface"はその名の通りループバックインタフェースだけど、Rainmeterでは集計しないようにハードコーディングされている)

* * *

■Windows 7での結果

デバイスマネージャでの認識 (1つ目が通常表示、2つ目が非表示デバイスも表示)

devmgr_7_01 devmgr_7_02

パフォーマンスモニタでの認識 (インスタンスの部分)

perfmon_7

Rainmeterでの認識

DEBUG: (00:00:00.531) * NETWORK-INTERFACE: Count=20
DEBUG: (00:00:00.547) 1: WAN Miniport (IPv6)
DEBUG: (00:00:00.547) 2: WAN Miniport (Network Monitor)
DEBUG: (00:00:00.547) 3: AMD PCNET Family Ethernet Adapter (PCI) #2-QoS Packet Scheduler-0000
DEBUG: (00:00:00.547) 4: AMD PCNET Family Ethernet Adapter (PCI) #2-WFP LightWeight Filter-0000
DEBUG: (00:00:00.547) 5: WAN Miniport (IP)
DEBUG: (00:00:00.547) 6: WAN Miniport (IPv6)-QoS Packet Scheduler-0000
DEBUG: (00:00:00.547) 7: Intel(R) PRO/1000 MT Desktop Adapter
DEBUG: (00:00:00.547) 8: AMD PCNET Family Ethernet Adapter (PCI)
DEBUG: (00:00:00.547) 9: AMD PCNET Family Ethernet Adapter (PCI) #2
DEBUG: (00:00:00.547) 10: WAN Miniport (IP)-QoS Packet Scheduler-0000
DEBUG: (00:00:00.547) 11: WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000
DEBUG: (00:00:00.547) 12: WAN Miniport (PPPOE)
DEBUG: (00:00:00.547) 13: RAS Async Adapter
DEBUG: (00:00:00.562) 14: Software Loopback Interface 1
DEBUG: (00:00:00.562) 15: WAN Miniport (SSTP)
DEBUG: (00:00:00.562) 16: WAN Miniport (IKEv2)
DEBUG: (00:00:00.562) 17: WAN Miniport (L2TP)
DEBUG: (00:00:00.562) 18: WAN Miniport (PPTP)
DEBUG: (00:00:00.562) 19: Microsoft ISATAP Adapter
DEBUG: (00:00:00.562) 20: Microsoft Teredo Tunneling Adapter

Rainmeterでの認識 (上の詳細表示)

DEBUG: (00:00:00.297) * NETWORK-INTERFACE: Count=20
DEBUG: (00:00:00.297) 1: WAN Miniport (IPv6)
DEBUG: (00:00:00.312)   Type=Ethernet(6), Stat=Operational(5)
DEBUG: (00:00:00.312) 2: WAN Miniport (Network Monitor)
DEBUG: (00:00:00.312)   Type=Ethernet(6), Stat=Operational(5)
DEBUG: (00:00:00.312) 3: AMD PCNET Family Ethernet Adapter (PCI) #2-QoS Packet Scheduler-0000
DEBUG: (00:00:00.312)   Type=Ethernet(6), Stat=Operational(5)
DEBUG: (00:00:00.312) 4: AMD PCNET Family Ethernet Adapter (PCI) #2-WFP LightWeight Filter-0000
DEBUG: (00:00:00.312)   Type=Ethernet(6), Stat=Operational(5)
DEBUG: (00:00:00.312) 5: WAN Miniport (IP)
DEBUG: (00:00:00.312)   Type=Ethernet(6), Stat=Operational(5)
DEBUG: (00:00:00.312) 6: WAN Miniport (IPv6)-QoS Packet Scheduler-0000
DEBUG: (00:00:00.312)   Type=Ethernet(6), Stat=Operational(5)
DEBUG: (00:00:00.312) 7: Intel(R) PRO/1000 MT Desktop Adapter
DEBUG: (00:00:00.312)   Type=Ethernet(6), Stat=Non-operational(0)
DEBUG: (00:00:00.312) 8: AMD PCNET Family Ethernet Adapter (PCI)
DEBUG: (00:00:00.312)   Type=Ethernet(6), Stat=Non-operational(0)
DEBUG: (00:00:00.312) 9: AMD PCNET Family Ethernet Adapter (PCI) #2
DEBUG: (00:00:00.312)   Type=Ethernet(6), Stat=Operational(5)
DEBUG: (00:00:00.312) 10: WAN Miniport (IP)-QoS Packet Scheduler-0000
DEBUG: (00:00:00.312)   Type=Ethernet(6), Stat=Operational(5)
DEBUG: (00:00:00.328) 11: WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000
DEBUG: (00:00:00.328)   Type=Ethernet(6), Stat=Operational(5)
DEBUG: (00:00:00.328) 12: WAN Miniport (PPPOE)
DEBUG: (00:00:00.328)   Type=PPP(23), Stat=Operational(5)
DEBUG: (00:00:00.328) 13: RAS Async Adapter
DEBUG: (00:00:00.328)   Type=PPP(23), Stat=Operational(5)
DEBUG: (00:00:00.328) 14: Software Loopback Interface 1
DEBUG: (00:00:00.328)   Type=Loopback(24), Stat=Operational(5)
DEBUG: (00:00:00.328) 15: WAN Miniport (SSTP)
DEBUG: (00:00:00.328)   Type=Tunnel(131), Stat=Operational(5)
DEBUG: (00:00:00.328) 16: WAN Miniport (IKEv2)
DEBUG: (00:00:00.328)   Type=Tunnel(131), Stat=Non-operational(0)
DEBUG: (00:00:00.328) 17: WAN Miniport (L2TP)
DEBUG: (00:00:00.328)   Type=Tunnel(131), Stat=Operational(5)
DEBUG: (00:00:00.328) 18: WAN Miniport (PPTP)
DEBUG: (00:00:00.328)   Type=Tunnel(131), Stat=Operational(5)
DEBUG: (00:00:00.328) 19: Microsoft ISATAP Adapter
DEBUG: (00:00:00.328)   Type=Tunnel(131), Stat=Non-operational(0)
DEBUG: (00:00:00.328) 20: Microsoft Teredo Tunneling Adapter
DEBUG: (00:00:00.344)   Type=Tunnel(131), Stat=Non-operational(0)

どの結果もバラバラ。20個も認識されてればそりゃ値が大きくなってても不思議じゃない……。Rainmeterでの結果は、XP環境では物理インタフェースのみが列挙されていたけれど、Vista以降は論理インタフェースも列挙される仕様。細かく判断して振り分けるには、Vista以降に用意された新しいAPIを使う必要がありそう(上記のTypeとStatだけでは不要なものが多すぎる)。ただし、コードサンプルもあまりなくめんどくさい。

さて……この(Windows7の)結果の中で、"Interface=0"(全インタフェースの合計。デフォルト動作)としたときに、どれを含んで、どれを除外すべきでしょうか?
(デバイスマネージャで見えている "AMD PCNET Family Ethernet Adapter (PCI) #2" のみ?)

明けました

2010.01.02 | 雑記

0 Comments

明けましておめでとうございます。

去年ほどではないかもしれませんが、今年も思いついたことなどをぽこぽこ書いていければいいなと思っています。
MoEの話も少し書きたいし、Rainmeterの記事も追記したい部分などが結構あるしと、徐々に書いていきましょうか。

今年もどうぞよろしくお願いいたします。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。