The Tao’s Revenge, you can’t remove a flash drive if you are currently exploring the folder using Windows Explorer, or if a file on that drive is open.
For example, say that you have Windows Explorer open to that device. If you open up Computer in another Windows Explorer and right-click on your removable drive, you will see the “Eject” option. However, if you try to eject that drive, it will tell you that it is in use (again, due to the first Windows Explorer you have open.)
Note: This behavior is different for CDs. That is, if you repeat the same process using a CD instead of a flash drive, it will actually close the other Windows Explorer window and will eject the CD. It might be different if the CD is writable (my DVD/CD drive is read-only).
If the device is not writable, then there is no harm in just closing the window and ejecting the CD. However, if you are in the middle of writing to the device, then if the system just closed the files and removed the flash drive, it could cause problems for any programs that were expecting that drive to be there.
No matter which course of action the programmers take, they are going to make 1/3 of the users unhappy. (One-third wants it one way, one-third wants it the other way, and one-third don’t understand the issue enough to have an opinion.)
Now, not all programmers are jackasses. Some of us are actually pretty good at what we do and in writing decent error messages. Back in the early 1990s, I inherited a major piece of software, and one of the first things I did was to go through and make sure the error messages were obvious. So, rather than showing “The file could not be opened”, the error message read, “Error 3 (File Permissions) encountered when opening C: emp\foo\bar.dat for reading. (JunkStuff.c, line 248)”.
The end user may or may not be able to do anything with that message, but if they called in to the help desk for our software, we could find and fix the problem. However, having decent error messages cut down on a lot of phone calls because the system admin on the other end had enough information to take corrective action.