FIX: A thread cannot mount a removable device by using the MountPartition API in Windows Embedded CE 6.0 R3


Symptoms


Consider the following scenario:
  • You run a Windows Embedded CE 6.0 R3-based image that contains the Storage Manager components on a target device.
  • The PNPThread tries to mount a store. For example, you mount a USB device to the Windows Embedded CE 6.0 R3-based device.
  • The PNPThread stops for a long time because of an error in the USB device.
  • Another thread uses the MountPartition API to mount a removable device. For example, you mount an SD card or a PC card.  

In this scenario, the thread that uses the MountPartition API does not receive the STORE_MOUNT_GUID notification. When this occurs, the application that produces this thread cannot mount the removable device.

Cause


The issue occurs because the PNPThread holds a lock that prevents the other thread from mounting the removable device.

Resolution


Software update information

A supported software update is now available from Microsoft as Windows Embedded CE 6.0 Monthly Update October 2011. In the "File information" section, the package file name contains the product version, the date, the Microsoft Knowledge Base article number, and the processor type. The package file name format is as follows: 
Product version-yymmdd-kbnnnnnn-processor type
For example, Wincepb60-110128-kb2492159-armv4i.msi is the ARMV4i Windows Embedded CE 6.0 Platform Builder fix that is documented in Knowledge Base article 2492159 and that is contained in the January 2011 monthly update.

To resolve this problem immediately, download this Windows Embedded CE 6.0 Monthly Update from the following Microsoft website.

Microsoft Download Center

Prerequisites

This update is supported only if all previously issued updates for this product have also been installed.

Restart requirement

After you apply this 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 other 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
File nameFile sizeDateTime
Wincepb60-111014-kb2622679-armv4i.msi1,585,15214-Oct-201117:08
Wincepb60-111014-kb2622679-mipsii.msi1,572,86414-Oct-201117:08
Wincepb60-111014-kb2622679-mipsii_fp.msi1,576,96014-Oct-201117:08
Wincepb60-111014-kb2622679-mipsiv.msi1,581,05614-Oct-201117:08
Wincepb60-111014-kb2622679-mipsiv_fp.msi1,581,05614-Oct-201117:08
Wincepb60-111014-kb2622679-sh4.msi1,540,09614-Oct-201117:08
Wincepb60-111014-kb2622679-x86.msi1,441,79214-Oct-201117:08
Files that are included in this update package
File nameFile sizeDateTimePath
Windows embedded ce 6.0_update_kb2622679.htm7,88114-Oct-201116:57111014_kb2622679
Storemain.cpp49,37923-Sep-201119:07Private\Winceos\Coreos\Storage\Fsdmgr
Fsdmgr_lib.lib1,529,35823-Sep-201119:06Public\Common\Oak\Lib\Armv4i\Debug
Fsdmgr_lib.lib1,240,85023-Sep-201119:06Public\Common\Oak\Lib\Armv4i\Retail
Fsdmgr_lib.lib1,503,87023-Sep-201119:06Public\Common\Oak\Lib\Mipsii\Debug
Fsdmgr_lib.lib1,248,89623-Sep-201119:06Public\Common\Oak\Lib\Mipsii\Retail
Fsdmgr_lib.lib1,504,16823-Sep-201119:06Public\Common\Oak\Lib\Mipsii_fp\Debug
Fsdmgr_lib.lib1,249,32023-Sep-201119:06Public\Common\Oak\Lib\Mipsii_fp\Retail
Fsdmgr_lib.lib1,527,11823-Sep-201119:07Public\Common\Oak\Lib\Mipsiv\Debug
Fsdmgr_lib.lib1,266,20223-Sep-201119:06Public\Common\Oak\Lib\Mipsiv\Retail
Fsdmgr_lib.lib1,527,41623-Sep-201119:07Public\Common\Oak\Lib\Mipsiv_fp\Debug
Fsdmgr_lib.lib1,266,62623-Sep-201119:07Public\Common\Oak\Lib\Mipsiv_fp\Retail
Fsdmgr_lib.lib1,349,50023-Sep-201119:07Public\Common\Oak\Lib\Sh4\Debug
Fsdmgr_lib.lib1,139,43823-Sep-201119:07Public\Common\Oak\Lib\Sh4\Retail
Fsdmgr_lib.lib1,273,96423-Sep-201119:06Public\Common\Oak\Lib\X86\Debug
Fsdmgr_lib.lib1,070,97623-Sep-201119:05Public\Common\Oak\Lib\X86\Retail

References


For more information about device interface classes, visit the following Microsoft Developer Network (MSDN) website: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