GetRTTAndHopCount 関数について教えてください。

以前に作成したソケット関連のモジュールで、GetRTTAndHopCount関数を
使用しているのですが、WindowsXP SP2でそのモジュールを試したところ
GetRTTAndHopCount関数でフリーズしてしまいます。
何分待てども帰ってきてくれません。
SP2以前のOSでは、正常に返ってきてくれます。

どうやらネットワーク上に存在しないIPアドレスを指定するとフリーズしてしまうみたいです。
SP2以前の環境では、なんともなかったので、SP2でこの関数に手を加えられたのかと思いぐぐってみましたが、
見つけられませんでした。

環境は、VC++6.0 です。

長いので余計なコードは省略しています。(cHostNameがIpアドレス)

IPAddr  DestIpAddress;
ULONG HopCount;
ULONG MaxHops = 64;
ULONG Rtt;

DestIpAddress = inet_addr(cHostName);
GetRTTAndHopCount(DestIpAddress, &HopCount, MaxHops, &Rtt);

SP2環境でGetRTTAndHopCount関数を使用してこの現象を回避できないのでしょうか?
使い方が変わったのでしょうか?
また、参考になるサイトなどあればお教えください。よろしくおねがいします。