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.