1

我们有一个旧版 WinCE 设备,它在封闭的以太网网络上运行良好多年。但是现在我们正试图让它与其他设备很好地工作,当网络上有 DHCP 服务器时它会失败。

问题是为了加快开机速度,原工程师在注册表中设置了“DhcpEnableImmediateAutoIP”。这有效地关闭了 WinCE 在确定没有 DHCP 服务器并执行 zeroconfig 之前等待一段时间的超时。但是因为它实际上并没有关闭 DHCP 请求,所以它使用 zeroconfig 分配一个 IP 地址,然后在几秒钟后从 DHCP 服务器获得第二个 IP 地址时搞砸了。

我可以看到“DhcpEnableImmediateAutoIP”是控制 DHCP 的几个键之一,所以我想知道如果我将“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) 并对其进行修改以不发送发现数据包,例如以某种方式存根自动间隔计时器经过时定期调用的函数.

于 2012-06-28T18:46:06.967 回答