2008-10-17 15 views
3

我發現在Windows中一個有趣的問題,讓我導致Windows時鐘(而不是硬件時鐘)跑得快 - 高達每分鐘8秒。我做了一些背景研究制定Windows如何計算和更新它的內部時間(如果不是如何與NTP服務器同步)。任何人有任何信息或任何文件,你可以指向我將不勝感激!_ftime/Windows內部時間如何工作?

而且,如果有人知道_ftime是如何工作的,請讓我知道。

+0

我會檢查由惡作劇同事復位時遠程登錄或腳本......聽起來像是一個好辦法亂用別人的心意:)我期待着看到你在響應中獲得什麼信息你的問題,內部細節應該是相當有趣的。 – 2008-10-17 16:27:46

回答

3

This MSDN article給出了系統時間處理方式的簡要說明:「當系統第一次啓動時,它將系統時間設置爲基於計算機實時時鐘的值,然後定期更新時間。 「另一個有趣的功能是GetSystemTimeAdjustment,其具有這樣說的:

TRUE的[用於lpTimeAdjustmentDisabled]的值表示週期時間調整被禁用。在每個時鐘中斷處,系統僅將時鐘中斷與時鐘時鐘之間的時間間隔相加。然而,該系統是免費的,可以使用其他技術來調整其時鐘。當進行調整時,這樣的其他技術可能導致時鐘時鐘明顯跳躍。

最後,關於_ftime,它似乎是使用GetSystemTimeAsFileTime實施的。所以它會直接包裝到與其他地方使用的內置時間設施上。

3

關於如何_ftime()作品:

如果您有Microsoft Visual C++安裝,你可能已經安裝以及C運行時源。 _ftime()%ProgramFiles%\Microsoft Visual Studio <version>\VC\crt\src\ftime.cftime64.c定義。

0

_ftime完全不GetSystemTimeAsFileTime使用。 只需閱讀源代碼。

+0

它與Visual Studio.NET 2005到2012年發佈的CRT一起使用。 – 2012-11-26 14:53:44