DIBENG.DLL does exactly the same thing, but takes the idea one step further by making the video framebuffer itself a memory bitmap, optionally using the VFlatD VxD to present a bank-switched graphics card as a linear framebuffer. The WinG DIB Engine was designed to draw to memory bitmaps using GDI.
I do not know the exact timeline and history. The DIB Engine in Windows 95 (DIBENG.DLL) is very similar to the DIB Engine that Microsoft released in September 1994 as part of WinG (WINGDE.DLL). The minidriver can implement what it can do better than the DIB Engine, but doesn’t have to. The minidriver has to set modes and implement various housekeeping tasks, but all drawing can be handled by the DIB Engine. The difference is that Windows 95 introduced the “DIB Engine”, a large library that implements more or less all of GDI and that the display driver can “punt” to.
#WINDOWS 3.1 DOWNLOAD FOR VIRTUALBOX DRIVERS#
Windows 9x drivers still have to do all that. To give some sense of the complexity, the Windows 3.1 DDK sample driver for Video 7 cards is about 1.6 MB (circa 60,000 lines) of assembler source code. There is a lot of cases to handle and a great deal of complexity. So what makes it a “minidriver”? A Windows 2.x/3.x display driver has to implement a very significant chunk of GDI. The Windows 9x display driver has much more in common with Windows 3.1 (and 3.0 and 2.x) drivers, and it has clearly directly evolved from those older drivers. The Windows 9x display driver model is completely different and has nothing in common with NT. I’d like to say that it was easy to adapt the existing Windows NT video miniport driver for Windows 9x… but of course it wasn’t.