TimeProvCommand 関数 (timeprov.h)
タイム プロバイダーにコマンドを送信するためにタイム プロバイダー マネージャーによって呼び出されるコールバック関数。
構文
HRESULT TimeProvCommand(
[in] TimeProvHandle hTimeProv,
[in] TimeProvCmd eCmd,
[in] TimeProvArgs pvArgs
);
パラメーター
[in] hTimeProv
タイム プロバイダーへのハンドル。 TimeProvOpen 関数は、このハンドルを受け取ります。
[in] eCmd
送信するコマンド。 このパラメーターには、次の値のいずれかを指定できます。
コマンド | 意味 |
---|---|
|
時間プロバイダーは、収集した時間サンプルを返す必要があります。 使用可能なデータがない場合、プロバイダーはサンプルを返しません。 詳しくは、「注釈」をご覧ください。
pvArgs パラメーターは、TpcGetSamplesArgs 構造体へのポインターです。 タイム プロバイダー マネージャーは、サンプルのバッファーを提供します。 pvArgs バッファーが小さすぎる場合、プロバイダーはできる限り多くのサンプルを提供し、ERROR_INSUFFICIENT_BUFFERを返す必要があります。 プロバイダーによって返されるその他のエラー コードは無視されます。 |
|
ネットワーク トポロジが変更されました。 ネットワーク プロバイダーは、ネットワーク設定を再検出し、ソースに到達できることを確認する必要があります。
pvArgs パラメーターは、変更がユーザー (NTC_UserRequested) またはシステム (NTC_Default) によって要求されたかどうかを示します。 |
|
将来利用するために予約されています。 |
|
ポーリング間隔が変更されました。 時刻プロバイダーは 、GetTimeSysInfo 関数を呼び出して新しい値を取得する必要があります。
pvArgs パラメーターは使用されません。 プロバイダーから返されたエラーはすべて無視されます。 |
|
システムがシャットダウンしています。 時間プロバイダーは 5 秒以内に終了する必要があります。
pvArgs パラメーターは使用されません。 |
|
システム クロックが突然調整されたため、タイム プロバイダーは保存したタイム スタンプをすべて破棄する必要があります。
pvArgs パラメーターは、時間ジャンプがユーザー (TJF_UserRequested) またはシステム (TJF_Default) によって要求されたかどうかを示します。 |
|
タイム プロバイダーは、レジストリに格納されているアプリケーション固有の構成データが変更されているかどうかを確認する必要があります。
pvArgs パラメーターは使用されません。 プロバイダーから返されたエラーはすべて無視されます。 |
[in] pvArgs
コマンド情報を指定するバッファーへのポインター。 このデータの形式は、 eCmd の値によって異なります。
戻り値
関数が成功した場合、戻り値はS_OK。 それ以外の場合、戻り値は WinError.h で定義されているエラー コードの 1 つです。
注釈
時間プロバイダーは、この呼び出しから返されるまでに 5 分の 1 以上かかることはありません。
TPC_GetSamples コマンドを処理する場合、プロバイダーは監視しているソースごとに 1 つのサンプルを返す必要があります。 したがって、ハードウェア プロバイダーは 1 つのサンプルを返す必要があり、NTP などのネットワーク プロバイダーは複数のサンプルを返すことができます。 プロバイダーは、1 つのソースから複数のサンプルを返さないでください。ソースのサンプルのキャッシュから最適なサンプルを返す必要があります。 データが変更されていない場合、プロバイダーは後続の呼び出しで同じサンプルを返すことができます。
例
例については、「 サンプル 時間プロバイダー」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | timeprov.h |