TimeProvCommand 函数 (timeprov.h)

由时间提供程序管理器调用的回调函数,用于将命令发送到时间提供程序。

语法

HRESULT TimeProvCommand(
  [in] TimeProvHandle hTimeProv,
  [in] TimeProvCmd    eCmd,
  [in] TimeProvArgs   pvArgs
);

参数

[in] hTimeProv

时间提供程序的句柄。 TimeProvOpen 函数接收此句柄。

[in] eCmd

要发送的命令。 此参数的取值可为下列值之一:

命令 含义
TPC_GetSamples
时间提供程序应返回它收集的时间样本。 如果没有可用数据,则提供程序应不返回任何示例。 有关更多详细信息,请参阅“备注”。

pvArgs 参数是指向 TpcGetSamplesArgs 结构的指针。 时间提供程序管理器为示例提供缓冲区。 如果 pvArgs 缓冲区太小,提供程序应提供尽可能多的样本,并返回ERROR_INSUFFICIENT_BUFFER。 提供程序返回的任何其他错误代码将被忽略。

TPC_NetTopoChange
网络拓扑已更改。 网络提供商必须重新检测网络设置,并验证他们是否可以访问其源。

pvArgs 参数指示更改是由用户 (NTC_UserRequested) 还是系统 (NTC_Default) 请求的。

TPC_Query
保留供将来使用。
TPC_PollIntervalChanged
轮询间隔已更改。 时间提供程序应调用 GetTimeSysInfo 函数来检索新值。

不使用 pvArgs 参数。 将忽略提供程序返回的任何错误。

TPC_Shutdown
系统正在关闭。 时间提供程序应在五秒内退出。

不使用 pvArgs 参数。

TPC_TimeJumped
系统时钟已突然调整,因此时间提供程序应放弃已保存的任何时间戳。

pvArgs 参数指示用户 (TJF_UserRequested) 还是系统 (TJF_Default) 请求的时间跳转。

TPC_UpdateConfig
时间提供程序应验证其存储在注册表中的特定于应用程序的配置数据是否已更改。

不使用 pvArgs 参数。 将忽略提供程序返回的任何错误。

[in] pvArgs

指向指定命令信息的缓冲区的指针。 此数据的格式取决于 eCmd 的值。

返回值

如果函数成功,则返回值S_OK。 否则,返回值是 WinError.h 中定义的错误代码之一。

注解

提供程序从此调用返回的时间不应超过半秒。

处理 TPC_GetSamples 命令时,提供程序应为其监视的每个源返回一个示例。 因此,硬件提供程序应返回一个示例,而 NTP 等网络提供商可以返回多个样本。 提供程序不应从单个源返回多个样本;它应从源样本缓存中返回最佳样本。 如果数据未更改,提供程序可以在后续调用中返回相同的示例。

示例

有关示例,请参阅 示例时间提供程序

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 timeprov.h

另请参阅

GetTimeSysInfoFunc

TimeProvOpen

TpcGetSamplesArgs