Microsoft KB Archive/887708

From BetaArchive Wiki

Article ID: 887708

Article Last Modified on 5/27/2005



APPLIES TO

  • Microsoft Windows CE .NET 4.2




SYMPTOMS

In Microsoft Windows CE .NET 4.2, a storage volume may be allowed to be unmounted and formatted even though the storage volume was not designed to be unmounted and formatted. This problem occurs after you apply update 040318 that is mentioned in the Microsoft Knowledge Base article 835949. For additional information about the update, click the following article number to view the article in the Microsoft Knowledge Base:

835949 FIX: The Fsdmgr.dll module may generate an exception during a WriteFile operation when a volume is dismounted in Windows CE .NET 4.2


CAUSE

Before the update that is mentioned in the "Symptoms" section is installed, Storage Manager does not dismount a storage volume if the call to the FSD_UnmountDisk file-system-driver function returns a failure. Returning a failure from this function has been used as a technique to help protect a volume from being formatted. After the update is applied, you must use a different technique to prevent a volume from being unmounted and formatted. However, this technique was not fully implemented in the update.

RESOLUTION

Software update information

A supported software update is now available from Microsoft as Windows CE 4.2 Core OS QFE 887708. 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


Prerequisites

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

Restart requirement

After you install this update, you must perform a clean build of the whole platform. To clean the platform, click Clean on the Build menu. To build the platform, click Build Platform on the Build menu. You do not have to restart your computer after you apply this update.

Update replacement information

This update does not replace any other updates.

File information

The English version of this package has the file attributes (or later) that are listed in the following table.

   Date         Time   Version            Size    File name
   --------------------------------------------------------------
   20-Nov-2004  00:15  4.2.4.1112      1,002,232  Wincepb42-041112-kb887708-armv4.exe  
   20-Nov-2004  00:15  4.2.4.1112      1,002,232  Wincepb42-041112-kb887708-armv4i.exe
   20-Nov-2004  00:15  4.2.4.1112      1,018,616  Wincepb42-041112-kb887708-mipsii.exe
   20-Nov-2004  00:15  4.2.4.1112      1,018,616  Wincepb42-041112-kb887708-mipsii_fp.exe  
   20-Nov-2004  00:15  4.2.4.1112      1,022,712  Wincepb42-041112-kb887708-mipsiv.exe
   20-Nov-2004  00:15  4.2.4.1112      1,022,712  Wincepb42-041112-kb887708-mipsiv_fp.exe
   20-Nov-2004  00:14  4.2.4.1112        989,944  Wincepb42-041112-kb887708-sh3.exe  
   20-Nov-2004  00:14  4.2.4.1112        989,944  Wincepb42-041112-kb887708-sh4.exe  
   20-Nov-2004  00:14  4.2.4.1112        936,696  Wincepb42-041112-kb887708-x86.exe

The English version of this update 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 tool in Control Panel.

   Date         Time   Version            Size    File name
   --------------------------------------------------------------

   Path: Public\Common\Oak\Files
   18-Nov-2004  03:46                    136,183  Common.reg

   Path: Public\Common\Oak\Inc
   19-Nov-2004  18:25                     11,107  Pwindbas.h

   Path: Public\Common\Oak\Lib\Armv4\Debug
   19-Nov-2004  18:21                     77,030  Fsdmain.lib
   19-Nov-2004  18:21                     86,016  Fsdmain.pdb
   19-Nov-2004  18:21                    199,546  Fsmain.lib
   19-Nov-2004  18:21                     69,632  Fsmain.pdb
   19-Nov-2004  18:21                    353,166  Storemgr.lib
   19-Nov-2004  18:21                     94,208  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Armv4\Retail
   19-Nov-2004  18:21                     59,534  Fsdmain.lib
   19-Nov-2004  18:21                     86,016  Fsdmain.pdb
   19-Nov-2004  18:21                    171,216  Fsmain.lib
   19-Nov-2004  18:21                     69,632  Fsmain.pdb
   19-Nov-2004  18:21                    307,280  Storemgr.lib
   19-Nov-2004  18:21                     86,016  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Armv4i\Debug
   19-Nov-2004  18:22                     77,102  Fsdmain.lib
   19-Nov-2004  18:22                     86,016  Fsdmain.pdb
   19-Nov-2004  18:21                    199,826  Fsmain.lib
   19-Nov-2004  18:21                     69,632  Fsmain.pdb
   19-Nov-2004  18:22                    353,846  Storemgr.lib
   19-Nov-2004  18:22                     94,208  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Armv4i\Retail
   19-Nov-2004  18:21                     59,632  Fsdmain.lib
   19-Nov-2004  18:21                     86,016  Fsdmain.pdb
   19-Nov-2004  18:21                    171,428  Fsmain.lib
   19-Nov-2004  18:21                     69,632  Fsmain.pdb
   19-Nov-2004  18:22                    307,786  Storemgr.lib
   19-Nov-2004  18:22                     86,016  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Mipsii\Debug
   19-Nov-2004  18:22                     79,590  Fsdmain.lib
   19-Nov-2004  18:22                     86,016  Fsdmain.pdb
   19-Nov-2004  18:22                    218,244  Fsmain.lib
   19-Nov-2004  18:22                     69,632  Fsmain.pdb
   19-Nov-2004  18:22                    362,678  Storemgr.lib
   19-Nov-2004  18:22                     94,208  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Mipsii\Retail
   19-Nov-2004  18:22                     61,384  Fsdmain.lib
   19-Nov-2004  18:22                     86,016  Fsdmain.pdb
   19-Nov-2004  18:22                    166,098  Fsmain.lib
   19-Nov-2004  18:22                     69,632  Fsmain.pdb
   19-Nov-2004  18:22                    319,232  Storemgr.lib
   19-Nov-2004  18:22                     86,016  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Mipsii_fp\Debug
   19-Nov-2004  18:23                     79,626  Fsdmain.lib
   19-Nov-2004  18:23                     86,016  Fsdmain.pdb
   19-Nov-2004  18:22                    218,254  Fsmain.lib
   19-Nov-2004  18:22                     69,632  Fsmain.pdb
   19-Nov-2004  18:23                    362,714  Storemgr.lib
   19-Nov-2004  18:23                     94,208  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Mipsii_fp\Retail
   19-Nov-2004  18:22                     61,410  Fsdmain.lib
   19-Nov-2004  18:22                     86,016  Fsdmain.pdb
   19-Nov-2004  18:22                    166,106  Fsmain.lib
   19-Nov-2004  18:22                     69,632  Fsmain.pdb
   19-Nov-2004  18:22                    319,290  Storemgr.lib
   19-Nov-2004  18:22                     86,016  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Mipsiv\Debug
   19-Nov-2004  18:23                     79,894  Fsdmain.lib
   19-Nov-2004  18:23                     86,016  Fsdmain.pdb
   19-Nov-2004  18:23                    220,858  Fsmain.lib
   19-Nov-2004  18:23                     69,632  Fsmain.pdb
   19-Nov-2004  18:23                    366,946  Storemgr.lib
   19-Nov-2004  18:23                     94,208  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Mipsiv\Retail
   19-Nov-2004  18:23                     61,596  Fsdmain.lib
   19-Nov-2004  18:23                     86,016  Fsdmain.pdb
   19-Nov-2004  18:23                    167,288  Fsmain.lib
   19-Nov-2004  18:23                     69,632  Fsmain.pdb
   19-Nov-2004  18:23                    321,346  Storemgr.lib
   19-Nov-2004  18:23                     86,016  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Mipsiv_fp\Debug
   19-Nov-2004  18:23                     79,930  Fsdmain.lib
   19-Nov-2004  18:23                     86,016  Fsdmain.pdb
   19-Nov-2004  18:23                    220,868  Fsmain.lib
   19-Nov-2004  18:23                     69,632  Fsmain.pdb
   19-Nov-2004  18:24                    366,982  Storemgr.lib
   19-Nov-2004  18:24                     94,208  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Mipsiv_fp\Retail
   19-Nov-2004  18:23                     61,622  Fsdmain.lib
   19-Nov-2004  18:23                     86,016  Fsdmain.pdb
   19-Nov-2004  18:23                    167,296  Fsmain.lib
   19-Nov-2004  18:23                     69,632  Fsmain.pdb
   19-Nov-2004  18:23                    321,404  Storemgr.lib
   19-Nov-2004  18:23                     86,016  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Sh3\Debug
   19-Nov-2004  18:24                     73,618  Fsdmain.lib
   19-Nov-2004  18:24                     86,016  Fsdmain.pdb
   19-Nov-2004  18:24                    177,796  Fsmain.lib
   19-Nov-2004  18:24                     69,632  Fsmain.pdb
   19-Nov-2004  18:24                    331,506  Storemgr.lib
   19-Nov-2004  18:24                     94,208  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Sh3\Retail
   19-Nov-2004  18:24                     58,558  Fsdmain.lib
   19-Nov-2004  18:24                     86,016  Fsdmain.pdb
   19-Nov-2004  18:24                    138,100  Fsmain.lib
   19-Nov-2004  18:24                     69,632  Fsmain.pdb
   19-Nov-2004  18:24                    292,222  Storemgr.lib
   19-Nov-2004  18:24                     86,016  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Sh4\Debug
   19-Nov-2004  18:24                     73,618  Fsdmain.lib
   19-Nov-2004  18:24                     86,016  Fsdmain.pdb
   19-Nov-2004  18:24                    177,772  Fsmain.lib
   19-Nov-2004  18:24                     69,632  Fsmain.pdb
   19-Nov-2004  18:24                    331,506  Storemgr.lib
   19-Nov-2004  18:24                     94,208  Storemgr.pdb

   Path: Public\Common\Oak\Lib\Sh4\Retail
   19-Nov-2004  18:24                     58,540  Fsdmain.lib
   19-Nov-2004  18:24                     86,016  Fsdmain.pdb
   19-Nov-2004  18:24                    138,078  Fsmain.lib
   19-Nov-2004  18:24                     69,632  Fsmain.pdb
   19-Nov-2004  18:24                    291,982  Storemgr.lib
   19-Nov-2004  18:24                     86,016  Storemgr.pdb

   Path: Public\Common\Oak\Lib\X86\Debug
   19-Nov-2004  18:21                     72,218  Fsdmain.lib
   19-Nov-2004  18:21                     86,016  Fsdmain.pdb
   19-Nov-2004  18:21                    163,118  Fsmain.lib
   19-Nov-2004  18:21                     69,632  Fsmain.pdb
   19-Nov-2004  18:21                    288,596  Storemgr.lib
   19-Nov-2004  18:21                     94,208  Storemgr.pdb

   Path: Public\Common\Oak\Lib\X86\Retail
   19-Nov-2004  18:21                     55,934  Fsdmain.lib
   19-Nov-2004  18:21                     86,016  Fsdmain.pdb
   19-Nov-2004  18:21                    116,420  Fsmain.lib
   19-Nov-2004  18:21                     69,632  Fsmain.pdb
   19-Nov-2004  18:21                    255,162  Storemgr.lib
   19-Nov-2004  18:21                     86,016  Storemgr.pdb

STATUS

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

MORE INFORMATION

This update modifies the Common.reg file to document the new flag value of 0x20. To prevent a volume from being unmounted, this flag must be included in the MountFlags registry setting for the target Storage Manager profile.

;   MountFlags - Flags on how the partition is mounted (hex values)
;       1  - Hidden file system
;       2  - May contain system registry
;       4  - Mount as root of file system, "\"
;       8  - Hide ROM when mounting FS root; use with FLAG_ROOTFS
;      10  - Mount filesystem as an external ROM filesystem
;      20  - Treat all files and subdirectories as system files 

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\<named profile>]
    "MountFlags"=dword:<flags>


If you have previously set a value for the MountFlags setting, the value 0x20 must be combined with the current value by using the OR operator.

Keywords: kbbug kbfix kbqfe KB887708