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.



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:

Windows Embedded Compact 7 Updates

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 name

File size

Date

Time

Path

Stgapi.cpp

35,144

02-Nov-2011

00:40

Private\Winceos\Coreos\Storage\Fsdmgr

Storedisk.cpp

54,411

02-Nov-2011

00:40

Private\Winceos\Coreos\Storage\Fsdmgr

Storemain.cpp

53,670

02-Nov-2011

00:40

Private\Winceos\Coreos\Storage\Fsdmgr

Storemain.hpp

7,059

02-Nov-2011

00:40

Private\Winceos\Coreos\Storage\Fsdmgr

Fsdmgr_lib.lib

2,257,434

02-Nov-2011

00:28

Public\Common\Oak\Lib\Armv5\Checked

Fsdmgr_lib.lib

2,408,130

02-Nov-2011

00:28

Public\Common\Oak\Lib\Armv5\Debug

Fsdmgr_lib.lib

2,115,792

02-Nov-2011

00:27

Public\Common\Oak\Lib\Armv5\Retail

Fsdmgr_lib.lib

2,257,638

02-Nov-2011

00:30

Public\Common\Oak\Lib\Armv6\Checked

Fsdmgr_lib.lib

2,408,318

02-Nov-2011

00:30

Public\Common\Oak\Lib\Armv6\Debug

Fsdmgr_lib.lib

2,115,996

02-Nov-2011

00:30

Public\Common\Oak\Lib\Armv6\Retail

Fsdmgr_lib.lib

2,253,420

02-Nov-2011

00:32

Public\Common\Oak\Lib\Armv7\Checked

Fsdmgr_lib.lib

2,405,290

02-Nov-2011

00:32

Public\Common\Oak\Lib\Armv7\Debug

Fsdmgr_lib.lib

2,112,726

02-Nov-2011

00:32

Public\Common\Oak\Lib\Armv7\Retail

Fsdmgr_lib.lib

2,246,784

02-Nov-2011

00:34

Public\Common\Oak\Lib\Mipsii\Checked

Fsdmgr_lib.lib

2,387,452

02-Nov-2011

00:34

Public\Common\Oak\Lib\Mipsii\Debug

Fsdmgr_lib.lib

2,122,084

02-Nov-2011

00:34

Public\Common\Oak\Lib\Mipsii\Retail

Fsdmgr_lib.lib

2,248,214

02-Nov-2011

00:37

Public\Common\Oak\Lib\Mipsii_fp\Checked

Fsdmgr_lib.lib

2,388,882

02-Nov-2011

00:36

Public\Common\Oak\Lib\Mipsii_fp\Debug

Fsdmgr_lib.lib

2,123,514

02-Nov-2011

00:36

Public\Common\Oak\Lib\Mipsii_fp\Retail

Fsdmgr_lib.lib

2,093,894

02-Nov-2011

00:39

Public\Common\Oak\Lib\Sh4\Checked

Fsdmgr_lib.lib

2,215,670

02-Nov-2011

00:38

Public\Common\Oak\Lib\Sh4\Debug

Fsdmgr_lib.lib

1,999,166

02-Nov-2011

00:38

Public\Common\Oak\Lib\Sh4\Retail

Fsdmgr_lib.lib

1,998,090

02-Nov-2011

00:40

Public\Common\Oak\Lib\X86\Checked

Fsdmgr_lib.lib

2,071,516

02-Nov-2011

00:40

Public\Common\Oak\Lib\X86\Debug

Fsdmgr_lib.lib

1,862,294

02-Nov-2011

00:40

Public\Common\Oak\Lib\X86\Retail

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: 

2557486FIX: 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

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

What affected your experience?

Thank you for your feedback!

×