ネットワークアダプタの状態を無効にするには?


ひろ  2004-04-14 01:30:03  No: 53480

過去に掲載されている「ネットワークアダプタを無効に」というスレを見させて頂いたのですが、
うまく動かすことができず、困っています。
記載されていたサンプルコードも正常に動かせない状態です。

ご存知の方がいたら、宜しくお願い致します。

使用言語はVC++でお願いします。


ひろ  2004-04-14 08:16:32  No: 53481

申し訳ございません。

先ほどのスレに情報があまりに少なすぎました。
パソコンのネットワークアダプタを無効にしたくて
「ネットワークアダプタを無効に」のスレの「なーめ」さんのコードを参考にして、
まずはネットワークアダプタを取得しようとしました。
http://madia.world.coocan.jp/vc/vc_bbs/200312_03120012.html

ConnectServerの引数は以下のように設定しました。
BSTR bstrNamespace  = SysAllocString(L"root\\cimv2");
if(( hr = pWbemLocator->ConnectServer( bstrNamespace,
           NULL,
           NULL,
           NULL,
           0,
           NULL,
           NULL,
           &pWbemServices )) == S_OK ){
すると
while( pEnum->Next( ... )
の部分で pEnum->Nextの戻り値が
WBEM_E_INVALID_CLASS
になります。

過去のスレなどを探したのですが、エラーの原因や対応方法が分からなかったので、ご存知の方がいらっしゃいましたら、何か参考になる事がありましたら、どうぞご教授お願いします。

環境は
使用OSはWindows2000Server,XPHomeEditionです。
使用言語はVC++6.0です。


岡田 之仁  2004-04-14 20:19:05  No: 53482

ここの過去ログで・・・

私が作成したサンプルがあります。
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200312/03120035.txt

ただし、C#.NET ですが、基本的には API をインポート
して呼び出していますので、構造的には問題ないかと。

参考にして下さい。

以上。


岡田 之仁  2004-04-14 20:31:29  No: 53483

先のスレの方にも書きましたが・・・

Server OS での動作では、保障できません。
ネットワークリソースを使っているサービスが多分に存在し
その為、無効化した場合、確実に再起動しないと、正常に動
作しません。

当然、Win2000 Pro/XP でも同様です。
無効化・有効化は可能ですが、ネットワークリソースを使用
するサービス等を全て停止・起動させないと、正常稼動は難
しいです。

理由としては・・・OSの動作がWinNTから変わった為です。
ネットワーク的に言いますと、リンクアップしている状態か
ら、リンクダウン(LANケーブルをハブから抜くとか)し
た場合、固定アドレスを割り当てていたとしても、内部的に
は不定になるようで、再度、リンクアップさせても、表面的
には正常に固定アドレスを維持しているかのように見えます
が、正常なネットワーク通信は行えない状態に陥ります。

フラッグシップメーカーのインテルや3Com社の100/1000
BASEのLANカードで実施してみましたが、同様でした。
PnPの影響もあるようですが、アダプタの無効化・有効化を
行った後、正常稼動させるには、かなりの後始末的処理が必
要になります。

実際のところ、私が作成したソフトを組み込んだシステムで
は、その後始末のコード自体が、元の無効化・有効化のコー
ド量を上回りました。

お気をつけ下さい。

※  無効化・有効化した場合、LANケーブルをハブから抜
    いた場合と同じく、リンクダウン・アップのイベントが
    発生します。それをWMI等を使って監視し、ダウン時
    の処理とアップ時の処理を追加してやる必要があります。

    参考までに・・・

以上。


ひろ  2004-04-14 22:30:09  No: 53484

ご教授ありがとう御座います。
サンプルを参考にしてVC++で動作することを試してみたいと思います。

また、分からない事がありましたら、書き込ませてもらいます。
そのときはまたお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加