我在Windows中发现了一个有趣的问题,它允许我使Windows时钟(但不是硬件时钟)快速运行 - 每分钟多达8秒。我正在做一些背景研究,以确定Windows如何计算和更新它的内部时间(而不是它如何与NTP服务器同步)。任何人提供的任何信息或您可以指向我的任何文件将不胜感激!

另外,如果有人知道_ftime如何运作,请告诉我。

有帮助吗?

解决方案

这篇MSDN文章给出了一个非常好的文章系统时间处理的简要说明:<!>;系统首次启动时,它会根据计算机的实时时钟将系统时间设置为一个值,然后定期更新时间。<!> quot ;另一个有趣的功能是 GetSystemTimeAdjustment ,其中有这样说:

  

值为TRUE [对于lpTimeAdjustmentDisabled]表示禁用了周期性时间调整。在每个时钟中断,系统只是将时钟中断之间的间隔加到时钟。然而,该系统是免费的,可以使用其他技术调整其时钟。当进行调整时,这些其他技术可能会导致时钟显着跳跃。

最后,关于_ftime,似乎是使用 GetSystemTimeAsFileTime 。所以它会直接包装到与其他地方一样的内置时间设施上。

其他提示

关于_ftime()如何运作:

如果安装了Microsoft Visual C ++,则可能还安装了C运行时源代码。 %ProgramFiles%\Microsoft Visual Studio <version>\VC\crt\src\ftime.cftime64.c和<=>中定义。

_ftime根本不使用GetSystemTimeAsFileTime。 只需阅读源代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top