Функция SetSystemTimeAdjustment включает или отключает периодические корректировки времени часов времени дня системы. Такие корректировки времени используются, чтобы синхронизировать время дня с некоторым другим источником информации о времени. Когда периодические корректировки времени включены, они применяются при каждом прерывании часов.
BOOL SetSystemTimeAdjustment( DWORD dwTimeAdjustment, BOOL bTimeAdjustmentDisabled ); |
[in] Число 100 наносекундных блоков добавленных ко времени дня, которая синхронизируется при каждом прерывании часов, если периодическая корректировка времени включена.
bTimeAdjustmentDisabled[in] Метод корректировки времени, который должна использовать система. Периодические корректировки системного времени может быть разрешены или запрещены.
Значение TRUE указывает, что периодическая корректировка времени должна блокироваться. Система свободно настраивает время дня, используя свои собственные внутренние механизмы. Значение dwTimeAdjustment игнорируется. Внутренние механизмы корректировки системы могут заставить часы времени дня перепрыгивать заметно, когда делаются корректировки.
Значение FALSE указывает на то, что периодическая корректировка времени должна быть включена и должна использоваться для настройки часов времени дня. Система не будет сталкиваться со схемой корректировки времени, и не будет пытаться синхронизировать время дня самостоятельно. Система добавит значение dwTimeAdjustment ко времени дня при каждом прерывании часов.
Если функция завершается успешно, возвращаемое значение - не нуль.
Если функция завершается ошибкой, возвращаемое значение - нуль. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError. Одним словом, функция может завершиться ошибкой, если вызывающая программа не обладает правом доступа SE_SYSTEMTIME_NAME.
Функции GetSystemTimeAdjustment и SetSystemTimeAdjustment поддерживают алгоритмы, которые синхронизируют часы времени дня, сообщаются через GetSystemTime и GetLocalTime с другим источником времени, использующими периодическую корректировку времени.
Функция SetSystemTimeAdjustment поддерживается двумя методами синхронизации времени: корректировка времени – отключена и корректировка времени – включена.
При первом методе параметр bTimeAdjustmentDisabled устанавливается в FALSE. При каждом прерывании часов система добавляет значение dwTimeAdjustment ко времени дня. Величина прерывания часов может быть определена при помощи вызова функции GetSystemTimeAdjustment и похоже на возвращаемое значение указанное при помощи lpTimeIncrement.
При втором методе параметр bTimeAdjustmentDisabled устанавливается в TRUE. При каждом прерывании часов система добавляет интервал между прерываниями часов ко времени дня. Никакой корректировки этого интервала не делается. Система свободна периодически обновлять часы времени дня, используя другие методы. Такие другие методы могут заставить часы времени дня переходить скачком, когда делаются корректировки.
У приложения должно быть право доступа к системному времени (право доступа SE_SYSTEMTIME_NAME) для этой функции, чтобы завершиться успешно. Привилегия SE_SYSTEMTIME_NAME блокируется по умолчанию. Используйте функцию AdjustTokenPrivileges, чтобы включить это право доступа, перед тем, как вызвать функцию SetSystemTimeAdjustment, а также отключить эту привилегию после вызова SetSystemTimeAdjustment. Для получения дополнительной информации, см. статью Запуск программы со специальными правами доступа (привилегиями).
Обзор Время (операционной системы), Функции, используемые для времени, AdjustTokenPrivileges, GetLocalTime, GetSystemTime, GetSystemTimeAdjustment
Размещение и совместимость SetSystemTimeAdjustment | ||
К | Windows Vista | Да |
л | Windows XP | Да |
и | Windows 2000 Professional | Да |
е | Windows NT Workstation | Да версии 3.5 и выше |
н | Windows Me | Да |
т | Windows 98 | Да |
Windows 95 | Да | |
С | Windows Server 2008 | Да |
е | Windows Server 2003 | Да |
р | Windows 2000 Server | Да |
в | Windows NT Server | Да версии 3.5 и выше |
е | ||
р | ||
Используемая библиотека | Kernel32.lib | |
Используемая DLL | kernel32.dll | |
Заголовочный файл | ||
- объявлено в | Winbase.h | |
- включено в | Windows.h | |
Unicode | Нет | |
Замечания по платформе | Не имеется |