Share via


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.

Observação  

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

Confira também

AdjustTokenPrivileges

GetLocalTime

Getsystemtime

GetSystemTimeAdjustment

Hora do sistema

Funções de tempo