CORRECTIF : Un décalage horaire d’une heure peut se produire lorsque vous utilisez les fonctions SetLocalTime ou SetSystemTime dans Windows Embedded CE 6.0 R3

Symptômes

Prenons le scénario suivant :

  • Vous disposez d’une application qui s’exécute sur un appareil Windows Embedded CE 6.0 R3.
  • L’application appelle la fonction SetLocalTime pour mettre à jour l’heure locale de l’appareil.

Dans ce scénario, vous pouvez constater que l’heure locale de l’appareil change d’une heure à l’occasion après l’appel de la fonction.

Remarque Vous pouvez également rencontrer ce même problème lorsque vous utilisez la fonction SetSystemTime.

Cause

Ce problème se produit car les fonctions SetLocalTime et SetSystemTime ne sont pas thread-safe. Les fonctions modifient une variable globale dans le noyau, et cette variable n’est pas protégée correctement par un objet de section critique.

Résolution

Informations sur la mise à jour logicielle

Une mise à jour logicielle prise en charge est désormais disponible auprès de Microsoft en tant que Mise à jour mensuelle Windows Embedded CE 6.0 mars 2012. Dans la section « Informations sur le fichier », le nom du fichier de package contient la version du produit, la date, le numéro de l’article de la Base de connaissances et le type de processeur. Le format de nom de fichier de package est le suivant :

Version du produit-yymmdd-kbnnnnnn-processor typePar exemple, Wincepb60-110128-kb2492159-armv4i.msi est le correctif ArmV4i Windows Embedded CE 6.0 Platform Builder qui est documenté dans l’article de la Base de connaissances 2492159 et qui est contenu dans la mise à jour mensuelle de janvier 2011.

Pour résoudre ce problème immédiatement, téléchargez cette mise à jour mensuelle Windows Embedded CE 6.0 à partir du site web Microsoft suivant.

Centre de téléchargement Microsoft

Windows Embedded CE 6.0

Configuration requise

Cette mise à jour n'est prise en charge que si toutes les mises à jour précédemment publiées pour ce produit ont été installées.

Nécessité de redémarrer

Après avoir appliqué cette mise à jour, vous devez effectuer une génération complète de l'intégralité de la plateforme. Pour cela, appliquez l’une des méthodes suivantes :

  • Dans le menu Générer, cliquez sur Nettoyer la solution, puis cliquez sur Générer la solution.
  • Dans le menu Générer, cliquez sur Régénérer la solution.

Il n'est pas obligatoire de redémarrer votre ordinateur après avoir appliqué cette mise à jour logicielle.

Informations sur le remplacement de la mise à jour

Cette mise à jour n'en remplace pas d'autre.

Informations de fichier

Les attributs de fichier de la version anglaise de ce package de mise à jour logicielle (ou ceux d'une version ultérieure) sont répertoriés dans le tableau suivant. Les date et heure de création de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations des fichiers, les données sont converties en heure locale. Pour connaître le décalage entre l’heure UTC et l’heure locale, utilisez l’onglet Fuseau horaire dans l’élément Date et heure du Panneau de configuration.

Fichiers du programme d’installation

Nom de fichier Taille du fichier Date Heure
Wincepb60-120319-kb2686451-mipsiv_fp.msi 3,493,888 20 mars 2012 2 118
Wincepb60-120319-kb2686451-sh4.msi 3,149,824 20 mars 2012 2 118
Wincepb60-120319-kb2686451-x86.msi 2,985,984 20 mars 2012 2 118
Wincepb60-120319-kb2686451-armv4i.msi 3,493,888 20 mars 2012 2 118
Wincepb60-120319-kb2686451-mipsii.msi 3,334,144 20 mars 2012 2 118
Wincepb60-120319-kb2686451-mipsii_fp.msi 3,448,832 20 mars 2012 2 118
Wincepb60-120319-kb2686451-mipsiv.msi 3,371,008 20 mars 2012 2 118

Fichiers inclus dans ce package de mise à jour

Nom de fichier Taille du fichier Date Heure Chemin d’accès
Time.c 23,298 08-Mars-2012 01:42 Private\Winceos\Coreos\Nk\Kernel
Nkmain.lib 2,746,064 08-Mars-2012 01:39 Public\Common\Oak\Lib\Armv4i\Debug
Nkprmain.lib 2,782,924 08-Mars-2012 01:39 Public\Common\Oak\Lib\Armv4i\Debug
Nkmain.lib 1,767,370 08-Mars-2012 01:39 Public\Common\Oak\Lib\Armv4i\Retail
Nkprmain.lib 1,792,798 08-Mars-2012 01:39 Public\Common\Oak\Lib\Armv4i\Retail
Nkmain.lib 2,588,508 08-Mars-2012 01:39 Public\Common\Oak\Lib\Mipsii\Debug
Nkprmain.lib 2,624,494 08-Mars-2012 01:39 Public\Common\Oak\Lib\Mipsii\Debug
Nkmain.lib 1,676,650 08-Mars-2012 01:39 Public\Common\Oak\Lib\Mipsii\Retail
Nkprmain.lib 1,706,794 08-Mars-2012 01:39 Public\Common\Oak\Lib\Mipsii\Retail
Nkmain.lib 2,663,356 08-Mars-2012 01:40 Public\Common\Oak\Lib\Mipsii_fp\Debug
Nkprmain.lib 2,699,618 08-Mars-2012 01:40 Public\Common\Oak\Lib\Mipsii_fp\Debug
Nkmain.lib 1,736,352 08-Mars-2012 01:40 Public\Common\Oak\Lib\Mipsii_fp\Retail
Nkprmain.lib 1,766,604 08-Mars-2012 01:40 Public\Common\Oak\Lib\Mipsii_fp\Retail
Nkmain.lib 2,620,962 08-Mars-2012 01:40 Public\Common\Oak\Lib\Mipsiv\Debug
Nkprmain.lib 2,657,080 08-Mars-2012 01:40 Public\Common\Oak\Lib\Mipsiv\Debug
Nkmain.lib 1,701,878 08-Mars-2012 01:40 Public\Common\Oak\Lib\Mipsiv\Retail
Nkprmain.lib 1,731,924 08-Mars-2012 01:40 Public\Common\Oak\Lib\Mipsiv\Retail
Nkmain.lib 2,701,072 08-Mars-2012 01:41 Public\Common\Oak\Lib\Mipsiv_fp\Debug
Nkprmain.lib 2,737,466 08-Mars-2012 01:41 Public\Common\Oak\Lib\Mipsiv_fp\Debug
Nkmain.lib 1,768,040 08-Mars-2012 01:41 Public\Common\Oak\Lib\Mipsiv_fp\Retail
Nkprmain.lib 1,798,190 08-Mars-2012 01:41 Public\Common\Oak\Lib\Mipsiv_fp\Retail
Nkmain.lib 2,183,008 08-Mars-2012 01:41 Public\Common\Oak\Lib\Sh4\Debug
Nkprmain.lib 2,208,240 08-Mars-2012 01:41 Public\Common\Oak\Lib\Sh4\Debug
Nkmain.lib 1,520,142 08-Mars-2012 01:41 Public\Common\Oak\Lib\Sh4\Retail
Nkprmain.lib 1,544,514 08-Mars-2012 01:41 Public\Common\Oak\Lib\Sh4\Retail
Nkmain.lib 2,174,422 08-Mars-2012 01:38 Public\Common\Oak\Lib\X86\Debug
Nkprmain.lib 2,202,554 08-Mars-2012 01:38 Public\Common\Oak\Lib\X86\Debug
Nkmain.lib 1,532,248 08-Mars-2012 01:38 Public\Common\Oak\Lib\X86\Retail
Nkprmain.lib 1,552,260 08-Mars-2012 01:38 Public\Common\Oak\Lib\X86\Retail

Références

Pour plus d’informations sur la fonction SetLocalTime, visitez le site web MSDN (Microsoft Developer Network) suivant :

SetLocalTime Pour plus d’informations sur la fonction SetSystemTime, visitez le site web MSDN suivant :

SetSystemTime Pour plus d’informations sur un objet de section critique, visitez le site web MSDN suivant :

Objets de section critique (Windows Embedded CE 6.0) Pour plus d’informations sur la terminologie des mises à jour logicielles, cliquez sur le numéro d’article suivant pour afficher l’article dans la Base de connaissances Microsoft :

824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft