The progress is only logged in cd2iso.exe when it has incresed 2.5% since the last time it was reported. In reality the program makes 10000+ reads and therefore the log files would become quite large if something was logged about each of them. Inside the "main loop" cd2iso.exe only reports errors right now. The buflen and byteswritten are logged after a read failure though (and they aren't changed in that case either, so it's the same before and after the read). So the progress reported is a logging artifact. The test app and plugin are slightly different though... I'll attach the source code, so that anyone can examine and/or experiment with it. It's easily compiled with Code::blocks (http://www.codeblocks.org/), in windows. A project file is included, so you only need to open it and press the compile button. I don't think it's likely that the file pointer and bytesWritten get out of sync. It's hard to explain why it works in some cases then... Actually, it appears like the test application runs perfectly fine - even when it fails! Windows returns an error on the last ReadFile call, but as far as I can see there's nothing wrong with the actual calls. Cd2iso works under most circumstances, but sometimes windows returns some kind of error. The error codes are quite strange, but I think they are all some kind of "read errors". Taking all this into consideration, the only explanation I can think of is that the cd2iso implementation makes the correct API calls and that the errors returned by ReadFile arise when Windows actually is unable to read from the CD/DVD. It is a little strange that this always happens at the end of the disc, but it can still be something that depends on Windows, the installed drivers, the CD drive and/or the disc used. My guess is that this mostly depends on the combination of the disc and drive. I surfed the web a bit to find out more about CD/DVD read errors and apparently low quality CD:s and/or "sensitive" CD drives sometimes cause read errors (similar to the ones we are dealing with here). The CD might work in another CD drive and another CD might work in the problematic CD drive. The combination can cause errors, though. Burning a CD at lower speed seems to make the CD easier to read and therefore decreses the risk of read errors (the discs expand and vibrate when they spin very fast). To change the drive and/or disc media could make things work too (as we have seen in the comments above)... It would be nice if we could find further evidence for this theory (or if someone could come up with another one, which would be good too). Your help, Juan Hernandez and davmor2, have been very valuable! The same goes for everyone else who have commented. One more thing that would be interesting to know is what would happen if davmor2 (or someone in his situation) tried to run cd2iso.exe with another CD in your cd-rw drive (the failing drive). Could you try that? Take a CD that you know are of really good quality (perhaps not a burned one). If we are able to conclude that this actually is the cause of all these cd2iso failures, then we could add something about that in the installation guide and perhaps make the error messages more helpful too, so that would be very useful - even if it wouldn't "solve" the problems completely. Comments are most welcome. More test data, so that we can make sure we actually know what is going on would also be very nice! I'm sorry about the length of the comment... Hope someone reads it anyway!