Bill, I can understand why you would make a change in the code to fix
a bug or flaw in how the code works, something Microsoft have rarely done - they usually just patch it. However, there is NO reason to change the commands from the IS to the hardware about the actions the hardware take, in fact, there is NO valid reason to have the commands as anything but the international industry standards - yet Microsoft do NOT use the international industry standards, and haven't for almost two decades. Microsoft also change them now on then on a whim - which is why you need different hardware drivers for a device for Win 9x to Win XP to Win 7 / 8. It is these changes that causes almost all the incompatibility issues with programs.
edit to add - other changes include the way programs interact with the OS as well -and wouldn't be an issue if MS used the standard command sets and procedures.