Pregunta

Encontré un problema interesante en Windows que me permite hacer que el reloj de Windows (pero no los relojes del hardware) funcione más rápido, hasta 8 segundos por minuto.Estoy investigando un poco los antecedentes para descubrir cómo Windows calcula y actualiza su tiempo interno (no cómo se sincroniza con un servidor NTP).¡Cualquier información que alguien tenga o cualquier documento que pueda indicarme será muy apreciado!

Además, si alguien sabe cómo funciona _ftime, hágamelo saber.

¿Fue útil?

Solución

Este artículo de MSDN ofrece un muy breve descripción de cómo se maneja la hora del sistema: " Cuando el sistema se inicia por primera vez, establece la hora del sistema en un valor basado en el reloj de tiempo real de la computadora y luego actualiza regularmente la hora. " ; Otra función interesante es GetSystemTimeAdjustment , que tiene esto que decir:

  

Un valor de TRUE [para lpTimeAdjustmentDisabled] indica que el ajuste de tiempo periódico está deshabilitado. En cada interrupción del reloj, el sistema simplemente agrega el intervalo entre las interrupciones del reloj al reloj de la hora del día. Sin embargo, el sistema es gratuito para ajustar su reloj de hora del día utilizando otras técnicas. Estas otras técnicas pueden hacer que el reloj de la hora del día salte notablemente cuando se realizan ajustes.

Finalmente, con respecto a _ftime, parece implementarse usando GetSystemTimeAsFileTime . Por lo tanto, se incluiría directamente en las mismas instalaciones de tiempo incorporadas que se usarían en cualquier otro lugar.

Otros consejos

En cuanto a cómo _ftime() obras:

Si tiene instalado Microsoft Visual C++, probablemente también tenga instalada la fuente de tiempo de ejecución C. _ftime() se define en %ProgramFiles%\Microsoft Visual Studio <version>\VC\crt\src\ftime.c y ftime64.c.

_ftime no usa en absoluto GetSystemTimeAsFileTime. Simplemente lea el código fuente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top