Я обнаружил интересную проблему в Windows, которая позволяет мне заставить часы Windows (но не аппаратные часы) работать быстро - до 8 секунд каждую минуту. Я провожу небольшое исследование, чтобы выяснить, как Windows вычисляет и обновляет свое внутреннее время (а не то, как оно синхронизируется с серверами NTP). Мы будем очень признательны за любую имеющуюся у кого-либо информацию или любые документы, на которые вы можете мне указать!
Кроме того, если кто-нибудь знает, как работает _ftime, дайте мне знать.





Эта статья MSDN дает очень краткое описание того, как обрабатывается системное время: «Когда система впервые запускается, она устанавливает системное время на значение, основанное на часах реального времени компьютера, а затем регулярно обновляет время». Еще одна интересная функция - GetSystemTimeAdjustment, которая сообщает следующее:
A value of TRUE [for lpTimeAdjustmentDisabled] indicates that periodic time adjustment is disabled. At each clock interrupt, the system merely adds the interval between clock interrupts to the time-of-day clock. The system is free, however, to adjust its time-of-day clock using other techniques. Such other techniques may cause the time-of-day clock to noticeably jump when adjustments are made.
Наконец, что касается _ftime, похоже, что он реализован с использованием GetSystemTimeAsFileTime. Таким образом, он будет перенесен непосредственно на те же встроенные средства времени, что и везде.
Относительно того, как работает _ftime():
Если у вас установлен Microsoft Visual C++, вероятно, у вас также установлен источник среды выполнения C. _ftime() определен в %ProgramFiles%\Microsoft Visual Studio <version>\VC\crt\src\ftime.c и ftime64.c.
_ftime вообще не использует GetSystemTimeAsFileTime. Просто прочтите исходный код.
Это касается CRT, поставляемого с Visual Studio.NET с 2005 по 2012 год.
Я бы проверил удаленный вход или сценарий коллеги-шутника, сбрасывающий время ... Звучит как хороший способ поиграть в чей-то разум :) Я с нетерпением жду, какую информацию вы получите в ответ на свой вопрос, внутренние детали должны быть довольно интересными.