Quote:
Originally posted by ultracross nice peice of history and knowlegde you put together for us! but i always thought drivers run in special memory areas that are locked until it crashes, then windows just cleans/dumps that memory allocation and restarts the driver? |
In the Windows NT/2000/XP/2k3 system terminology, "driver" is used to describe a bunch of different types of software components. However, network interface card (NIC) drivers typically run in kernel mode. See the "Network Drivers" section of
http://www.windowsitlibrary.com/Content/280/01/3.html
Some drivers are user mode dlls. For instance, see the "low-level audio drivers" section of
http://www.windowsitlibrary.com/Content/280/01/4.html Note, that in the section right below that, titled "Kernel-mode device drivers", the lowest-level audio device drivers still run in kernel mode.
In microkernel operating systems, typically the lowest level device drivers are in user space. The kernel usually maps the device's hardware registers into the driver's address space so that the driver can efficiently talk to the hardware without further kernel assistance.
Some people call the Windows NT architecture (WinXP is NT 5.1, Win2k3 is NT 5.2) a "modified microkernel". I guess that's because some of the subsystems were originally designed to run in user mode and are now running in kernel mode (for instance, the graphics device interface, or GDI).