Windows Mobile Pocket PC (PPC) Phone smartphone device accepts an external SD memory card to expand the storage memory so that user can install large amount of applications and data especially program taken up big size of memory space such as GPS navigation device. However, sometimes, user may found that the SD memory card that been inserted into the mobile device card slot been disappeared and no longer been detected suddenly, especially after device wakes up from suspend or sleep state, even though seconds ago the SD card is still working properly.

Other related symptoms that often accompany missing or disappearing SD memory card where the device treats the card as is doesn’t been inserted or existed are including the memory card does show up in File Explorer folder tree but reported as having no free space, or the data on the memory card appears to be corrupted and causing the whole device system to hang and not responding when programs, such as camera, tries to access, write or read from the card. Other peculiar symptom is no data and files are contained within directories.

The problems can be fixed and resolved by simply by just ejecting the card and inserting the card into the SD slot again. By reinserting, Windows Mobile smartphone device will able to detect and make the card visible again. However, doing this every time the card disappeared is annoying and troublesome. On the other hand, the Windows Mobile system may assume that it’s another memory card that been inserted, in addition to the original “Storage Card”, and thus creating another folder name “Storage Card2” to represent the what supposed to be the same “Storage Card” or “SDMMC” memory card, causing all links and shortcuts to be broken.

The problem is possibly caused by different chipset configuration for the SD memory card is incompatible with either the card reader in the device, or the ROM of the device. It’s reported that the Japan-made SD card, including MicroSD or MiniSD which use Toshiba chipset (such as some models of Kingston brand) is more compatible with most Windows Mobile device, comparing with chipset used in Taiwan made memory card (e.g. some models of Crucial brand).

If upgrading the firmware OS or ROM, replacing the handset, or changing to a better quality SD memory card is not an option, here’s a workaround that may help to fix the erroneous detection issue on inserted memory card.

Run Registry Editor (e.g. PHM Registry Editor and CeRegEditor), navigate to the following registry key, and then change the value data for the listed registry entries accordingly.

[HKLM\System\StorageManager]
PNPUnloadDelay“=dword:8196

[HKLM\System\StorageManager]
PNPWaitIODelay“=dword:8196

Note that the 8196 should be entered as a DECIMAL value. The HEXADECIMAL (HEX) equivalent is 0x00002004.

According to MSDN, PHPUnloadDelay specifies time delay, in milliseconds, between unmounting and detaching a device which is unavailable. PHPUnloadDelay is the basis for PnPWaitIoDelay, which specifies the amount of time waited before retrying an I/O operation on an unavailable device (such as SD card), with default value of three times the value of PNPUnloadDelay. By default, as you should see, both registry keys have lower values of 4096 or 1500, which means shorter waiting time, which possible causing Windows Mobile to think that the memory card is gone and taken out when resuming from suspend.

If the registry hack above doesn’t yet solving the memory card disappearance error, try to disable the sleep mode on the SD card. To do so, disable and turn off the power management for the SD memory card by change the following registry key:

[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class]
DisablePowerManagement“=dword:00000001

Soft reset the PPC mobile device after changing the registry keys to check if the memory card issue gone disappear issue has been fixed.