http://www.modaco.com/index.php?automodule=downloads&req=display&code=sst&id=1702File Name: WM5torage
File Submitter: Ingvarr
File Submitted: 22 Mar 2006
File Updated: 4 Feb 2010
File Category: Utilities - Phone Management
This program will export the flash memory card inside the smartphone as usual USB Mass Storage device (ordinary "usb disk") - effectively turning smartphone into flash reader. Its completely free, but if you find it useful, you can show your gratitude by donating to author:
If you want to uninstall it, I strongly recommend to de-activate mass storage mode first.
WARNING. The ability to choose different card slots to export will potentially allow you to export the system(firmware) storages/disk partitions. While it can be very powerful tool, improper use of it may damage the firmware data and will require a re-flashing, or in worst cases it may even render the device PERMANENTLY unusable. There is no 100% way to automatically determine if the given storage device is the system one, WM5torage will only try to make guesses about it and display warnings, but its not 100% proof. So if you see the "second free memory card available", dont rush with formatting it/copying data on it (especially when you know that your device have only one card slot)!! You have been warned!
FAQ - Please Read before you ask questions in the support topic to avoid repetition
Q - Why WM5torage isn't working on my device while it works on other devices while WM version is the same?
A - To access the USB hardware, WM5torage uses the USB controller driver contained in the PDA/smartphone firmware. This driver is very poorly made on many devices. Many device manufacturers originally make this driver to properly work with ActiveSync protocol only (breaking the full specifications from Microsoft). Even with ActiveSync it often works poorly and require several firmware patches to be polished (that what happens when hardware engineers do the programming work, hehe ) USB Mass Storage uses some functions of USB controller that ActiveSync doesn't - and so firmware bugs not apparent with ActiveSync often appear and prevent WM5torage from working properly.
Take note that problems with device USB hardware driver can manifest in a different ways - and that PC will actually see the "USB disk" means nothing - problems can arise when it will try to actually access it - and it can vary from instant "USB device error" to sporadic "failure to write/read" errors, depending on severity of driver protocol glitches.
Q - But why Softick CardExport works on my device while WM5torage does not?
A - CardExport installs own USB controller drivers that work directly with every kind of USB controller chips/interfaces out there that CardExport supports. These drivers are written from scratch with proper support of USB Mass Storage protocol in mind. Also, because CardExport works directly with USB hardware, it works on WM2003 while WM5torage does not (there are no suitable built-in driver in WM2003 firmware). Of course writing a direct hardware access for every kind of chip/IO around is a very big amount of work - too much for a free software done in spare time. I try to ingeniously bypass the various non-fatal glitches in firmware drivers, but this is not always possible and always device-dependant.
On the other hand, often when a new device/chipset appears, CardExport do not know how to access it correctly, and you have to wait for new CardExport version, while WM5torage uses the driver that in the firmware from the start and works instantly. For example, such situation existed for quite a time for OMAP-based devices, and also for WM Smartphones (that was actually the original motivation for WM5torage project).
Q - Why does it complain about the lack of the needed system permissions when I try to activate it?
A - Most likely you need to properly and fully application unlock your device. Take note that some recipies do not do full unlock, they still leave some API locked. People who getting "error 57" most likely havent fully unlocked their smartphones. Try this one:
add new value "0000101b": dword = 1
That would set security model to "one-tier" - unsigned applications/components will still ask for confirmation, but after you confirm, they will launch in full-trust access mode, like on WM5 PocketPCs.
Q - Can the support for WM2003 be added?
A - Unfortunately, at least Windows Mobile 5 or 6 is required. Sorry, but I cant possibly make it work on WM 2003, as only WM5 allows USB protocol implementation separate from USB hardware driver - on WM 2003 I'll have to rewrite whole USB hardware drivers, and this would be too much for a tiny and free utility
Q - What exactly the "Lock card on attach only" option does?
A - When smartphone device functions as USB disk, it must not see the storage card to prevent simultaneous access from device and USB cable. On default (if lock card on attach is off), the card is locked/dismounted when you activate WM5torage and place the smartphone into USB disk mode - and if card can not be locked on activation, you will see instant error message.
If you enable "lock card on attach", activating WM5torage will put device into "ready mode" - it will know that when cable is attached, it should appear as USB disk. But card will not be instantly dismounted (and made unavailable to device) when cable is not attached, it will be locked only if cable is attached already, or later when you actually attach it. When you will disconnect the device USB cable, the Windows Mobile will automatically see the card again, without the need to deactivate WM5torage. If you re-connect cable, the card will disappear again, and so on. If there will be an error in dismount (for example due to programs using the card), you will not see the error message - but you will see "no disk" error on the host PC instead.
Q - What exactly the "Two-way" option does?
A - "Two-way" is an ability to simultaneously access the card both from Windows Mobile and from USB, so when you connect USB the card will not disappear on the phone! This however has one limitation - one of them always must be read only access, to prevent corruption.
So two scenarios are possible:
1. Enable "Read-Only". The card will be read-only from USB. However, Windows Mobile will still have full access to the card.
2. Disable "Read-Only". The card will be writeable from USB. Windows Mobile will still see the card, but will be unable to write to it.
Important - Two-way is not a replacement for ActiveSync! Its primary purpose is to allow people to still use some semi-static data (ringtones/etc) from storage card while using it in mass drive mode. Files written by USB will not immediately visible by Windows Mobile, and vice versa - this is not a bug. Filesystem changes will re-sync when you activate/deactivate WM5torage, causing file system remount(refresh).
Q - What exactly the troubleshooting options do?
A - The troubleshooting options alter the internal behaviour of WM5torage USB mass storage protocol driver in attempt to bypass various device-specific quirks and make it work. Generally you should not tweak them, if WM5torage works properly already. Hovewer if it does not work properly on your device/firmware, you can try tweaking troubleshooting options to see if they will help.
Now on what each option actually does:
"Disable concurrency" - by default, WM5torage tries simultaneously to transfer data on the USB bus and write/read data to/from flash memory. Since in many cases USB controller and SD/flash controller are separate devices, it makes perfect sense to utilize them simultaneously - this will squeeze the best possible overall transfer speed. Hovewer, sometimes it causes problems and instabilities (ie sporadic read/write errors). In that case you may try to disable concurrency, and WM5torage will first transfer whole block of data on USB, then write it to flash, in series.
"Disable RNDIS on activate" - apparently due to the lack of their driver programmer's skills, on some devices high-speed activesync transfer mode (networked, RNDIS) conflicts with USB Mass Storage protocol. In that case it helps to revert device into legacy (serial, slower speed) ActiveSync mode, then WM5torage works. For example, on most devices with Samsung processors its called "Enable Advanced Network Functionality" in control panel, and should've been unchecked. This troubleshooting option is for such devices - to remove the need for you to manually enable slower mode. WM5torage will do the needed action automatically when you activate it, and when you deactivate it, it will restore the ActiveSync setting back.
Q - I want to translate WM5torage in my native language, can I do that?
A - Of course, volunteer translations are totally welcome, just retain the original copyright notice (and you can add your own translation credit, like "Translated by ..."). To translate GUI of WM5torage you will need some expertise though - I assume that you know how to unpack/repack CAB files and edit the Windows resources/dialogs/strings. You will need to unpack WM5torage.exe file from CAB. Then unpack it via UPX (http://upx.sourceforge.net/). Then you can translate the UI dialog and all text strings using any resource editor (resource hacker utility). Then repack WM5torage.exe back to cab, and share it with the world
Q - Why the big files are copied fast, but many small ones - a lot slower?
A - By default, PC Windows disables the write cache for USB disks. When the PC Windows finishes the file copying, it refreshes the directory and FAT, and figures - when files are very small, it will write a lot more of this system data than of actual file data. But this can be mitigated easely - just enable the "Optimize for Performance" in the Device Manager | WM5torag disk properties | Policies. Just remember that with this mode you better always use the "safe removal" PC Windoes icon before you detach/deactivate the WM5torage disk, to prevent data corruption.
Q - Why only the memory card allowed to be exported and not the whole filesystem(internal memory)?
A - First, USB Mass Storage protocol does export of the disk(card) as the set of sectors - basically as the low level disk. Partition, filesystem, and actual files - this all are recognized on the PC side, and only sectors travel over the USB cable and into/from the mobile device. Obviously, the usual Windows PC understands only FAT or NTFS file systems, while the smartphone internal storage is usually formatted by very special Windows Mobile file systems - PC will not recognize it and either will see it as "empty disk" or as "unregognized partition/filesystem". Just remember, there are still useful data/firmware there, even when PC sees it as "empty/wasted space" - so dont try to reformat it, or you can damage the internal filesystem/firmware!
Second, USB Mass Storage protocol requires the exclusive disk access - so when disk/card is accessible from PC side via USB, it must be made unaccessible from the PDA/smartphone side. Otherwise PC and PDA will try to access the card simultaneously and interrupt each other, corrupting the data and filesystem. Obviously memory card can be "switched off", because removability and absence of it the design feature from the start. The internal storage, on the other hand, designed as always available and non-removable from the start - even if WM5torage will be able to persuade OS to "dismount" the internal storage, most likely Windows Mobile will not like the fact that all system files suddenly are disappeared
Q - Can the USB 2.0 (high speed) be implemented?
A - It can not be "implemented" by WM5torage, as this is a hardware-dependent feature, for example, it needs the high-speed USB tranceiver chip. And high-speed flash memory or the microdrive. On (rare) devices which already have such hardware and this harware is properly accessible via built-in firmware driver, WM5torage will work very quickly and in proper USB 2.0 high-speed. For example, this was reported on USB Athena. Sadly, I dont know any other devices with such functionality, as most of manufacturers use cheap built-in low speed USB controllers and slow serial Flash memory controllers.
Q - I see that some people with Samsung CPU-based devices use WM5torage ok, but it does not work for me, why?
A - Try to switch on the "Disable RNDIS on activate" troubleshooting option. This seem to be the particular quirk of the Samsung USB controller driver. It seem have no effect on some firmware/device versions, but still worth to try.
Q - I have deinstalled the WM5torage, now the PC does not see the PDA/smartphone and I can not synchronize via ActiveSync!
A - This happens sometimes after the freeze or improper deinstallation without the proper WM5torage deactivation. Do the soft-reset. Install wm5torage again. Activate/Deactivate it. Also you can try to enable/disable the "USB modem" mode if your device has one.
Q - PDA/smartphone do not see the memory card anymore! (or memory card is moved to the "Storage Card 2" folder).
A - This sometimes happen on some devices, when you activate WM5torage while some programs have the open files on the card (some devices will display "error 1f", some not). Deactivate the WM5torage. Remove the memory card physically. Do the soft-reset. Delete the "Storage Card" folder (if its visible with memory card removed, this is abnormal and it must be deleted). Then when you re-insert the memory card, it should properly appear under "Storage Card" or other proper name again.
* Changelog *
- added the "two-way" mode
- proper support for device icon and description in the File Explorer. So device will not be just generic "Removable Drive (F:)". It will have proper description and even big Vista icon (if your device is modern enough to expose custom sync icon artwork).
- bug fixes, in particular fix for invisible checkmarks in the Troubleshooting menu
- added the long-awaited option to lock/dismount card only when USB cable is actually attached (so when you will disconnect the device, it will automatically see the card again, without the need to deactivate WM5torage).
- added the troubleshooting options for different firmwares/devices (should be tweaked only if WM5torage does not work properly)
- GUI is slightly modified according to Microsoft guidelines for better support of landscape and small-screen devices
- Many changes to the driver to allow for more invisible error recovery. Can possibly help with read/write instabilities on some devices. Also can help with preventing the complete freezes in case of USB/flash memory errors.
- Added the quick "blink" indication when choosing the LEDs/vibrators
- Improved the checking for "system" storages. Will try to more intelligently choose the storage card device as default right after install. Can help on devices where "DSK1:" is infact an internal storage, and the storage card is for example "DSK3:".
- More compatible re-mount mechanism. Possibly can help with "Hang on deactivate" issue.
- More of bugs fixed. Restored compatibility with some devices that were supported in 1.5x
- Moved start shortcut from "Accessories" subfolder to main Programs menu.
- Bug fixes
- Added the command line switch -t to "flip-flop" between active and unactive states
- Files are now compressed with UPX
- Added ability to choose the PDA/smartphone storage device to export as USB Mass Storage. Helpful for PDAs or phones with several card slots or internal "file stores".
- Fixed a minor issue with applicaiton icon not appearing in "Accessories" Start Menu folder after installation on PDAs
- Full compliance with USB Mass Storage Bootability Specification. Now booting PC from smartphone as USB stick should always properly work, provided your computer's BIOS is modern enough to properly USB-drive-boot. Checked it via booting FreeDOS and PuppyLinux from my 8310 - seem to work ok.
- Improved general compliance with USB Mass Storage protocol. Still not 100% compliant though, due to the built-in hardware driver limitations & bugs.
- Added command line switches to control utility "remotely", via scripting utils or batch files & shortcuts:
-a Activate mass storage mode
-d Deactivate mass storage mode
Switches can be combined, they will be executed in order. For example, "WM5torage -a -q" will launch utility, activate mass storage mode (if not active already), and quit after activation is completed.
- USB device will not appear on PC as "unnamed" anymore, but in the form of "WM5torag"(sorry only 8 chars in ID) + "device name". Helps when multiple devices are connected and you are using "safe removal".
- LED interface tweaks
- fix for a small issue with LED/vibrator not going off
- added ability to choose indication LEDs on Read and Write operations (you can set both to same LED). Take note that there only LEDs that system reports to be available, and on many platforms only one LED (and vibrator) is actually reported as application-controllable
- another change to "suspend-prevention" code to prevent some PDAs to going into sleep in the middle of transfer and interrupting the transfer
- If there is Inbox window open in background, and "activation error 1f" happens, will try to automatically close Inbox window to prevent activation error. This just requests Inbox to close as user can do, so you need not to worry for it - it shouldnt cause any problems with messaging.
- driver revamp, added asynchronous processing. If device can do USB transfers and read/write from card simultaneously, there will be significant speed increase - up to limit of either USB controller or Flash memory (what is slower).
For my 8310 / SanDisk 2Gb setup it gave about 20% speed increase.
- moved all natural language strings/messages into resource string tables, to allow for resource i18n/translation
- on deactivate, switch will be made not just to RNDIS, but to previously remembered driver. I.e. if you will set ActiveSync to Serial mode, it will not revert to RNDIS anymore on Mass Storage deactivation, it should remain Serial
- restart will not be suggested if installation wasnt successful
- added possible explanations to most common activation errors (1f and 57)
- added prompt to soft-restart the device after installation
- when storage is attached to USB host, mobile device USB controller and flash disk are ordered to be kept in "Power On" state
- added switch to choose between "Removable" and usual ("Hard Disk") device classes. Will affect how the host OS treats the device - for instance, it will not create System Restore and Recycle Bin if class is Removable.
- added some additional diag checks to help evaluate possible problems.
- added write-protection switch
- added checks for ability to actually open memory card (card existance)
- if "storage card" installation chosen, will install to main memory anyway, as it cant properly run from storage card.
Click here to download this file
Edited by Ingvarr, 04 February 2010 - 05:25 PM.