Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

FIX: A software update is available that fixes multiple issues in the Filesys module in Windows Embedded Compact 7


View products that this article applies to.

Summary

A software update is available that fixes multiple issues in the Filesys module (Filesys.lib) in Windows Embedded Compact 7.

Issue 1

The file system API cannot be returned when the File System Disk Manager (FSDMGR) PNP thread maintains a lock. 

In Windows Embedded Compact 7, the FSDMGR maintains a lock to synchronize access. When the FSDMGR PNP thread mount request for a device is not returned for any reason, this blocks other operations on the FSDMGR because these operations need access to the lock that is held by the PNP thread. Therefore, when an application calls the OpenStore, the OpenPartition, or the MountPartition API to mount another PNP device, the file system API cannot be returned.

Issue 2

A thread cannot mount a removable device by using the MountPartition API.

Consider the following scenario:
  • You run a Windows Embedded Compact 7-based image that contains the Storage Manager components on a target device.
  • The PNP thread tries to mount a store. For example, you mount a USB device to the Windows Embedded Compact 7-based device.
  • The PNP thread 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.

Issue 3

A deadlock may occur if a thread calls DismountStore or DismountPartition.

Consider the following scenario:
  • You run a Windows Embedded Compact 7-based image that contains the Storage Manager components on a target device.
  • A thread calls the DismountStore function or the DismountPartition function. For example, this happens when you unmount an external storage device from the Windows Embedded Compact 7-based device.
  • Another thread calls the CeResyncFilesys function or the PNPThread function. For example, this happens when you remount the external storage device to the Windows Embedded Compact 7-based device.
In this scenario, a deadlock may occur between the two threads. Additionally, the applications that produce these threads may crash.



↑ Back to the top


More Information

Software update information

A supported software update is now available from Microsoft as Windows Embedded Compact 7 Monthly Update November 2011. In the "File information" section, the package file name contains the processor type.

Note This Windows Embedded Compact 7 monthly update is available for download from the following Microsoft Download Center website: 

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.


Files that are included in this update package
File nameFile sizeDateTimePath
Stgapi.cpp35,14402-Nov-201100:40Private\Winceos\Coreos\Storage\Fsdmgr
Storedisk.cpp54,41102-Nov-201100:40Private\Winceos\Coreos\Storage\Fsdmgr
Storemain.cpp53,67002-Nov-201100:40Private\Winceos\Coreos\Storage\Fsdmgr
Storemain.hpp7,05902-Nov-201100:40Private\Winceos\Coreos\Storage\Fsdmgr
Fsdmgr_lib.lib2,257,43402-Nov-201100:28Public\Common\Oak\Lib\Armv5\Checked
Fsdmgr_lib.lib2,408,13002-Nov-201100:28Public\Common\Oak\Lib\Armv5\Debug
Fsdmgr_lib.lib2,115,79202-Nov-201100:27Public\Common\Oak\Lib\Armv5\Retail
Fsdmgr_lib.lib2,257,63802-Nov-201100:30Public\Common\Oak\Lib\Armv6\Checked
Fsdmgr_lib.lib2,408,31802-Nov-201100:30Public\Common\Oak\Lib\Armv6\Debug
Fsdmgr_lib.lib2,115,99602-Nov-201100:30Public\Common\Oak\Lib\Armv6\Retail
Fsdmgr_lib.lib2,253,42002-Nov-201100:32Public\Common\Oak\Lib\Armv7\Checked
Fsdmgr_lib.lib2,405,29002-Nov-201100:32Public\Common\Oak\Lib\Armv7\Debug
Fsdmgr_lib.lib2,112,72602-Nov-201100:32Public\Common\Oak\Lib\Armv7\Retail
Fsdmgr_lib.lib2,246,78402-Nov-201100:34Public\Common\Oak\Lib\Mipsii\Checked
Fsdmgr_lib.lib2,387,45202-Nov-201100:34Public\Common\Oak\Lib\Mipsii\Debug
Fsdmgr_lib.lib2,122,08402-Nov-201100:34Public\Common\Oak\Lib\Mipsii\Retail
Fsdmgr_lib.lib2,248,21402-Nov-201100:37Public\Common\Oak\Lib\Mipsii_fp\Checked
Fsdmgr_lib.lib2,388,88202-Nov-201100:36Public\Common\Oak\Lib\Mipsii_fp\Debug
Fsdmgr_lib.lib2,123,51402-Nov-201100:36Public\Common\Oak\Lib\Mipsii_fp\Retail
Fsdmgr_lib.lib2,093,89402-Nov-201100:39Public\Common\Oak\Lib\Sh4\Checked
Fsdmgr_lib.lib2,215,67002-Nov-201100:38Public\Common\Oak\Lib\Sh4\Debug
Fsdmgr_lib.lib1,999,16602-Nov-201100:38Public\Common\Oak\Lib\Sh4\Retail
Fsdmgr_lib.lib1,998,09002-Nov-201100:40Public\Common\Oak\Lib\X86\Checked
Fsdmgr_lib.lib2,071,51602-Nov-201100:40Public\Common\Oak\Lib\X86\Debug
Fsdmgr_lib.lib1,862,29402-Nov-201100:40Public\Common\Oak\Lib\X86\Retail

↑ Back to the top


References

For more information about the DismountPartition function in Windows Embedded Compact 7, visit the follow Microsoft Developer Network (MSDN) website:

DismountPartition (Windows Embedded Compact 7)

For more information about the DismountStore function in Windows Embedded Compact 7, visit the follow MSDN website:

DismountStore (Windows Embedded Compact 7)

If you experience the issues that are described in the "Symptoms" section on a Windows Embedded CE 6.0 R3-based device, click the following article numbers to view the articles in the Microsoft Knowledge Base: 

2557486 FIX: The file system API cannot be returned when the FSDMGR PNP thread maintains a lock on a Windows Embedded CE 6.0 R3-based device

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

2495580 FIX: A deadlock occurs between two threads in Windows Embedded CE 6.0 R3

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

↑ Back to the top


Keywords: kbqfe, kbfix, kbnotautohotfix, kbpubtypekc, kbexpertiseinter, kb

↑ Back to the top

Article Info
Article ID : 2633077
Revision : 1
Created on : 1/7/2017
Published on : 12/13/2011
Exists online : False
Views : 198