1

VC++ で Windows TCP/IP スタックを無効にする方法 [プログラムで] を知りたいと思っていました。

winpcap を使用して生のソケット プログラミングを行っています。したがって、私たちのアプリケーションは Windows TCP/IP スタックを必要とせず、アプリケーションの起動時にアンインストールしたいと考えています。

4

4 に答える 4

7

TCP/IP スタックは、最近のバージョンの MS Windows を含む最新の OS の重要な部分です。MSナレッジベースQ299357(Win XPについて)で説明されているように:

TCP/IP は Windows のコア コンポーネントであるため、削除することはできません。

いずれにせよ、たとえそれが可能であったとしても、TCP/IP を使用するプログラム (ほとんどの場合、ある種のネット統合、自動更新などが含まれているため、最新のソフトウェアです) は機能しません。そして、誰もその構成をテストしていないため、ほとんどはおそらく不可解な方法で失敗するでしょう。

したがって、短い答えは次のとおりです。それをしないでください。

TCP/IP ネットワークを削除する必要があると感じる理由を説明していただけますか? それなら、私たちがあなたを助けることができるかもしれません。

編集:

以下のコメントに基づいて、TCP/IP スタックの ARP 処理をバイパス/無効にしたい場合は、WinPcap でそれを行う必要があります。そうでない場合は、おそらく独自の Windows ネットワーク ドライバーを作成する必要があります。繰り返しますが、これは非常に複雑で煩わしいようです。あなたのアプリケーションが何をするのか、なぜ低レベルのネットワークをいじる必要があるのか​​を説明していただけますか?

于 2009-04-14T10:36:50.847 に答える
1

TCP/IP を無効にすることは、それほど珍しいことではありません。VM が IP スタックを中断なく使用できるように、ホスト マシンでは無効にする傾向があります。

問題のアダプターの接続プロパティ ページに移動し、TCP/IP ボックスのチェックを外すことで、手動で無効にすることができます (IPv6 がインストールされている場合は複数ある場合があります)。

簡単な調査の結果、WMI はこのプロパティをプログラムで変更することをサポートしていないようです。ただし、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage\Bind は、TCP/IP が有効になっている各アダプターが格納されているキーであるように見えます。(win32 レジストリ API を使用して) そのリストからアダプターを削除すると、TCP/IP が無効になる場合があります。

これをテストするときは注意してください...

于 2009-06-06T14:39:04.437 に答える
1

MSDN に記載WSCDeinstallProviderされている電話番号を呼び出す必要があります。を使用してプロバイダーを列挙する必要もあります。WSCEnumProtocols

あなたの試みがうまくいくかどうかはわかりませんが、幸運を祈っています。成功したらお知らせください。

于 2009-12-09T02:05:24.823 に答える
1

質問に直接答えないことはわかっていますが、まったく同じものを丸一日探していたので、見つけた解決策を他の人に与えることができました.

まさにこれを行うnvspbindというツールを見つけました。これを使用して、正しいバインドを設定し、任意の NIC で特定のバインドを有効または無効にすることができます。

INetCfgというインターフェースを使用します。ツールを使用せずにプログラムで実行する場合は、これを使用する必要があると思います。

まだ学生なので間違っているかもしれません。

于 2012-01-18T14:25:04.227 に答える