"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ## ¿Por qué GetSystemTimeAdjustment no siempre refleja el ajuste de tiempo real en Windows 7?

## ¿Por qué GetSystemTimeAdjustment no siempre refleja el ajuste de tiempo real en Windows 7?

Publicado el 2024-11-09
Navegar:761

## Why Does GetSystemTimeAdjustment Not Always Reflect the True Time Adjustment on Windows 7?

Funciones de sincronización de Windows 7: comprensión de GetSystemTimeAdjustment

Como observó, los resultados del uso de la función GetSystemTimeAdjustment en Windows 7 pueden ser desconcertantes. Para comprenderlo mejor, respondamos sus preguntas:

Pregunta 1: Corrección de la suposición

Su suposición es generalmente correcta. Si la hora del sistema se sincroniza periódicamente, no esperaría ningún cambio o cambios en múltiplos del incremento obtenido de GetSystemTimeAdjustment.

Pregunta 2: Motivo de la discrepancia

La La discrepancia que encontró se debe al hecho de que es posible que la granularidad de la hora del sistema proporcionada por GetSystemTimeAsFileTime no siempre se alinee con el intervalo de actualización real informado por GetSystemTimeAdjustment.

Explicación:

GetSystemTimeAsFileTime proporciona acceso al reloj de pared del sistema en unidades de 100 ns. Sin embargo, la tasa de actualización real de la hora del sistema puede variar según los factores del hardware y la configuración de la interfaz del temporizador multimedia.

En su caso, NtQueryTimerResolution informa un período de actualización de ~25 µs, mientras que GetSystemTimeAdjustment indica un ajuste. de 15,6 ms. Esto sugiere que la hora del sistema se actualiza con más frecuencia de la que realmente se sincroniza.

Implicaciones:

Esto significa que los cambios observados en el bucle de marca de tiempo no son únicamente debido al ajuste de tiempo que se está aplicando. Más bien, reflejan las actualizaciones subyacentes de la hora del sistema, que ocurren con mayor frecuencia.

Enfoque recomendado:

En lugar de confiar en GetSystemTimeAdjustment para obtener una sincronización precisa, considere usando NtQueryTimerResolution para determinar el intervalo de actualización real de la hora del sistema. Esto proporcionará una representación más precisa del comportamiento de sincronización del sistema.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3