1

閉ざされたイーサネット ネットワーク上で何年も正常に動作していた従来の WinCE デバイスがあります。しかし、現在、他のデバイスとうまく動作するようにしようとしていますが、ネットワーク上に DHCP サーバーがあるとうまくいきません。

問題は、ブートを高速化するために、元のエンジニアがレジストリに「DhcpEnableImmediateAutoIP」を設定したことです。これにより、WinCE が DHCP サーバーがないと判断して zeroconfig を実行する前にしばらく待機するタイムアウトが効果的にオフになります。しかし、実際には DHCP 要求をオフにしないため、zeroconfig を使用して IP アドレスを割り当て、数秒後に DHCP サーバーから 2 つ目の IP アドレスを取得すると失敗します。

「DhcpEnableImmediateAutoIP」は DHCP を制御するいくつかのキーの 1 つであることがわかります。そのため、「EnableDHCP」を 0 に設定するとどうなるのだろうと考えていました。これにより、DHCP 要求がオフになり、zeroconfig だけが実行されるようになりますか、それとも zeroconfig もオフになるため、IP アドレスを取得できなくなりますか?

4

1 に答える 1

2

最終的に、EnableDHCPがDHCPをオフにして、静的IP設定を想定していることがわかりました(したがって、IPアドレス、サブネットマスク、およびオプションでゲートウェイ/ DNSを指定する必要があります)。

設定できるすべてのオプションは次のとおりです。http: //msdn.microsoft.com/en-us/library/ms884977.aspx

DhcpEnableImmediateAutoIPを維持したまま、AutoInterval:REG_DWORDレジストリエントリに可能な限り高い値を設定します。これは、DHCPサーバーが使用可能かどうかを確認するために使用される時間間隔を秒単位で指定します。この値は内部で乗算され*1000でミリ秒単位になるため、折り返しなしで設定できる最大値は約49日に相当します。デバイスが常にオンになっている場合は、その期間が過ぎると、とにかくすべてが台無しになってしまいます...

決定的な解決策は、DHCPクライアント(D:\ WINCE600 \ PRIVATE \ WINCEOS \ COMM \ DHCP)のクローンを作成し、検出パケットを送信しないように変更することです。たとえば、AutoIntervalタイマーが経過したときに定期的に呼び出される関数をスタブします。 。

于 2012-06-28T18:46:06.967 に答える