Archive for the ‘Software’ Category

Feedback, FAQ and feature requests

Tuesday, August 5th, 2008

After publishing USB Image Tool 1.27 about a month ago on a single shareware page (, it has become somewhat of a success with over 12000 downloads from my page alone, not counting the various shareware/freeware archives, it became listed in. I recieved some feedback through comments with questions, feature requests and thanks. Be assured, that every feedback is welcome, even if you just want to say “thanx”.

As a result I have added a FAQ and a feature request list to the program page to adress the most common questions. If you wish to contact me and don’t want to post a comment you can also mail to alex(#) or software(#) (for spam protection please replace the (#) by the mail sign @).

USB Image Tool 1.28

Sunday, July 13th, 2008

USB Image Tool 1.28 comes with a new command line utility, that can be used for batch operations and doesn’t require the .Net Framework. Also the new GUI version is now compatible with Windows x64 versions.

USB Image Tool 1.27

Tuesday, June 24th, 2008

While playing attound with the SCSI commands to get direct access to USB devices I found the reason for the physical device size detection problem. Because opening a device with restricted user rights fails when you flag read/write operations, I removed them during the detection process. Unfortunately they are needed to retrieve the physical disk size of a device. The volume based i/o operations are not concerned, because opening a volume handle for reading or writing does not require admin access.

With version 1.27 the detection process first tries to open the device with read/write access. If this fails, the device is opened without read/write access. In this situation the physical device size can not be determined, but volume operations work fine.

I also cleaned up the source code and did some testing with the SCSI command set. Using the information from the book, that I bought 2 months ago, and the spti sample from the Windows DDK, I was able to send an INQUIRY command directly to the device and retrieve a valid return from it. I still have to test the READ and WRITE commands, but for now it looks promising.

USB Image Tool 1.26

Monday, April 21st, 2008

This version fixes a detection error when working with activated Windows Vista User Account Control (UAC). Somehow this prevents a correct detection of the physical USB device size (IOCTL_DISK_GET_LENGTH_INFO fails with an access error). Because the physical device size is only for information purpose, I decided to ignore the access error and continue the detection process. All transfer functions work with activated UAC.

USB Image Tool 1.25

Wednesday, April 16th, 2008

The new version is not such a big change. It just adds a Rescan button, which does a rescan for connected USB devices, in case of the application didn’t get the automatic notification. This is helpful for card readers, because switching the cards within a plugged in device doesn’t lead to a “device changed” notification. I’m still not sure how Windows itself handles this, but eventually I have to do it by some kind of polling in my application DLL, which checks each device periodically for changes.

Unfortunately my attempts to access partitions, that are not recognized by Windows, went not very well. FSCTL_ALLOW_EXTENDED_DASD_IO was not the solution of my problems, so I tried to switch to the NtReadFile/NtWriteFile functions from the Windows WDK (former DDK), but I could get the WDK implemented in my VS 2008. When I compile, using headers from the WDK, I get macro redefinition errors between the ntdef.h from the Windows WDK and the winnt.h from the Windows SDK. The former combination of VS 2005 and Windows DDK worked for some reason, so I’m currently trying to get the WDK working, although I read about the WDK not to be intended to compile with the VS IDE.

Also the book about USB mass storage, that I bought last week, was deliverd last Saturday. For now I only took a short peek at the content, but it may be possible to get direct access to an USB device using IOCTL_SCSI_PASS_THROUGH. With this, some major changes will come ahead, because then I have to divide between volume based and device based access. This would definitely call for a 1.30 version number.

USB Image Tool 1.24

Tuesday, April 8th, 2008

The new version fixes some more interface issues. The size check when restoring an image has been changed to be based on the partition size. Former versions checked the physical device size, which was not compatible with multiple partitions on a USB device. All other operations (progress bar, etc.) have been changed to use either volume or partition size, since all operations currently are volume based.

As a result of some new functions used, version 1.24 is not compatible with Windows 2000 anymore. Supported Windows versions are XP, Vista, Server 2003 and Server 2008. Eventually I will try some workarounds, that could make the next version compatible with Windows 2000 again.

Because of limitations in Windows it is currently not possible to access more than one partition on a removable USB device, limiting USB Image Tool to the first partition found. Partitions unknown to Windows, such as ext2, ext3, and so on, are still problematic to read and write, mostly resulting i/o errors. I’m trying to fix this using FSCTL_ALLOW_EXTENDED_DASD_IO to gain direct access to partitions unknown to windows.

I also played around with the Linux fdisk tool to create and examine some multiple partition situations, like an Ubuntu Live on a USB stick with a FAT16 and an ext2 partition (pointed out in a comment regarding version 1.20) as well as two FAT16 partitions on a Sony 128MB memory card plugged in via a card reader, but the current volume based program structure makes it difficult to access volumes, that aren’t detected and reported by Windows volume management functions. Perhaps I can use some partition based functions to get the necessary information. This needs more investigation.

Additionally I did some research on gaining direct access to the USB stick itself, regardless its volume structure. This would allow USB Image Tool to read and write images of complete USB sticks with multiple partitions on it. I found some information on, so I ordered the book on USB Mass Storage to get some detailed information. Luckily the current USD – EUR exchange rate makes it not very expensive in Germany. The book has some information on using SCSI commands to access an USB device, so perhaps I can use this to read and write data directly, since I’m currently able to open a handle to the USB device, but not to get valid data from it.

USB Image Tool 1.23

Thursday, April 3rd, 2008

USB Image Tool uses XZip compression routines to read and write compressed images. Since version 1.20 of USB Image Tool there have been some bugfixes made to XZip, so I implemented the newest version (XZip 1.3) instead of the old XZip 1.1 source code. Also two small user interface flaws have been fixed.

USB Image Tool 1.22

Sunday, March 30th, 2008

The new version now shows the serial number of the USB device (if available) and contains two more bugfixes. One of the fixes prevents transfer operation errors, when the device configuration changes during the copy process.

USB Image Tool 1.21 (Vista compatibility)

Saturday, March 29th, 2008

USB Image Tool 1.21 has been updated to version 1.21, adding support for Windows Vista. Older versions were not able to match correct volume information to USB devices when running on Windows Vista .

AutoplayMM 1.10

Tuesday, March 25th, 2008

AutoplayMM has been updated to version 1.10. This adds support for hover and click images in combination with the image object. Also a text output has been implemented. Further information can be found on the AutoplayMM page.