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.
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 |