我正在寻找一种在Windows下运行时从主板查询当前RTC的方法。我正在寻找一个简单不变的时间,因为它存储在硬件时钟中(没有漂移补偿,没有NTP时间同步,没有使用性能计数器继续的旧时间戳,...)。
我看着Windows调用GetSystemTime,GetSystemTimeAdjustment,QueryInterruptTime,QueryPerformanceCounter,GetTickCount / GetTickCount64,GetLocalTime。我阅读了有关Windows时间服务的信息(并可以将其关闭),看是否有一种方法可以使用旧的DOS方式(端口70/71,INT 21h,INT 1Ah)进入BIOS,着眼于WMI课,...但是我的想法已经用光了。
我了解到,当偏差超过60秒时,Windows会不时查询硬件时钟,并相应地调整系统时间。没有NTP。我发现的文档没有说读完硬件时钟后会发生什么。必须使用另一个计时器来进行硬件读取之间的微定时。
由于我想得出有关时钟源漂移的结论,因此当向窗口询问“本地时间”并将其进度与任何高分辨率计时器(多媒体计时器,时间戳计数器,...等)进行比较时,这将使所有推论无效。 )。
有人知道如何在Windows下运行时如何尽可能地获取当前存储在硬件时钟(RTC)中的时间吗?