This section describes the entries for video device drivers under the DeviceMap subkey and under the CurrentControlSet\Services subkeys for specific video drivers.
The hardware device mapping for video is under the following subkey:
HKEY_LOCAL_MACHINE\Hardware\DeviceMap\Video
This information is volatile and is reconstructed at startup by the video port driver. It can change from startup to startup based on external factors, such as failure to initialize a video adapter or the addition of other video cards to the system.
This subkey contains the mappings from Windows NT logical video devices to the physical device they represent in the CurrentControlSet\Services subkey. This mapping allows the system to find the right display driver for the currently installed video device.
%device_object_name% REG_SZ Registry path for device
Indicates the first logical video device is the first physical adapter. For example, the following entry indicates that the first logical video device is the second physical XGA adapter:
Video\Device0 = \Registry\Machine\CurrentControlSet\Services\XGA\Device1
In this example, the value in dicates that the second logical video device is the first physical VGA adapter:
Video\Device1 = \Registry\Machine\CurrentControlSet\Serivces\Vga\Device0
These values point to entries in the Services subkey, as described in the next section.
The port driver portion of the video driver is hardware-independent and contains operating system-specific code. Therefore, the port driver, VIDEOPRT.SYS, can support one or more video devices. The Services\Videoprt subkey has no added parameters, and its standard entries are the following:
Value entry | Default value |
ErrorControl | 0x1 (Normal) |
Group | Video |
Start | 0x1 (system) |
Type | 0x1 (Kernel driver) |
The specific subkey for each video driver contains all the information required to initialize and program the device properly. If several adapters can be handled by a single driver, the subkeys Device1, Device2, and so on will contain information for the other devices. The Registry path looks like this, where VideoDriverName is the name of a specific video device driver:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\VideoDriverName\Device0
The VideoDriverName subkeys for drivers in Windows NT include the following. This is not an exhaustive list:
Ati
S3
Wdvga
ET4000
Trident
Xga
Jazzgxxx
Vga
For example, the following subkey contains information for the first logical device of type VGA:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Vga\Device0
The following values can be set in a video driver subkey.
DefaultSettings.BitsPerPel REG_DWORD Number of bits per pixel
Contains the number of colors for the mode requested by the user. For example, for the v7vram miniport, the following value yields a 256-color mode:
DefaultSettings.BitsPerPel = 8
DefaultSettings.Interlaced REG_DWORD 0 or 1
Determines whether the mode requested by the user is interlaced. For example, for the v7vram miniport:
DefaultSettings.Interlaced = 0x0 (FALSE)
DefaultSettings.VRefresh REG_DWORD Number Hz
Contains the refresh rate of the mode requested by the user. For example, for the et4000 miniport:
DefaultSettings.VRefresh = 72
DefaultSettings.XResolution REG_DWORD Number of pixels
Contains the width of the mode requested by the user. For example, for the et4000 miniport:
DefaultSettings.Xresolution = 1024
DefaultSettings.YResolution REG_DWORD Number of pixels
Contains the height of the mode requested by the user. For example, for the et4000 miniport:
DefaultSettings.Yresolution = 768
DeviceData REG_BINARY Binary code
Contains binary data specific to the Windows display driver. For example, for the VGA miniport:
DeviceData = 05a0 5075 8ef0 8456 c8dd
InstalledDisplayDrivers REG_MULTI_SZ Driver names
Contains a list of names of display drivers that can function with this miniport, depending on which mode is selected by the user.
Note Display driver names do not contain the .DLL filename extension.
The system attempts to initialize the adapter by calling each display driver, using the user-selected parameter. If the combination of display driver and monitor do not support the mode requested by the user, the display driver fails to initialize and the system tries the next display driver. If all display drivers fail to initialize, the system calls the first display driver again to set the adapter to any mode it can.
For example, for the et4000 miniport:
InstalledDisplayDrivers = "vga" "vga256" "vga64k"
For the S3 miniport:
InstalledDisplayDrivers = "s3"
Monitor REG_SZ Monitor name
This entry is reserved to contain the name of the VESA VDIF monitor information file for the monitor connected to the adapter. No such files are provided with Windows NT in the current version.
If a file is supplied and a value is added, the miniport can load this file to determine the exact timings of the monitor connected to the physical device.
For example, for the XGA miniport, if a NEC4FS monitor was attached to the XGA card:
Monitor = "NEC4fg.vdb"
VgaCompatible REG_DWORD 0 or 1
Determines whether the driver supports all of the VGA functionality required to perform full-screen operations.
If this value is 1, the driver supports full-screen applications in x86-based computers. If this value is 0, the VGA miniport (described under the Vga subkey) will also be used to enable and disable full-screen modes for non-Windows-based applications.
As a general rule, all drivers for SVGA adapters should set this value to 1, because they must implement all the VGA functionality to perform extended save/restore of all registers. A video accelerator designed as an accelerator working independently of the VGA miniport (via pass-through) can set this to 0 and let the VGA miniport do all the full-screen work.
For example, for the et4000 miniport:
VgaCompatible = 0x1 (TRUE)
For the S3 miniport:
VgaCompatible = 0x0 (FALSE)
This functionality is not required for other computer platforms, such as RISC-based computers, because the VDM sessions are emulated using NTVDM.EXE, and there are no full-screen sessions.
The optional entries for open graphics libraries (OpenGL) are under the following subkey:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT
\CurrentVersion\OpenGLDrivers
%display_driver_name% REG_SZ %OpenGL_client_driver_name%
For example, suppose that MYOPENGL.DLL is the OpenGL client driver for the display driver MYDISP.DLL. Then the OpenGLDrivers subkey would have the value-data pair:
mydisp: REG_SZ: myopengl
The subkey may be empty if no OpenGL client drivers are installed. This value can be changed via the Control Panel Display option. Manual modification should not be necessary except for manual installation or uninstallation of OpenGL client drivers (which is different from the OpenGL built into the GDI). Only one client driver is allowed for each unique display driver name.