SUMMARY
Windows NT video display drivers are implemented in three parts: the
port driver, the Miniport driver, and the display driver. The
following sections provide information on these modules.
Port Driver
The port driver is a hardware independent driver that communicates
with the Windows NT IO Manager and the Miniport driver. Only one port
driver is needed because it contains no video adapter specific
information. The port driver does the following:
- At the direction of IO Manager, the port driver initializes the
Miniport driver.
- It handles the synchronization of multithreaded requests, ensuring
each single-thread Miniport driver receives requests in the proper
order.
- It handles many higher level video driver functions, such as video
memory mapping and initializing the video for virtual MS-DOS
machines (VDMs).
Port driver information is stored in the following subkey in the
Registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Videoprt
Miniport Driver
The Miniport driver communicates directly with the video adapter and
contains video adapter specific information. There is a different
Miniport driver for every video adapter, but because the port driver
handles much of the higher-level functionality of the video display
and the Miniport driver need only provide an interface to the port
driver, Miniport drivers are very small. The Miniport driver handles
mode switching, interrupt requests, and I/O control codes (IOCTLs) not
processed by the port driver.
Display Driver
The display driver operates in user mode and communicates between the
IO Manager and the Windows NT graphical device interface (GDI) and
device driver interface (DDI). The display driver is a portion of the
Win32 subsystem, and like the port driver, knows nothing about the
video adapter hardware. It does, however, have the ability to request
such information if needed by an application.