i was a commercial games programmer for both dos and windows during that era - i went to the first few years worth of directx conventions / developer days (when alex st.john was still the microsoft games-dev / dx evangelist, and kate-thingumy-bob was head(?) of the directx dev team - and well before the dx api was called / rebranded as 'directx')
don't underestimate the gp poster's claim...!
it was publicly stated (ok, maybe not publicly, but to rooms full of games devs) by microsoft a number of times that directx was designed because games programmers (like us) refused to program any games in windows 95 (using the sucky dib apis) -- microsoft knew that if they couldn't get games onto- and games programmers into- their win95 platform then their new 'multimedia' os wouldn't be able to take over the desktop in the way they intended it too. yes, this is pretty much what they said to us. really.
back then to play games people would boot to dos (or, heh, just quit windows 95 - cos it just ran on top of dos of course! ;) even if the game did have a native win95 port/version (originally quite rare), and people still did this even though it was possible to run some dos games whilst still running win95 - because performance sucked if you ran stuff in a dos window in win95, and you'd sometimes/often run into problems as a programmer when hitting the hardware direct (for sound/video) when windows was still running.
microsoft didn't want any of this users-running-dos lark, they were trying to kill dos and push their new whoop-de-doo multimedia 'rewrite' of win3/311, so they needed to address this problem. they said so themselves, repeatedly. i can't provide a citation, but i was there, and heard it myself from a lot of fairly high up microsoft developers/staff, often in (semi)public forums / seminars.
i'm sure someone will correct me if i'm wrong, but the games-developer api / directx wasn't even part of the initial release of win95, it was a late addition and featured in a later in a release of win95 commonly known as win95 osr2 (which also bundled ie4 - but that's another sorry story)
sure, i agree that dx (kind of) solved the problem of providing a common api to your hardware (and by enumerating your hardware devices, etc) but none of this was really the driving force behind dx, it was just how they had to implement it given the situation. it's just how any coder would go about it. although the early releases weren't as helpful / useful as they were meant to be.
fwiw, their common api was pretty shitty up until dx3 or 5 (there was no dx4, it got ditched - i might be wrong, and it's aside to the main topic anyhow, but i think dx4 was due to be the release that included the joint project with sgi, to unite the opengl and directx 3d drivers/apis, although this potentially wonderous event never occurred - shame, because even back then we were rooting for opengl :) -- before the time of dx3/5(~ish) microsoft didn't always even provide software fallback implementations of missing-in-hardware-but-still-fairly-simple-in-software functionality in the dx software api implementation, /despite/ all the docs often implying that things should be otherwise (x/y flip when blitting comes to mind, but there were other things too) -- when they _did_ bother to provide such fallback functionality, it often performed so poorly you were better off using you own implementation straight to the frame buffer anyhow (which you already had laying around from the dos games, so no big deal for the games programmer of that era).
of course before directx the game-devs already had libraries for supporting all the popular audio and video hardware - they'd either developed them themselves in-house or used an external library to provide that functionality (i forget the names of the ones we used - but if someone reminded me i'd know them). it wasn't really anything new - and because of the spotty dx fallback support we couldn't throw a big chunk of that code away for a number of years anyhow. early dx sucked - more than people outside of game development could really imagine :(
this all happened around about the same time as when all the game-devs were using the watcom compiler because microsoft's own compiler just didn't produce as optimal code (in fact watcom absolutely trounced microsoft in this area for some years) - microsoft's response to this was to work with certain games-dev houses to find out particularly which things in their c compiler emitted sub-optimal code (compared to watcom's) and to get these things fixed fairly pronto - this, in turn, was partly the cause of the demise of watcom's compiler (i guess another reason being that watcom couldn't keep up with the windows api, and changes to it - watcom provided their own set of windows header files for their compiler, which were often problematic and must've been a nightmare to maintain)
they were both interesting times and tough times! :)
on and off during that period we worked with various members of the dx team to help address some of these dx / dx-driver issues, and microsoft would often offer our various team members jobs because they needed more of these skills in-house (they were new to games development, almost in the same way that sony were just a bit later with the launch of psx)
but don't believe the hype - microsoft were definitely trying to embrace-and-extend all the dos-based games development technologies, putting an end to various providers of dos games-developer-oriented libraries/technologies/apis (including, as i mention, helping to put some final nails into watcom's coffin along the way) so that their new baby, win95, would be a success as a 'multimedia' os - because until their games-developer-toolkit / directx came along, you simply couldn't write any decent kind of action game on the windows platform, it just truly sucked.
....and that's how it was in the early 90s game-dev trenches! (now: get off my lawn! ;)
(oh, sorry - maybe you have your own lawn? -- i see you have a 5 digit uid also! hehe)