"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > ## Por que GetSystemTimeAdjustment nem sempre reflete o ajuste de tempo real no Windows 7?

## Por que GetSystemTimeAdjustment nem sempre reflete o ajuste de tempo real no Windows 7?

Publicado em 2024-11-09
Navegar:958

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

Funções de temporização do Windows 7: Noções básicas sobre GetSystemTimeAdjustment

Como você observou, os resultados do uso da função GetSystemTimeAdjustment no Windows 7 podem ser intrigantes. Para entender melhor, vamos responder às suas perguntas:

Pergunta 1: Correção da suposição

Sua suposição geralmente está correta. Se a hora do sistema for sincronizada periodicamente, você esperaria nenhuma alteração ou alterações em múltiplos do incremento obtido de GetSystemTimeAdjustment.

Pergunta 2: Motivo da discrepância

O A discrepância que você encontrou se deve ao fato de que a granularidade da hora do sistema fornecida por GetSystemTimeAsFileTime nem sempre pode estar alinhada com o intervalo de atualização real relatado por GetSystemTimeAdjustment.

Explicação:

GetSystemTimeAsFileTime fornece acesso ao relógio de parede do sistema em unidades de 100ns. No entanto, a taxa real de atualização da hora do sistema pode variar dependendo dos fatores de hardware e das configurações da interface do temporizador multimídia.

No seu caso, NtQueryTimerResolution está relatando um período de atualização de aproximadamente 25 µs, enquanto GetSystemTimeAdjustment indica um ajuste de 15,6ms. Isso sugere que a hora do sistema está sendo atualizada com mais frequência do que realmente sincronizada.

Implicações:

Isso significa que as alterações observadas em seu loop de carimbo de data/hora não são apenas devido ao ajuste de tempo que está sendo aplicado. Em vez disso, eles refletem as atualizações subjacentes à hora do sistema, que ocorrem com uma frequência mais alta.

Abordagem recomendada:

Em vez de confiar em GetSystemTimeAdjustment para um tempo preciso, considere usando NtQueryTimerResolution para determinar o intervalo de atualização real da hora do sistema. Isso fornecerá uma representação mais precisa do comportamento de temporização do sistema.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3