Question

J'ai trouvé un problème intéressant dans Windows qui me permettait de faire fonctionner rapidement l'horloge Windows (mais pas les horloges matérielles) - jusqu'à 8 secondes par minute. Je suis en train de faire une recherche de base pour comprendre comment Windows calcule et met à jour son heure interne (et non pas comment elle se synchronise avec un serveur NTP). Toute information ou tout document que vous pouvez me signaler serait grandement apprécié!

De plus, si quelqu'un sait comment fonctionne _time time, merci de me le faire savoir.

Était-ce utile?

La solution

Cet article MSDN donne une très bonne Une brève description de la gestion de l'heure système: & ";" Lorsque le système démarre, il définit l'heure du système sur une valeur basée sur l'horloge en temps réel de l'ordinateur, puis la met à jour régulièrement. & " ; Une autre fonction intéressante est GetSystemTimeAdjustment , qui a ceci à dire:

  

Une valeur de TRUE [pour lpTimeAdjustmentDisabled] indique que l'ajustement du temps périodique est désactivé. À chaque interruption d'horloge, le système ajoute simplement l'intervalle entre les interruptions d'horloge à l'horloge de l'heure. Le système est toutefois libre d’ajuster son horloge en utilisant d’autres techniques. De telles autres techniques peuvent provoquer une accélération notable de l’horloge diurne lorsque des ajustements sont effectués.

Enfin, en ce qui concerne _heure, il semble être implémenté avec GetSystemTimeAsFileTime . Ainsi, il serait directement intégré aux mêmes installations horaires que celles utilisées partout ailleurs.

Autres conseils

Concernant le fonctionnement de _ftime():

Si Microsoft Visual C ++ est installé, la source d’exécution C est probablement également installée. %ProgramFiles%\Microsoft Visual Studio <version>\VC\crt\src\ftime.c est défini dans ftime64.c et <=>.

_heure n'utilise pas du tout GetSystemTimeAsFileTime. Il suffit de lire le code source.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top