GetSystemTimeAdjustment 函数 (sysinfoapi.h)
确定系统是否对其时间时钟应用定期时间调整,并获取任何此类调整的值和周期。
语法
BOOL GetSystemTimeAdjustment(
[out] PDWORD lpTimeAdjustment,
[out] PDWORD lpTimeIncrement,
[out] PBOOL lpTimeAdjustmentDisabled
);
参数
[out] lpTimeAdjustment
指向变量的指针,函数将该变量设置为添加到时间时钟的 lpTimeIncrement 100 纳秒单位数,该时间段实际通过系统计数。 仅当 lpTimeAdjustmentDisabled 为 FALSE 时,此值才有意义。
[out] lpTimeIncrement
指向变量的指针,函数将该变量设置为间隔(以 100 纳秒为单位),系统将在其中将 lpTimeAdjustment 添加到时间时钟。 仅当 lpTimeAdjustmentDisabled 为 FALSE 时,此值才有意义。
[out] lpTimeAdjustmentDisabled
指向变量的指针,函数设置该变量以指示定期时间调整是否有效。
值为 TRUE 表示禁用定期时间调整,并且系统时间时钟按正常速率前进。 在此模式下,系统可以使用自己的内部时间同步机制调整一天中的时间。 这些内部时间同步机制可能导致在系统操作的正常过程中更改时间时钟,这可能包括系统认为必要的明显时间跳跃。
值为 FALSE 表示正在使用定期时间调整来调整一天中的时间时钟。 对于实际经过的每个 lpTimeIncrement 时间段, lpTimeAdjustment 将添加到一天中的时间。 如果 lpTimeAdjustment 值小于 lpTimeIncrement,则系统时间时钟将以比平常慢的速度前进。 如果 lpTimeAdjustment 值大于 lpTimeIncrement,则一天中的时钟将以比平常快的速度前进。 如果 lpTimeAdjustment 等于 lpTimeIncrement,则时间时钟将按其正常速度前进。 可以通过调用 SetSystemTimeAdjustment 来设置 lpTimeAdjustment 值。 lpTimeIncrement 值在启动时由系统固定,在系统操作期间不会更改。 在此模式下,系统不会干扰时间调整方案,也不会尝试通过其他技术自行同步一天中的时间。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
GetSystemTimeAdjustment 和 SetSystemTimeAdjustment 函数可用于支持想要使用定期时间调整将 GetSystemTime 和 GetLocalTime 报告的时间时钟与另一个时间源同步的算法。
GetSystemTimeAdjustment 函数允许调用方确定是否启用了定期时间调整,如果启用,则获取每次调整的量和调整之间的时间。 SetSystemTimeAdjustment 函数允许调用方启用或禁用定期时间调整,并设置调整增量的值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | sysinfoapi.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |