Share via


Función SetSystemTimeAdjustment (sysinfoapi.h)

Habilita o deshabilita los ajustes periódicos de la hora del reloj del sistema. Cuando se habilita, estos ajustes de tiempo se pueden usar para sincronizar la hora del día con alguna otra fuente de información de tiempo.

Sintaxis

BOOL SetSystemTimeAdjustment(
  [in] DWORD dwTimeAdjustment,
  [in] BOOL  bTimeAdjustmentDisabled
);

Parámetros

[in] dwTimeAdjustment

Este valor representa el número de unidades de 100 nanosegundos agregadas al tiempo del sistema durante cada período de tiempo lpTimeIncrement que realmente pasa. Llame a GetSystemTimeAdjustment para obtener el valor lpTimeIncrement . Vea Notas.

Nota  

Actualmente, las máquinas Windows Vista y Windows 7 perderán los ajustes de tiempo establecidos en menos de 16.

 

[in] bTimeAdjustmentDisabled

Modo de ajuste de tiempo que se va a usar el sistema. Los ajustes periódicos de tiempo del sistema se pueden deshabilitar o habilitar.

Un valor de TRUE especifica que se va a deshabilitar el ajuste de tiempo periódico. Cuando está deshabilitado, se omite el valor de dwTimeAdjustment y el sistema puede ajustar la hora del día mediante sus propios mecanismos de sincronización de hora interna. Estos mecanismos de sincronización de hora interna pueden hacer que el reloj de hora del día cambie durante el curso normal de la operación del sistema, lo que puede incluir saltos notables en el tiempo según lo considere necesario por el sistema.

Un valor de FALSE especifica que se habilitará el ajuste periódico de la hora y se usará para ajustar el reloj de hora del día. El sistema no interferirá con el esquema de ajuste de tiempo y no intentará sincronizar la hora del día por sí misma.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError. Una manera en que la función puede producir un error es si el autor de la llamada no posee el privilegio SE_SYSTEMTIME_NAME.

Comentarios

Las funciones GetSystemTimeAdjustment y SetSystemTimeAdjustment admiten algoritmos que sincronizan el reloj de hora del día, notificados a través de GetSystemTime y GetLocalTime, con otro origen de hora mediante un ajuste periódico de la hora.

La función SetSystemTimeAdjustment admite dos modos de sincronización de tiempo:

Mode Comportamiento
Time-Adjustment deshabilitado Para este modo, bTimeAdjustmentDisabled se establece en TRUE. En este modo, se omite el valor de dwTimeAdjustment y el sistema puede ajustar la hora del día mediante sus propios mecanismos de sincronización de hora interna. Estos mecanismos de sincronización de hora interna pueden hacer que el reloj de hora del día cambie durante el curso normal de la operación del sistema, lo que puede incluir saltos notables en el tiempo según lo considere necesario por el sistema.
Time-Adjustment habilitado Para este modo, bTimeAdjustmentDisabled se establece en FALSE. Para cada período de tiempo lpTimeIncrement que realmente pase, dwTimeAdjustment se agregará a la hora del día. El período de tiempo representado por lpTimeIncrement se puede determinar mediante una llamada a GetSystemTimeAdjustment. El valor lpTimeIncrement es fijo por el sistema al iniciarse y no cambia durante la operación del sistema y es completamente independiente de la resolución interna de interrupción del reloj del sistema en un momento dado. Dado esto, el valor lpTimeIncrement simplemente expresa un período de tiempo para el que dwTimeAdjustment se aplicará al reloj de hora del día del sistema.

Si el valor dwTimeAdjustment es menor que lpTimeIncrement, el reloj de hora del día avanzará a una velocidad más lenta que la normal. Si el valor dwTimeAdjustment es mayor que lpTimeIncrement, el reloj de hora del día avanzará a una velocidad más rápida que la normal. El grado en el que el tiempo del reloj se ejecutará más rápido o más lento depende de la distancia que el valor dwTimeAdjustment esté por encima o por debajo del valor lpTimeIncrement . Si dwTimeAdjustment es igual a lpTimeIncrement, el reloj de hora del día avanzará a velocidad normal.

 

Una aplicación debe tener privilegios en tiempo del sistema (el privilegio SE_SYSTEMTIME_NAME) para que esta función se realice correctamente. El privilegio SE_SYSTEMTIME_NAME está deshabilitado de forma predeterminada. Use la función AdjustTokenPrivileges para habilitar el privilegio antes de llamar a SetSystemTimeAdjustment y, a continuación, para deshabilitar el privilegio después de la llamada a SetSystemTimeAdjustment . Para más información, consulte Ejecución con privilegios especiales.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado sysinfoapi.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

AdjustTokenPrivileges

GetLocalTime

GetSystemTime

GetSystemTimeAdjustment

Hora del sistema

Funciones de hora