0

他の誰かがこれを見つけたかどうか疑問に思っています:

当社のソフトウェアを実行している一部のユーザーのマシンでは、Win32winsockの呼び出しgethostbynameがエラーコード11004で失敗することがあります。

gethostbynameの引数として、からの結果を渡しgethostnameます。

現在、ドキュメントには11004がWSANO_DATAであると記載されています。説明はどれも関連性がないようです(IP6アドレスを渡すと発生しますが、私が言うように、ホスト名を渡します)。

さらに興味深いのは、MSDNが、IPアドレスがない場合でも(この場合はIPの空のリストを返すだけです) 、この組み合わせ(gethostname後に続く)が失敗しないように提案していることです。gethostbynamegethostnameMSDNエントリからの引用は次のとおりです。

...返された名前がgethostbynameおよびWSAAsyncGetHostByNameによって正常に解析されることが保証されています。

これは、休止状態から再開した後、ネットワークが再起動している短い期間に、Vista / 7でのみ発生します(Vistaと7でのみ見たことがあります)。

私が持っていた1つの理論は、それがIP6に関連しているというものでした。おそらく短期間、ネットワークはIP6アドレスを報告しますが、対応するIP4アドレスは報告しません(すべてのクライアントマシンがデュアルIPスタックであると確信していますが、間違っている可能性があります)。

ネットワークカードをオフにして(IPアドレスを強制しないように)再現しようとしましたが、再現できませんでした。

これを見た人はいますか?

何か案は?

ジョン

4

1 に答える 1

1

あなたはエッジケースに噛まれたと思います。

結局のところ、Hibernateのようなことを行うのは高度なことです。つまり、PCを正確な状態に復元し、何も起こらなかったかのように続行します。それはすべてうまくいっていますが、応答を期待したネットワーク接続や、 CPU。

マイクロソフトに連絡して、これについて知っているかどうか尋ねることをお勧めします。他のOSで機能する場合は、7/Vista用に修正することに関心がある可能性があります。彼らがそれをad-infinitumでテストできるように、バイナリを渡す準備をしてください。

于 2010-03-31T00:16:18.893 に答える