_ftime / Windows内部時間はどのように機能しますか?
質問
Windowsで興味深い問題を発見しました。これにより、Windowsクロック(ハードウェアクロックではありません)を毎分8秒程度高速で実行できます。私は、Windowsが内部時間をどのように計算して更新するか(NTPサーバーとの同期方法ではない)を解明するために、いくつかの背景調査を行っています。誰かが持っている情報やあなたが私に指摘できる文書は大歓迎です!
また、_ftimeの仕組みを知っている人がいたら教えてください。
解決
このMSDNの記事は、システム時刻の処理方法の簡単な説明:<!> quot;システムが最初に起動すると、システム時刻はコンピューターのリアルタイムクロックに基づいた値に設定され、その後定期的に時刻が更新されます。<!> quot ;別の興味深い関数は GetSystemTimeAdjustment です。 p>
TRUEの値[lpTimeAdjustmentDisabledの場合]は、定期的な時刻調整が無効であることを示します。各クロック割り込みで、システムは単にクロック割り込みの間隔を時刻クロックに追加します。ただし、システムは他の手法を使用して時刻クロックを自由に調整できます。このような他の手法により、調整が行われたときに時刻クロックが著しくジャンプする可能性があります。
最後に、_ftimeに関しては、 GetSystemTimeAsFileTime 。したがって、他の場所で使用されるのと同じ組み込みの時間機能に直接ラップします。
他のヒント
_ftime()
の仕組みについて:
Microsoft Visual C ++がインストールされている場合、おそらくCランタイムソースもインストールされています。 %ProgramFiles%\Microsoft Visual Studio <version>\VC\crt\src\ftime.c
は、ftime64.c
および<=>で定義されています。
_ftimeは、GetSystemTimeAsFileTimeをまったく使用しません。 ソースコードを読むだけです。