症狀
請考慮以下案例:
- 你有一個應用程式正在運行在基於 Windows Embedded CE 6.0 R3 的裝置上。
- 應用程式呼叫 SetLocalTime 函式來更新裝置的本地時間。
在這種情況下,你可能會發現裝置的本地時間偶爾會在函式被呼叫後延遲一小時。
注意:當你使用設定系統時間(SetSystemTime)函式時,也可能會遇到同樣的問題。
原因
此問題發生是因為 SetLocalTime 與 SetSystemTime 函式並非執行緒安全。 這些函式會修改核心中的一個全域變數,而該變數並未被關鍵區段物件正確保護。
解決方式
軟體更新資訊
Microsoft 現已於 2012 年 3 月推出 Windows Embedded CE 6.0 月度更新,支援軟體更新。 在「檔案資訊」區塊中,套件檔案名稱包含產品版本、日期、知識庫文章編號及處理器類型。 封裝檔名稱格式如下:
產品版本-yymmdd-kbnnnn-處理器類型例如,Wincepb60-110128-kb2492159-armv4i.msi 是 ARMV4i Windows Embedded CE 6.0 Platform Builder 修正,該修正已在知識庫文章 2492159 中說明,並收錄於 2011 年 1 月的月度更新中。
為了立即解決此問題,請從以下 Microsoft 官網下載 Windows Embedded CE 6.0 每月更新。
Microsoft 下載中心
先決條件
本產品必須已經安裝所有先前發行的更新,才能支援此更新。
重新啟動需求
套用此更新之後,您必須執行整個平台的乾淨組建。 若要解決此問題,請使用下列其中一種方法:
- 在 [建置] 功能表上,按一下 [清除方案],然後按一下 [建置方案]。
- 在[建置]功能表上,按一下[重建方案]。
套用此軟體更新之後,您不必將電腦重新開機。
更新取代資訊
這個更新不會取代任何其他的更新。
檔案詳細資訊
此軟體更新套件的英文版具有下表中所列的檔案屬性 (或較新的檔案屬性)。 這些檔案的日期與時間是以國際標準時間 (UTC) 表示。 當您檢視檔案資訊時,它會轉換成當地時間。 若要查看 UTC 與當地時間的差異,請使用 [控制台] 中 [日期和時間] 項目的 [時區] 索引標籤。
安裝程式檔案
| 檔案名稱 | 檔案大小 | 日期 | 時間 |
|---|---|---|---|
| Wincepb60-120319-kb2686451-mipsiv_fp.msi | 3,493,888 | 2012年3月20日 | 18:21 |
| Wincepb60-120319-kb2686451-sh4.msi | 3,149,824 | 2012年3月20日 | 18:21 |
| Wincepb60-120319-kb2686451-x86.msi | 2,985,984 | 2012年3月20日 | 18:21 |
| Wincepb60-120319-kb2686451-armv4i.msi | 3,493,888 | 2012年3月20日 | 18:21 |
| Wincepb60-120319-kb2686451-mipsii.msi | 3,334,144 | 2012年3月20日 | 18:21 |
| Wincepb60-120319-kb2686451-mipsii_fp.msi | 3,448,832 | 2012年3月20日 | 18:21 |
| Wincepb60-120319-kb2686451-mipsiv.msi | 3,371,008 | 2012年3月20日 | 18:21 |
此更新套件隨附的檔案
| 檔案名稱 | 檔案大小 | 日期 | 時間 | 路徑 |
|---|---|---|---|---|
| Time.c | 23,298 | 2012年3月8日 | 01:42 | Private\Winceos\Coreos\Nk\Kernel |
| Nkmain.lib | 2,746,064 | 2012年3月8日 | 01:39 | Public\Common\Oak\Lib\Armv4i\Debug |
| Nkprmain.lib | 2,782,924 | 2012年3月8日 | 01:39 | Public\Common\Oak\Lib\Armv4i\Debug |
| Nkmain.lib | 1,767,370 | 2012年3月8日 | 01:39 | Public\Common\Oak\Lib\Armv4i\Retail |
| Nkprmain.lib | 1,792,798 | 2012年3月8日 | 01:39 | Public\Common\Oak\Lib\Armv4i\Retail |
| Nkmain.lib | 2,588,508 | 2012年3月8日 | 01:39 | Public\Common\Oak\Lib\Mipsii\Debug |
| Nkprmain.lib | 2,624,494 | 2012年3月8日 | 01:39 | Public\Common\Oak\Lib\Mipsii\Debug |
| Nkmain.lib | 1,676,650 | 2012年3月8日 | 01:39 | Public\Common\Oak\Lib\Mipsii\Retail |
| Nkprmain.lib | 1,706,794 | 2012年3月8日 | 01:39 | Public\Common\Oak\Lib\Mipsii\Retail |
| Nkmain.lib | 2,663,356 | 2012年3月8日 | 01:40 | Public\Common\Oak\Lib\Mipsii_fp\Debug |
| Nkprmain.lib | 2,699,618 | 2012年3月8日 | 01:40 | Public\Common\Oak\Lib\Mipsii_fp\Debug |
| Nkmain.lib | 1,736,352 | 2012年3月8日 | 01:40 | Public\Common\Oak\Lib\Mipsii_fp\Retail |
| Nkprmain.lib | 1,766,604 | 2012年3月8日 | 01:40 | Public\Common\Oak\Lib\Mipsii_fp\Retail |
| Nkmain.lib | 2,620,962 | 2012年3月8日 | 01:40 | Public\Common\Oak\Lib\Mipsiv\Debug |
| Nkprmain.lib | 2,657,080 | 2012年3月8日 | 01:40 | Public\Common\Oak\Lib\Mipsiv\Debug |
| Nkmain.lib | 1,701,878 | 2012年3月8日 | 01:40 | Public\Common\Oak\Lib\Mipsiv\Retail |
| Nkprmain.lib | 1,731,924 | 2012年3月8日 | 01:40 | Public\Common\Oak\Lib\Mipsiv\Retail |
| Nkmain.lib | 2,701,072 | 2012年3月8日 | 01:41 | Public\Common\Oak\Lib\Mipsiv_fp\Debug |
| Nkprmain.lib | 2,737,466 | 2012年3月8日 | 01:41 | Public\Common\Oak\Lib\Mipsiv_fp\Debug |
| Nkmain.lib | 1,768,040 | 2012年3月8日 | 01:41 | 公共\Common\Oak\Lib\Mipsiv_fp\零售 |
| Nkprmain.lib | 1,798,190 | 2012年3月8日 | 01:41 | 公共\Common\Oak\Lib\Mipsiv_fp\零售 |
| Nkmain.lib | 2,183,008 | 2012年3月8日 | 01:41 | Public\Common\Oak\Lib\Sh4\Debug |
| Nkprmain.lib | 2,208,240 | 2012年3月8日 | 01:41 | Public\Common\Oak\Lib\Sh4\Debug |
| Nkmain.lib | 1,520,142 | 2012年3月8日 | 01:41 | Public\Common\Oak\Lib\Sh4\Retail |
| Nkprmain.lib | 1,544,514 | 2012年3月8日 | 01:41 | Public\Common\Oak\Lib\Sh4\Retail |
| Nkmain.lib | 2,174,422 | 2012年3月8日 | 01:38 | Public\Common\Oak\Lib\X86\Debug |
| Nkprmain.lib | 2,202,554 | 2012年3月8日 | 01:38 | Public\Common\Oak\Lib\X86\Debug |
| Nkmain.lib | 1,532,248 | 2012年3月8日 | 01:38 | Public\Common\Oak\Lib\X86\Retail |
| Nkprmain.lib | 1,552,260 | 2012年3月8日 | 01:38 | Public\Common\Oak\Lib\X86\Retail |
參考資料
欲了解更多關於 SetLocalTime 功能的資訊,請造訪以下 Microsoft 開發者網絡 (MSDN) 網站:
SetLocalTime 欲了解更多關於 SetSystemTime 函式的資訊,請造訪以下 MSDN 網站:
SetSystemTime 欲了解更多關鍵剖面物件的資訊,請造訪以下MSDN網站:
Windows Embedded CE 6.0 (關鍵區段物件) 欲了解更多軟體更新術語,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
824684 描述用於描述Microsoft軟體更新的標準術語