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 www.lvr.com, 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.