VC++ で、2枚差しのLANの片方を無効にするツールを作成しているのですが、
SetupDiGetDeviceRegistryProperty()関数で、デバイス名を求めると、両方とも、同じ名前になってしまっているので、どちらを無効にしていいかわかりません。 ただ、ネットワークのプロパティを見ると #2とついていますが、
どうすれば、見極めできるのでしょうか?
ご存知の方がいたら、方法を教えて下さい。
同一のLANカード複数挿しの環境が無いので、未確認ですが・・・
SetupDiGetClassDevs
で、デバイスハンドルを取得して
SetupDiEnumDeviceInfo
を実行したら、どういう内容が返ってきますか?
確認してみて下さい。
尚、SetupDiGetClassDevsの第一パラメータでは
GUID_DEVCLASS_NET
の内容は何を指定されていますか?
以上。
IPで判断するのはどうでしょう?
どちらを無効とすべきか、誰がどのように判断を行うのかが不明ですが、
MACアドレス
を利用すれば、比較的安全に区別ができるのでは?
IPアドレスやインタフェース名称は自由に書き換えが出来ますが、
ハードに焼かれているMACアドレスを変更するのは
比較的難しいと思います。
(ソフト処理しているMACアドレスの場合は・・・・)
であであ♪
ツイート | ![]() |