ABSTRACT

Introduction to 16-bit Driver DLLs Why Driver DLLs are Always 16-bit Back in the days of Windows 3.x, Microsoft recommended that developers package all hardware drivers as VxDs, the “true” device drivers for Windows. However, many developers — including Microsoft itself — ignored this advice and instead put driver functions into DLLs. After all, the learning curve for VxDs was very steep, and a driver packaged as a DLL could do the job adequately. (Notable exceptions were driv­ ers, like those for the serial port, that required very fast interrupt response times.)

Today, Microsoft recommends that developers for Windows 95 package hardware drivers as VxDs. This time, however, the recommendation is much more difficult to ignore, because Win32 DLLs are forbidden from performing most “driver” type oper­ ations. The list of prohibited operations includes • accessing memory-mapped hardware, • performing DMA transfers, • handling hardware interrupts, and • issuing software interrupts.