CORRECCIÓN: Puede producirse un turno de una hora al usar las funciones SetLocalTime o SetSystemTime en Windows Embedded CE 6.0 R3

Síntomas

Tenga en cuenta el siguiente escenario:

  • Tiene una aplicación que se ejecuta en un dispositivo basado en Windows Embedded CE 6.0 R3.
  • La aplicación llama a la función SetLocalTime para actualizar la hora local del dispositivo.

En este escenario, es posible que la hora local del dispositivo se desplace una hora ocasionalmente después de que se llame a la función.

Nota También puede experimentar este mismo problema al usar la función SetSystemTime.

Causa

Este problema se produce porque las funciones SetLocalTime y SetSystemTime no son seguras para subprocesos. Las funciones modifican una variable global en el kernel y esta variable no está protegida correctamente por un objeto de sección crítica.

Resolución

Información sobre la actualización de software

Una actualización de software compatible ahora está disponible en Microsoft como Windows Embedded CE 6.0 Monthly Update de marzo de 2012. En la sección "Información del archivo", el nombre de archivo del paquete contiene la versión del producto, la fecha, el número de artículo de Knowledge Base y el tipo de procesador. El formato de nombre de archivo del paquete es el siguiente:

Tipo de procesador a yymmdd-kbnnnnn del productoPor ejemplo, Wincepb60-110128-kb2492159-armv4i.msi es la corrección ARMV4i de Windows Embedded CE 6.0 Platform Builder que se documenta en el artículo de Knowledge Base 2492159 y que se incluye en la actualización mensual de enero de 2011.

Para resolver este problema inmediatamente, descargue esta actualización mensual de Windows Embedded CE 6.0 desde el siguiente sitio web de Microsoft.

Centro de descarga de Microsoft

Windows Embedded CE 6.0

Requisitos previos

Esta actualización sólo es compatible si se han instalado también todas las actualizaciones publicadas previamente para este producto.

Requisito de reinicio

Después de aplicar esta actualización, debe realizar una compilación limpia de toda la plataforma. Para ello, utilice uno de los métodos siguientes:

  • En el menú Compilar, haga clic en Limpiar solución y luego en Compilar solución.
  • En el menú Compilar, haga clic en Recompilar solución.

No es necesario que reinicie el equipo una vez aplicada esta actualización de software.

Información de reemplazo de actualización

Esta actualización no sustituye a otras actualizaciones.

Información de archivo

La versión en inglés de este paquete de actualización de software incluye los atributos de archivo (u otros posteriores) que se muestran en la tabla siguiente. Las fechas y horas de estos archivos se expresan de acuerdo con la hora universal coordinada (UTC). La información del archivo se convertirá a la hora local cuando la vea. Para conocer la diferencia entre la hora UTC y la hora local, use la pestaña Zona horaria del elemento Fecha y hora del Panel de control.

Archivos del instalador

Nombre del archivo Tamaño de archivo Fecha Hora
Wincepb60-120319-kb2686451-mipsiv_fp.msi 3,493,888 20 de marzo de 2012 2,118
Wincepb60-120319-kb2686451-sh4.msi 3,149,824 20 de marzo de 2012 2,118
Wincepb60-120319-kb2686451-x86.msi 2,985,984 20 de marzo de 2012 2,118
Wincepb60-120319-kb2686451-armv4i.msi 3,493,888 20 de marzo de 2012 2,118
Wincepb60-120319-kb2686451-mipsii.msi 3,334,144 20 de marzo de 2012 2,118
Wincepb60-120319-kb2686451-mipsii_fp.msi 3,448,832 20 de marzo de 2012 2,118
Wincepb60-120319-kb2686451-mipsiv.msi 3,371,008 20 de marzo de 2012 2,118

Archivos incluidos en este paquete de actualización

Nombre del archivo Tamaño de archivo Fecha Hora Ruta de acceso
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

Referencias

Para obtener más información sobre la función SetLocalTime, visite el siguiente sitio web de Microsoft Developer Network (MSDN):

SetLocalTime Para obtener más información sobre la función SetSystemTime, visite el siguiente sitio web de MSDN:

SetSystemTime Para obtener más información sobre un objeto de sección crítica, visita el siguiente sitio web de MSDN:

Objetos de sección críticos (Windows Embedded CE 6.0) Para obtener más información sobre la terminología de actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

824684 Descripción de la terminología estándar que se usa para describir las actualizaciones de software de Microsoft