This test part of the RealDB project. See site at http://www.gillius.org/realdb/ Based on revision 57 of CorruptionTest: Ran the test a handful of times on the following equipment: * Generic "ALLIN1 2.0" multi card reader connected by USB 2.0 * Windows XP SP2 * SanDisk 128MB CompactFlash card, probably purchased circa mid 2004, copyright date on label is 2000 * Formatted Fat16 * BLock file with 1024 blocks of 4096 bytes each Performed maybe 6 tests total. On the first and last test the procedure was to pull out the entire card reader from the USB port. On the first attempt, when I tried to validate the file, it would read successfully up to the point where I pulled it out and then the USB device would just shut off and "reset", causing Windows to lose and reacquire the drive. CHKDSK on the drive did not see any errors. For the following tests, I decided to try a different approach. I deleted the file and recreated it, cleared it, and wrote the file. I then pulled the card itself out of the socket, leaving the reader device attached to the USB. The writer program failed as expected. Each of these attempts (there were probably about 3-5), resulted on reinsertion of the card a file with about the right number of good blocks, and the rest clear. To confirm that the CRC is working, I modified the file by hand to create a bad block. Between each test, I ran a clear operation, then started a write and pulled the card out while it was writing. On the last test I decided to try pulling the entire device again. The previous behavior of the whole device resetting did not occur again; instead the results were similar to the previous runs where x% of blocks were good and the rest clear. Conclusion: The interesting part of this is that in my handful of tests, I was unable to cause corruption by physically disconnecting the device. I was very surprised by this fact, because even if the hardware had some capability to ensure that a block being written cannot be lost, I doubt that the hardware block size is 4096 or greater (I would suspect maybe 512).