An Interrupt Event That Is Returned from a Non-Maskable Interrupt Service Routine on an SH3 or SH4 Processor May Be Missed (811736)



The information in this article applies to:

  • Microsoft Windows CE Platform Builder 3.0

SYMPTOMS

If the OEM adaptation layer (OAL) OEMNMI function has been implemented by an OEM to return an interrupt ID (a SYSINTR value), the interrupt service thread (IST) may not be signaled. The frequency with which this problem occurs depends on the system load and the frequency of the non-maskable interrupt (NMI).

Note that the ability to return an interrupt ID from the NMI handler is unique to the Hitachi SH3 and SH4 Microsoft Windows CE kernels.

RESOLUTION

A supported software update is now available from Microsoft as Windows CE 3.0 Core OS QFE 811736. To resolve this problem immediately, click the following article number for information about obtaining Windows CE Platform Builder and core operating system software updates:

837392 How to locate core operating system fixes for Microsoft Windows CE Platform Builder products

The English version of this package has the following file attributes or later:
   Date         Time   Version    Size       File name
   -------------------------------------------------------------------------
   15-Jan-2003  23:45  3.0.3.115  1,874,520  030115_arm720_wce30-q811736.exe
   15-Jan-2003  23:45  3.0.3.115  2,005,592  030115_ppc403_wce30-q811736.exe
   15-Jan-2003  23:45  3.0.3.115  2,005,592  030115_ppc821_wce30-q811736.exe
   15-Jan-2003  23:45  3.0.3.115  1,964,632  030115_r3000_wce30-q811736.exe 
   15-Jan-2003  23:45  3.0.3.115  1,964,632  030115_r4100_wce30-q811736.exe 
   15-Jan-2003  23:45  3.0.3.115  1,968,728  030115_r4111_wce30-q811736.exe 
   15-Jan-2003  23:45  3.0.3.115  2,087,512  030115_r4300_wce30-q811736.exe 
   15-Jan-2003  23:45  3.0.3.115  1,870,424  030115_sa1100_wce30-q811736.exe
   15-Jan-2003  23:45  3.0.3.115  1,899,096  030115_sh3_wce30-q811736.exe  
   15-Jan-2003  23:45  3.0.3.115  1,931,864  030115_sh4_wce30-q811736.exe  
   15-Jan-2003  23:45  3.0.3.115  1,976,920  030115_thumb_wce30-q811736.exe 
   15-Jan-2003  23:45  3.0.3.115  1,772,120  030115_x86_wce30-q811736.exe  
The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time                   Size       File name
   -----------------------------------------------------------
   Path: Public\Common\Oak\Lib\Arm\ARM720\Ce\Debug
   18-Dec-2002  17:08                  1,349,750  Nkmain.lib
   18-Dec-2002  17:08                    102,400  Nkmain.pdb
   18-Dec-2002  17:08                  1,529,914  Nkprmain.lib
   18-Dec-2002  17:08                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Arm\ARM720\Ce\Retail
   18-Dec-2002  17:08                    911,734  Nkmain.lib
   18-Dec-2002  17:08                    102,400  Nkmain.pdb
   18-Dec-2002  17:08                  1,070,960  Nkprmain.lib
   18-Dec-2002  17:08                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Arm\SA1100\Ce\Debug
   18-Dec-2002  17:02                  1,346,354  Nkmain.lib
   18-Dec-2002  17:02                    102,400  Nkmain.pdb
   18-Dec-2002  17:02                  1,526,242  Nkprmain.lib
   18-Dec-2002  17:02                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Arm\SA1100\Ce\Retail
   18-Dec-2002  17:02                    908,354  Nkmain.lib
   18-Dec-2002  17:02                    102,400  Nkmain.pdb
   18-Dec-2002  17:02                  1,067,264  Nkprmain.lib
   18-Dec-2002  17:02                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mips\R3000\Ce\Debug
   18-Dec-2002  17:04                  1,535,210  Nkmain.lib
   18-Dec-2002  17:04                    102,400  Nkmain.pdb
   18-Dec-2002  17:04                  1,712,490  Nkprmain.lib
   18-Dec-2002  17:04                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mips\R3000\Ce\Retail
   18-Dec-2002  17:04                  1,075,834  Nkmain.lib
   18-Dec-2002  17:04                    102,400  Nkmain.pdb
   18-Dec-2002  17:04                  1,229,190  Nkprmain.lib
   18-Dec-2002  17:04                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mips\R4100\Ce\Debug
   18-Dec-2002  17:05                  1,537,366  Nkmain.lib
   18-Dec-2002  17:05                    102,400  Nkmain.pdb
   18-Dec-2002  17:05                  1,716,000  Nkprmain.lib
   18-Dec-2002  17:05                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mips\R4100\Ce\Retail
   18-Dec-2002  17:05                  1,075,826  Nkmain.lib
   18-Dec-2002  17:05                    102,400  Nkmain.pdb
   18-Dec-2002  17:05                  1,228,802  Nkprmain.lib
   18-Dec-2002  17:05                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mips\R4111\Ce\Debug
   18-Dec-2002  17:06                  1,561,676  Nkmain.lib
   18-Dec-2002  17:06                    102,400  Nkmain.pdb
   18-Dec-2002  17:06                  1,740,312  Nkprmain.lib
   18-Dec-2002  17:06                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mips\R4111\Ce\Retail
   18-Dec-2002  17:05                    959,978  Nkmain.lib
   18-Dec-2002  17:05                    102,400  Nkmain.pdb
   18-Dec-2002  17:05                  1,108,360  Nkprmain.lib
   18-Dec-2002  17:05                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mips\R4300\Ce\Debug
   18-Dec-2002  17:06                  1,602,978  Nkmain.lib
   18-Dec-2002  17:06                    102,400  Nkmain.pdb
   18-Dec-2002  17:06                  1,782,112  Nkprmain.lib
   18-Dec-2002  17:06                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mips\R4300\Ce\Retail
   18-Dec-2002  17:06                  1,140,854  Nkmain.lib
   18-Dec-2002  17:06                    102,400  Nkmain.pdb
   18-Dec-2002  17:06                  1,295,284  Nkprmain.lib
   18-Dec-2002  17:06                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Ppc\PPC403\Ce\Debug
   18-Dec-2002  17:07                  1,446,334  Nkmain.lib
   18-Dec-2002  17:07                    102,400  Nkmain.pdb
   18-Dec-2002  17:07                  1,634,576  Nkprmain.lib
   18-Dec-2002  17:07                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Ppc\PPC403\Ce\Retail
   18-Dec-2002  17:07                    933,976  Nkmain.lib
   18-Dec-2002  17:07                    102,400  Nkmain.pdb
   18-Dec-2002  17:07                  1,095,940  Nkprmain.lib
   18-Dec-2002  17:07                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Ppc\PPC821\Ce\Debug
   18-Dec-2002  17:08                  1,444,406  Nkmain.lib
   18-Dec-2002  17:08                    102,400  Nkmain.pdb
   18-Dec-2002  17:08                  1,632,510  Nkprmain.lib
   18-Dec-2002  17:08                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Ppc\PPC821\Ce\Retail
   18-Dec-2002  17:07                    932,526  Nkmain.lib
   18-Dec-2002  17:07                    102,400  Nkmain.pdb
   18-Dec-2002  17:07                  1,094,350  Nkprmain.lib
   18-Dec-2002  17:07                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Shx\SH3\Ce\Debug
   18-Dec-2002  17:03                  1,299,010  Nkmain.lib
   18-Dec-2002  17:03                     94,208  Nkmain.pdb
   18-Dec-2002  17:03                  1,464,780  Nkprmain.lib
   18-Dec-2002  17:03                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Shx\SH3\Ce\Retail
   18-Dec-2002  17:02                    899,980  Nkmain.lib
   18-Dec-2002  17:02                     94,208  Nkmain.pdb
   18-Dec-2002  17:03                  1,053,806  Nkprmain.lib
   18-Dec-2002  17:03                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Shx\SH4\Ce\Debug
   18-Dec-2002  17:03                  1,324,962  Nkmain.lib
   18-Dec-2002  17:03                     94,208  Nkmain.pdb
   18-Dec-2002  17:04                  1,493,268  Nkprmain.lib
   18-Dec-2002  17:04                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Shx\SH4\Ce\Retail
   18-Dec-2002  17:03                    920,952  Nkmain.lib
   18-Dec-2002  17:03                     94,208  Nkmain.pdb
   18-Dec-2002  17:03                  1,077,322  Nkprmain.lib
   18-Dec-2002  17:03                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Thumb\ARM720\Ce\Debug
   18-Dec-2002  17:09                  1,372,408  Nkmain.lib
   18-Dec-2002  17:09                    102,400  Nkmain.pdb
   18-Dec-2002  17:09                  1,550,080  Nkprmain.lib
   18-Dec-2002  17:09                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Thumb\ARM720\Ce\Retail
   18-Dec-2002  17:09                    954,206  Nkmain.lib
   18-Dec-2002  17:09                    102,400  Nkmain.pdb
   18-Dec-2002  17:09                  1,113,030  Nkprmain.lib
   18-Dec-2002  17:09                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\X86\I486\CE\Debug
   18-Dec-2002  17:01                  1,544,480  Nkmain.lib
   18-Dec-2002  17:01                    102,400  Nkmain.pdb
   18-Dec-2002  17:01                  1,707,904  Nkprmain.lib
   18-Dec-2002  17:01                    102,400  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\X86\I486\CE\Retail
   18-Dec-2002  17:01                  1,110,864  Nkmain.lib
   18-Dec-2002  17:01                    102,400  Nkmain.pdb
   18-Dec-2002  17:01                  1,253,472  Nkprmain.lib
   18-Dec-2002  17:01                    102,400  Nkprmain.pdb

MORE INFORMATION

If an NMI occurs while the kernel is running a short section of code that is responsible for handling interrupt events, the interrupt event that is associated with the NMI is lost. The kernel code is protected by masking interrupts, but the NMI cannot be masked. The hotfix that this article describes provides a change to the design of this kernel code. The changed design of the code causes the code to be immune to being interrupted (by using a restartable operation). This hotfix is significant only on the SH3 and SH4 processors.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MinorLast Reviewed:8/18/2005
Keywords:kbQFE kbfix kbbug KB811736 kbAudOEM