_ftime / Windows内部时间如何工作?
题
我在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.c
在ftime64.c
和<=>中定义。
_ftime根本不使用GetSystemTimeAsFileTime。 只需阅读源代码。
不隶属于 StackOverflow