SetSystemTimeAdjustment 函数 (sysinfoapi.h)

启用或禁用对系统时间时钟的定期时间调整。 启用后,此类时间调整可用于将一天中的时间与某些其他时间源信息同步。

语法

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

参数

[in] dwTimeAdjustment

此值表示实际经过的每个 lpTimeIncrement 时间段添加到系统时间的 100 纳秒单位数。 调用 GetSystemTimeAdjustment 以获取 lpTimeIncrement 值。 请参阅备注。

注意  

目前,Windows Vista 和 Windows 7 计算机将失去任何时间调整设置小于 16。

 

[in] bTimeAdjustmentDisabled

系统要使用的时间调整模式。 可以禁用或启用定期系统时间调整。

值为 TRUE 指定禁用定期时间调整。 禁用后, 将忽略 dwTimeAdjustment 的值,并且系统可以使用自己的内部时间同步机制调整一天中的时间。 这些内部时间同步机制可能导致在系统操作的正常过程中更改时间时钟,这可能包括系统认为必要的明显时间跳跃。

值为 FALSE 指定启用定期时间调整,并将用于调整一天中的时间时钟。 系统不会干扰时间调整方案,也不会尝试自行同步一天中的时间。

返回值

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。 函数可能失败的一种方式是调用方没有SE_SYSTEMTIME_NAME特权。

注解

GetSystemTimeAdjustmentSetSystemTimeAdjustment 函数支持将通过 GetSystemTime 和 GetLocalTime 报告的时间时钟与使用定期时间调整的另一个时间源同步的算法。

SetSystemTimeAdjustment 函数支持两种时间同步模式:

模型 行为
Time-Adjustment 已禁用 对于此模式, bTimeAdjustmentDisabled 设置为 TRUE。 在此模式下, 将忽略 dwTimeAdjustment 的值,并且系统可以使用自己的内部时间同步机制调整一天中的时间。 这些内部时间同步机制可能导致在系统操作的正常过程中更改时间时钟,这可能包括系统认为必要的明显时间跳跃。
已启用 Time-Adjustment 对于此模式, bTimeAdjustmentDisabled 设置为 FALSE。 对于实际经过的每个 lpTimeIncrement 时间段, dwTimeAdjustment 将添加到一天中的时间。 lpTimeIncrement 表示的时间段可以通过调用 GetSystemTimeAdjustment 来确定。 lpTimeIncrement 值在启动时由系统固定,在系统操作期间不会更改,并且完全独立于系统在任何给定时间的内部时钟中断分辨率。 鉴于此, lpTimeIncrement 值仅表示将 dwTimeAdjustment 应用于系统时间时钟的时间段。

如果 dwTimeAdjustment 值小于 lpTimeIncrement,则时间时钟将以比正常速度慢的速度前进。 如果 dwTimeAdjustment 值大于 lpTimeIncrement,则时间时钟将以比平常快的速度前进。 时间时钟运行得更快或更慢的程度取决于 dwTimeAdjustment 值高于或低于 lpTimeIncrement 值的距离。 如果 dwTimeAdjustment 等于 lpTimeIncrement,则时间时钟将以正常速度前进。

 

应用程序必须具有系统时间特权 (SE_SYSTEMTIME_NAME特权) ,此函数才能成功。 默认情况下,SE_SYSTEMTIME_NAME特权处于禁用状态。 使用 AdjustTokenPrivileges 函数在调用 SetSystemTimeAdjustment 之前启用特权,然后在 SetSystemTimeAdjustment 调用后禁用该特权。 有关详细信息,请参阅使用特殊特权运行

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 sysinfoapi.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

AdjustTokenPrivileges

GetLocalTime

GetSystemTime

GetSystemTimeAdjustment

系统时间

时间函数