ÅTGÄRDAT: En timmes tidsskift kan inträffa när du använder funktionerna SetLocalTime eller SetSystemTime i Windows Embedded CE 6.0 R3

Symptom

Tänk dig följande scenario:

  • Du har ett program som körs på en Windows Embedded CE 6.0 R3-baserad enhet.
  • Programmet anropar funktionen SetLocalTime för att uppdatera den lokala tiden för enheten.

I det här scenariot kan du märka att den lokala tiden på enheten ibland skiftar en timme efter att funktionen anropats.

Obs! Du kan också få samma problem när du använder funktionen SetSystemTime.

Orsak

Det här problemet uppstår eftersom funktionerna SetLocalTime och SetSystemTime inte är trådsäkra. Funktionerna ändrar en global variabel i kärnan och den här variabeln skyddas inte korrekt av ett kritiskt avsnittsobjekt.

Lösning

Information om programvaruuppdateringar

En programuppdatering som stöds är nu tillgänglig från Microsoft som Windows Embedded CE 6.0 Månadsuppdatering mars 2012. I avsnittet "Filinformation" innehåller paketfilnamnet produktversionen, datumet, artikelnumret för Knowledge Base och processortypen. Paketets filnamnsformat är följande:

Produktversion-yymmdd-kbnnnnnn-processortypExempel Wincepb60-110128-kb2492159-armv4i.msi är ARMV4i Windows Embedded CE 6.0 Platform Builder-korrigeringen som finns dokumenterad i KB-artikeln 2492159 och som finns i månadsuppdateringen för januari 2011.

Du kan lösa problemet direkt genom att ladda ned den här månatliga uppdateringen för Windows Embedded CE 6.0 från följande Microsoft-webbplats.

Microsoft Download Center

Windows Embedded CE 6.0

Krav

Den här uppdateringen stöds endast om alla tidigare uppdateringar för den här produkten också har installerats.

Krav på omstart

När du har installerat den här uppdateringen måste du göra en ren version av hela plattformen. Det gör du på något av följande sätt:

  • På menyn Skapa klickar du på Rensa lösning och sedan på Skapa lösning.
  • Klicka på Återskapa lösning på menyn Skapa.

Du behöver inte starta om datorn när du har installerat den här programuppdateringen.

Ersättningsinformation om uppdateringen

Den här uppdateringen ersätter inga andra uppdateringar.

Filinformation

Den engelska versionen av det här programuppdateringspaketet har filattributen (eller senare filattribut) som visas i följande tabell. Datumen och tiderna för dessa filer anges i Coordinated Universal Time (UTC). När du visar filinformationen konverteras den till lokal tid. Om du vill se skillnaden mellan UTC och lokal tid använder du fliken Tidszon i objektet Datum och tid i Kontrollpanelen.

Installationsfiler

Filnamn Filstorlek Datum Tid
Wincepb60-120319-kb2686451-mipsiv_fp.msi 3,493,888 20 mars 2012 18:21
Wincepb60-120319-kb2686451-sh4.msi 3,149,824 20 mars 2012 18:21
Wincepb60-120319-kb2686451-x86.msi 2,985,984 20 mars 2012 18:21
Wincepb60-120319-kb2686451-armv4i.msi 3,493,888 20 mars 2012 18:21
Wincepb60-120319-kb2686451-mipsii.msi 3,334,144 20 mars 2012 18:21
Wincepb60-120319-kb2686451-mipsii_fp.msi 3,448,832 20 mars 2012 18:21
Wincepb60-120319-kb2686451-mipsiv.msi 3,371,008 20 mars 2012 18:21

Files som ingår i det här uppdateringspaketet

Filnamn Filstorlek Datum Tid Sökväg
Time.c 23,298 08-mar-2012 01:42 Private\Winceos\Coreos\Nk\Kernel
Nkmain.lib 2,746,064 08-mar-2012 01:39 Public\Common\Oak\Lib\Armv4i\Debug
Nkprmain.lib 2,782,924 08-mar-2012 01:39 Public\Common\Oak\Lib\Armv4i\Debug
Nkmain.lib 1,767,370 08-mar-2012 01:39 Public\Common\Oak\Lib\Armv4i\Retail
Nkprmain.lib 1,792,798 08-mar-2012 01:39 Public\Common\Oak\Lib\Armv4i\Retail
Nkmain.lib 2,588,508 08-mar-2012 01:39 Public\Common\Oak\Lib\Mipsii\Debug
Nkprmain.lib 2,624,494 08-mar-2012 01:39 Public\Common\Oak\Lib\Mipsii\Debug
Nkmain.lib 1,676,650 08-mar-2012 01:39 Public\Common\Oak\Lib\Mipsii\Retail
Nkprmain.lib 1,706,794 08-mar-2012 01:39 Public\Common\Oak\Lib\Mipsii\Retail
Nkmain.lib 2,663,356 08-mar-2012 01:40 Public\Common\Oak\Lib\Mipsii_fp\Debug
Nkprmain.lib 2,699,618 08-mar-2012 01:40 Public\Common\Oak\Lib\Mipsii_fp\Debug
Nkmain.lib 1,736,352 08-mar-2012 01:40 Public\Common\Oak\Lib\Mipsii_fp\Retail
Nkprmain.lib 1,766,604 08-mar-2012 01:40 Public\Common\Oak\Lib\Mipsii_fp\Retail
Nkmain.lib 2,620,962 08-mar-2012 01:40 Public\Common\Oak\Lib\Mipsiv\Debug
Nkprmain.lib 2,657,080 08-mar-2012 01:40 Public\Common\Oak\Lib\Mipsiv\Debug
Nkmain.lib 1,701,878 08-mar-2012 01:40 Public\Common\Oak\Lib\Mipsiv\Retail
Nkprmain.lib 1,731,924 08-mar-2012 01:40 Public\Common\Oak\Lib\Mipsiv\Retail
Nkmain.lib 2,701,072 08-mar-2012 01:41 Public\Common\Oak\Lib\Mipsiv_fp\Debug
Nkprmain.lib 2,737,466 08-mar-2012 01:41 Public\Common\Oak\Lib\Mipsiv_fp\Debug
Nkmain.lib 1,768,040 08-mar-2012 01:41 Public\Common\Oak\Lib\Mipsiv_fp\Retail
Nkprmain.lib 1,798,190 08-mar-2012 01:41 Public\Common\Oak\Lib\Mipsiv_fp\Retail
Nkmain.lib 2,183,008 08-mar-2012 01:41 Public\Common\Oak\Lib\Sh4\Debug
Nkprmain.lib 2,208,240 08-mar-2012 01:41 Public\Common\Oak\Lib\Sh4\Debug
Nkmain.lib 1,520,142 08-mar-2012 01:41 Public\Common\Oak\Lib\Sh4\Retail
Nkprmain.lib 1,544,514 08-mar-2012 01:41 Public\Common\Oak\Lib\Sh4\Retail
Nkmain.lib 2,174,422 08-mar-2012 01:38 Public\Common\Oak\Lib\X86\Debug
Nkprmain.lib 2,202,554 08-mar-2012 01:38 Public\Common\Oak\Lib\X86\Debug
Nkmain.lib 1,532,248 08-mar-2012 01:38 Public\Common\Oak\Lib\X86\Retail
Nkprmain.lib 1,552,260 08-mar-2012 01:38 Public\Common\Oak\Lib\X86\Retail

Referenser

Mer information om funktionen SetLocalTime finns på följande webbplats för Microsoft Developer Network (MSDN):

SetLocalTime Mer information om funktionen SetSystemTime finns på följande MSDN-webbplats:

SetSystemTime Mer information om ett viktigt avsnittsobjekt finns på följande MSDN-webbplats:

Kritiska avsnittsobjekt (Windows Embedded CE 6.0) Om du vill ha mer information om terminologi för programuppdateringar klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:

824684 Beskrivning av standardterminologin som används för att beskriva Microsofts programuppdateringar