A deadlock may occur when the FreePhysPage function and the HNDLCreateHandle function run at the same time in Windows Embedded CE 6.0 R3

Symptoms

A deadlock may occur when the following two functions run at the same time in Windows Embedded CE 6.0 R3:

  • FreePhysPage
  • HNDLCreateHandle

Note The FreePhysPage function is called to free physical memory and the HNDLCreateHandle function is called to create object handles.

Cause

This issue occurs because these two functions call both the critical section and the object handle table lock. However, the functions call the critical section and the object handle table lock in a different order.

Resolution

Software update information

A supported software update is now available from Microsoft as Windows Embedded CE 6.0 Platform Builder Monthly Update (March 2011). You can confirm this by scrolling to the "File information" section of this article. The package file name contains the product version, date, Knowledge Base article number, and processor type. The package file name format is:

Product version-yymmdd-kbnnnnnn-processor typeFor example: Wincepb50-060503-kb917590-armv4i.msi is the ARMV4i Windows Embedded CE 5.0 Platform Builder fix that is documented in KB article 917590 and that is contained in the May 2006 monthly update. To resolve this problem immediately, click the following article number for information about obtaining Windows Embedded CE Platform Builder and core operating system software updates:

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

Note This Windows Embedded CE 6.0 Monthly Update is also available for download from the following Microsoft Download Center website:

Windows Embedded CE 6.0 Updates

Prerequisites

To apply this software update, you must have all previously issued software updates for this product installed.

Restart requirement

After you install this software update, you must perform a clean build of the whole platform. To do this, use one of the following methods:

  • On the Build menu, click Clean Solution, and then click Build Solution.
  • On the Build menu, click Rebuild Solution.

You do not have to restart the computer after you apply this software update.

Update replacement information

This update does not replace any updates.

File information

The English version of this software update package has the file attributes (or later file attributes) 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 item in Control Panel.

Installer files

Wincepb60-110321-kb2514264-armv4i.msi 3,502,592 21-Mar-2011 23:12
Wincepb60-110321-kb2514264-mipsii.msi 3,340,800 21-Mar-2011 23:12
Wincepb60-110321-kb2514264-mipsii_fp.msi 3,456,000 21-Mar-2011 23:12
Wincepb60-110321-kb2514264-mipsiv.msi 3,377,152 21-Mar-2011 23:12
Wincepb60-110321-kb2514264-mipsiv_fp.msi 3,500,544 21-Mar-2011 23:12
Wincepb60-110321-kb2514264-sh4.msi 3,155,968 21-Mar-2011 23:12
Wincepb60-110321-kb2514264-x86.msi 2,989,568 21-Mar-2011 23:12

Files that are included in this hotfix package

Windows embedded ce 6.0_update_kb2514264.htm 7,903 21-Mar-2011 23:07 110321_kb2514264
Physmem.c 33,056 15-Mar-2011 20:23 Private\Winceos\Coreos\Nk\Kernel
Schedule.c 29,267 15-Mar-2011 20:23 Private\Winceos\Coreos\Nk\Kernel
Nkmain.lib 2,742,832 15-Mar-2011 20:20 Public\Common\Oak\Lib\Armv4i\Debug
Nkprmain.lib 2,779,696 15-Mar-2011 20:20 Public\Common\Oak\Lib\Armv4i\Debug
Nkmain.lib 1,766,118 15-Mar-2011 20:20 Public\Common\Oak\Lib\Armv4i\Retail
Nkprmain.lib 1,791,546 15-Mar-2011 20:20 Public\Common\Oak\Lib\Armv4i\Retail
Nkmain.lib 2,585,948 15-Mar-2011 20:21 Public\Common\Oak\Lib\Mipsii\Debug
Nkprmain.lib 2,621,934 15-Mar-2011 20:21 Public\Common\Oak\Lib\Mipsii\Debug
Nkmain.lib 1,675,448 15-Mar-2011 20:21 Public\Common\Oak\Lib\Mipsii\Retail
Nkprmain.lib 1,705,592 15-Mar-2011 20:21 Public\Common\Oak\Lib\Mipsii\Retail
Nkmain.lib 2,660,800 15-Mar-2011 20:22 Public\Common\Oak\Lib\Mipsii_fp\Debug
Nkprmain.lib 2,697,062 15-Mar-2011 20:22 Public\Common\Oak\Lib\Mipsii_fp\Debug
Nkmain.lib 1,735,150 15-Mar-2011 20:21 Public\Common\Oak\Lib\Mipsii_fp\Retail
Nkprmain.lib 1,765,402 15-Mar-2011 20:21 Public\Common\Oak\Lib\Mipsii_fp\Retail
Nkmain.lib 2,618,338 15-Mar-2011 20:22 Public\Common\Oak\Lib\Mipsiv\Debug
Nkprmain.lib 2,654,456 15-Mar-2011 20:22 Public\Common\Oak\Lib\Mipsiv\Debug
Nkmain.lib 1,700,496 15-Mar-2011 20:22 Public\Common\Oak\Lib\Mipsiv\Retail
Nkprmain.lib 1,730,542 15-Mar-2011 20:22 Public\Common\Oak\Lib\Mipsiv\Retail
Nkmain.lib 2,698,448 15-Mar-2011 20:23 Public\Common\Oak\Lib\Mipsiv_fp\Debug
Nkprmain.lib 2,734,842 15-Mar-2011 20:23 Public\Common\Oak\Lib\Mipsiv_fp\Debug
Nkmain.lib 1,766,658 15-Mar-2011 20:22 Public\Common\Oak\Lib\Mipsiv_fp\Retail
Nkprmain.lib 1,796,808 15-Mar-2011 20:22 Public\Common\Oak\Lib\Mipsiv_fp\Retail
Nkmain.lib 2,180,764 15-Mar-2011 20:23 Public\Common\Oak\Lib\Sh4\Debug
Nkprmain.lib 2,205,996 15-Mar-2011 20:23 Public\Common\Oak\Lib\Sh4\Debug
Nkmain.lib 1,519,028 15-Mar-2011 20:23 Public\Common\Oak\Lib\Sh4\Retail
Nkprmain.lib 1,543,404 15-Mar-2011 20:23 Public\Common\Oak\Lib\Sh4\Retail
Nkmain.lib 2,172,392 15-Mar-2011 20:20 Public\Common\Oak\Lib\X86\Debug
Nkprmain.lib 2,200,524 15-Mar-2011 20:20 Public\Common\Oak\Lib\X86\Debug
Nkmain.lib 1,531,102 15-Mar-2011 20:20 Public\Common\Oak\Lib\X86\Retail
Nkprmain.lib 1,551,114 15-Mar-2011 20:20 Public\Common\Oak\Lib\X86\Retail

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information

For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates