Função SetSystemTimeAdjustment (sysinfoapi.h)
Habilita ou desabilita ajustes periódicos de tempo no relógio de hora do dia do sistema. Quando habilitados, esses ajustes de tempo podem ser usados para sincronizar a hora do dia com algumas outras informações de fonte de tempo.
Sintaxe
BOOL SetSystemTimeAdjustment(
[in] DWORD dwTimeAdjustment,
[in] BOOL bTimeAdjustmentDisabled
);
Parâmetros
[in] dwTimeAdjustment
Esse valor representa o número de unidades de 100 nanossegundos adicionadas à hora do dia do sistema para cada período de tempo lpTimeIncrement que realmente passa. Chame GetSystemTimeAdjustment para obter o valor lpTimeIncrement . Consulte Observações.
Atualmente, os computadores Windows Vista e Windows 7 perderão todos os ajustes de tempo definidos com menos de 16.
[in] bTimeAdjustmentDisabled
O modo de ajuste de tempo que o sistema deve usar. Os ajustes periódicos de tempo do sistema podem ser desabilitados ou habilitados.
Um valor true especifica que o ajuste periódico de tempo deve ser desabilitado. Quando desabilitado, o valor de dwTimeAdjustment é ignorado e o sistema pode ajustar a hora do dia usando seus próprios mecanismos internos de sincronização de horário. Esses mecanismos internos de sincronização de horário podem fazer com que o relógio de hora do dia seja alterado durante o curso normal da operação do sistema, o que pode incluir saltos perceptíveis no tempo, conforme considerado necessário pelo sistema.
Um valor false especifica que o ajuste periódico de tempo deve ser habilitado e será usado para ajustar o relógio da hora do dia. O sistema não interferirá no esquema de ajuste de tempo e não tentará sincronizar a hora do dia por conta própria.
Retornar valor
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError. Uma maneira de a função falhar é se o chamador não possui o privilégio SE_SYSTEMTIME_NAME.
Comentários
As funções GetSystemTimeAdjustment e SetSystemTimeAdjustment dão suporte a algoritmos que sincronizam o relógio de hora do dia, relatado por meio de GetSystemTime e GetLocalTime, com outra fonte de tempo usando um ajuste periódico de tempo.
A função SetSystemTimeAdjustment dá suporte a dois modos de sincronização de tempo:
Mode | Comportamento |
---|---|
Time-Adjustment Desabilitado | Para esse modo, bTimeAdjustmentDisabled é definido como TRUE. Nesse modo, o valor de dwTimeAdjustment é ignorado e o sistema pode ajustar a hora do dia usando seus próprios mecanismos de sincronização de tempo internos. Esses mecanismos internos de sincronização de horário podem fazer com que o relógio de hora do dia seja alterado durante o curso normal da operação do sistema, o que pode incluir saltos perceptíveis no tempo, conforme considerado necessário pelo sistema. |
Time-Adjustment Habilitado |
Para esse modo, bTimeAdjustmentDisabled é definido como FALSE. Para cada período de tempo lpTimeIncrement que realmente passa, dwTimeAdjustment será adicionado à hora do dia. O período de tempo representado por lpTimeIncrement pode ser determinado chamando GetSystemTimeAdjustment. O valor lpTimeIncrement é corrigido pelo sistema no início e não é alterado durante a operação do sistema e é completamente independente da resolução de interrupção do relógio interno do sistema em um determinado momento. Considerando isso, o valor lpTimeIncrement simplesmente expressa um período para o qual dwTimeAdjustment será aplicado ao relógio de hora do dia do sistema.
Se o valor dwTimeAdjustment for menor que lpTimeIncrement, o relógio da hora do dia avançará a uma taxa mais lenta do que o normal. Se o valor dwTimeAdjustment for maior que lpTimeIncrement, o relógio da hora do dia avançará a uma taxa mais rápida do que o normal. O grau em que o relógio da hora do dia será executado mais rápido ou mais lento depende de quão longe o valor dwTimeAdjustment está acima ou abaixo do valor lpTimeIncrement . Se dwTimeAdjustment for igual a lpTimeIncrement, o relógio da hora do dia avançará em velocidade normal. |
Um aplicativo deve ter privilégio de tempo do sistema (o privilégio SE_SYSTEMTIME_NAME) para que essa função tenha êxito. O privilégio SE_SYSTEMTIME_NAME está desabilitado por padrão. Use a função AdjustTokenPrivileges para habilitar o privilégio antes de chamar SetSystemTimeAdjustment e, em seguida, para desabilitar o privilégio após a chamada SetSystemTimeAdjustment . Para obter mais informações, confira Executar com privilégios especiais.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | sysinfoapi.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |