Есть ли способ прочитать текущее время, хранящееся в RTC, используя Windows? - PullRequest
4 голосов
/ 12 апреля 2019

Я ищу способ запросить текущий RTC с материнской платы при работе под Windows.Я ищу простое неизмененное время, поскольку оно хранится в аппаратных часах (без компенсации дрейфа, без синхронизации времени NTP, а не со старой меткой времени, которая продолжается с использованием счетчика производительности, ...).

Я посмотрел на вызовы окон GetSystemTime, GetSystemTimeAdjustment, QueryInterruptTime, QueryPerformanceCounter, GetTickCount / GetTickCount64, GetLocalTime.Я читал о службе времени Windows (и что я могу ее отключить), посмотрел, есть ли способ добраться до BIOS, используя старые способы DOS (порт 70/71, INT 21h, INT 1Ah), посмотрел на WMIклассы, ... но у меня заканчиваются идеи.

Я понимаю, что Windows время от времени запрашивает аппаратные часы и соответствующим образом корректирует системное время, когда отклонения превышают 60 секунд.Это без NTP.Документы, которые я нашел, не говорят, что происходит после чтения аппаратных часов.Должен быть другой таймер, используемый для выполнения микросинхронизации между аппаратными операциями чтения.

Поскольку я хочу сделать выводы о дрейфе источников тактовых импульсов, это уничтожит все рассуждения при запросе окон о «местном времени»и сравнивая его прогресс с любым таймером высокого разрешения (мультимедийным таймером, счетчиком меток времени, ...).

Кто-нибудь знает способ получения времени, хранящегося в настоящее время в аппаратных часах (RTC), в виде необработанногоможно при работе под windows?

...