Windows 2000で GetExtendedTcpTable が使えない理由とは?

Windows 2000に GetExtendedTcpTable/GetExtendedUdpTable を実装したところ、関数がエラーを返して動作しないことがわかりました。

Curr Port 最新版がこの実装した拡張カーネルに差し替えると動作しないというわけですが

解析してみると意外なことが…。
ipv
GetExtendedTcpTable は Device\Tcp6
GetExtendedUdpTable は Device\Ip6
を開いて、データを取得する

つまり、Tcp v6ドライバがインストールされてないとXPでもだめなのかもしれない。
ためしに古いバージョンの CurrPort 起動してみたら動作した

たぶん、これCurr Port が Ipv6非実装時の処理をやってないバグじゃないかなと思ったり。
* XP の ipv6ドライバ無効にして試してみたところちゃんと動いたのでtcpスタックの構造体の違いのような気がしてきた

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です