What has been said about devicemakers and their relationship to Windows is not true. Here is the truth:
1) Windows makes a device architecture and HAS TO CODE THE FIRST DOZEN DEVICE DRIVERS to test the architecture
2) MFRs download a driver kit with those sample drivers and have several meetings and support calls and emails with Microsoft to perfect the drivers
a) Somewhere in this process the MFR produces buggy code that MS and Customer have to discover the hard way
A good example is Windows 3.0 and 3.1 crashed constantly because of bad drivers from the MFR. If I wanted Win 3.0 and 3.1 to behave I switched to the plain vanilla VGA driver MS made even on higher end graphic cards because of MFR bugs (leaks, etc.)
b) The MFR blames MS for their coder's coding mistakes and MS tries to study their code using expensive engineers and hlep them find out what they did wrbng
c) MS revised their kits to offer regression tests and static and runtime code analyzers to track down MFR bugs due to poor coding (usually a year or 2 later) and produces better reference drivers
3) MFRs have to
a) basically hand off drivers to Microsoft or
b) place on their own site
c) and that involves bureaucracy on either side. Engineers inside the company often produce less buggy drivers but the MFR may cut off unding for older devices or not take the bugs seriously and may introduce delays in getting better fixed drivers on the site or to update.Microsoft.com
4) In some cases like mouse or Display Cards other drivers more and more of the code gets done by MS and less by the MFR to reduce risk of bugs. Device driver code shrinks, hared/boilerplate code in the SDK shared by all vendors grow.
5) Drivers may get rewritten based on the improved SDKs to fix customer bugs but it depends on politics and budget see 3)a) 3)b) 3)c)
6) MS rejects drivers for update,microsoft.com for reasons 2)c) because drivers are buggy. Many vendors put on their site anyway and blame MS when driver is buggy.
7) MS produces new SDK to address the various things that arose or XP or Vista or Win7 or Win8 or WinServer editions or WinTablet
8) Rinse and repeat the whole process except MFRS may not want to update all old devices to run on new OS and may leave bugs in old drivers and let everyone blame MS and Windows despite the existence of 2)c)
It is a vendor + OS MFR process. Never just one or other.
That is weird. The device makers should make the software!! Not the software makers who haven idea about what the hardware can do or it's design!!