Fonctions de synchronisation de Windows 7 : comprendre GetSystemTimeAdjustment
Comme vous l'avez observé, les résultats de l'utilisation de la fonction GetSystemTimeAdjustment sur Windows 7 peuvent être déroutants. Pour mieux comprendre, répondons à vos questions :
Question 1 : Exactitude de l'hypothèse
Votre hypothèse est généralement correcte. Si l'heure du système est périodiquement synchronisée, vous ne vous attendez à aucun changement ou à des changements en multiples de l'incrément obtenu à partir de GetSystemTimeAdjustment.
Question 2 : Raison de l'écart
L'heure système est synchronisée périodiquement. L'écart que vous avez rencontré est dû au fait que la granularité de l'heure système fournie par GetSystemTimeAsFileTime peut ne pas toujours correspondre à l'intervalle de mise à jour réel signalé par GetSystemTimeAdjustment.
Explication :
GetSystemTimeAsFileTime donne accès à l'horloge murale du système par unités de 100 ns. Cependant, le taux de mise à jour réel de l'heure du système peut varier en fonction des facteurs matériels et des paramètres de l'interface de minuterie multimédia.
Dans votre cas, NtQueryTimerResolution signale une période de mise à jour d'environ 25 µs, tandis que GetSystemTimeAdjustment indique un ajustement. de 15,6 ms. Cela suggère que l'heure du système est mise à jour plus fréquemment qu'elle n'est réellement synchronisée.
Implications :
Cela signifie que les changements observés dans votre boucle d'horodatage ne sont pas uniquement en raison de l'ajustement du temps appliqué. Ils reflètent plutôt les mises à jour sous-jacentes de l'heure du système, qui se produisent à une fréquence plus élevée.
Approche recommandée :
Au lieu de compter sur GetSystemTimeAdjustment pour une synchronisation précise, envisagez en utilisant NtQueryTimerResolution pour déterminer l’intervalle de mise à jour réel de l’heure système. Cela fournira une représentation plus précise du comportement temporel du système.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3