The compatibility constraints of error codes, episode 2
A customer reported an incompatibility in Windows 7: If A: is a floppy drive and they call
LoadLibrary("A:\\foo.dll") and there is no disk in the drive, the
LoadLibrary call fails with the error
ERROR_NOT_READY. Previous versions of Windows failed with the error
Both error codes are reasonable responses to the situation. “The module couldn’t be found because the drive is not ready.” Programs should treat a failed
LoadLibrary as a failed library load and shouldn’t be sensitive to the precise reason for the error. (They can display a more specific error to the user based on the error code, but overall program logic shouldn’t depend on the error code.)
Fortunately, the customer discovered this discrepancy during their pre-release testing and were able to accommodate this change in their program before ever releasing it. A sigh of relief from the application compatibility team.