SUMMARY
The article contains REGISTRY entries for Sound Card and Video Drivers.
These subgroups are included:
- Sound Card Drivers
- Video Device Driver
- Video Information in the DeviceMap Subkey
- Video Device Entries in the Services Subkey
There are 5 parts to the Device Driver Entries article series:
Part 1: Device Driver Entries, containing:
- File System Drivers and Recognizers
- Disk, Serial and Parallel Ports
Part 2: Mouse and Keyboard Entries, containing:
- Microsoft Bus Mouse Port Driver
- Intel 8042 Port Driver
- Microsoft InPort Bus Mouse Port Driver
Part 3: Mouse and Keyboard Entries, cont'd, containing:
- Microsoft Serial Mouse Port Driver
- Mouse Class Driver
- Keyboard Class Driver
- Device Map Entries for the Keyboard and Mouse
Part 4: SCSI Miniport Entries
Part 5: Sound Card and Video Device Driver Entries
--------------------------------------------------------------
Note You can view current settings for these device drivers by choosing
the Devices button in WinMSD.
Sound Card Driver Entries
Usually, sound drivers consist of two parts: a front-end for installation
and request processing, consisting of files such as SNDBLST.DLL or
SYNTH.DLL; and a kernel driver for communicating with the hardware,
consisting of files such as SNDBLST.SYS or SYNTH.SYS.
There is also a helper driver named MMDRV.DLL that transforms most low-
level calls to Wave, MIDI, and AUX devices into calls to kernel mode
drivers.
These are the installable sound kernel drivers for Windows NT:
Sound Driver Comment
MIPSSND.SYS MIPS ARCSystem 100/150 built-in sound
MVAUDIO.SYS Media Vision Pro Audio Spectrum 16
and Pro Studio 16
MVOPL3.SYS Synthesizer driver for Media Vision
Pro Audio Spectrum 16 and Pro Studio 16
SNDBLST.SYS SoundBlaster 1.5 and compatibles
SNDSYS.SYS Windows sound system and Compaq
Business Audio
SYNTH.SYS Ad Lib and OPL3 MIDI synthesizer driver
For each installed sound driver, several parameters are stored in the
Registry, based on choices made by using the Drivers icon in Control Panel.
The following shows the Registry path for sound system driver entries:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\SoundDriverName\Parameters
The actual key name in the Registry is the same as the filename of the
related kernel driver. For example, for SNDBLST.SYS, the key name is
Sndblst.
Some drivers can write over the values they receive on the basis of
information read from the hardware. The following shows some typical values
found in the Parameters subkey for sound cards:
Configuration Error REG_DWORD 0, 1, 2, 3, or 4
Specifies an error that occurred during install. This value is only
relevant if the driver fails to load. (Not all drivers write this
information into the Registry.)
Value Meaning
0 Nonspecific error
1 Hardware not found (usually the wrong
I/O port was assumed)
2 Specified interrupt was incorrect or
did not work
3 Specified DMA channel was incorrect or
did not work
4 Hardware is present but not working
DmaChannel REG_DWORD
Defines the DMA channel settings for transferring digitized sound.
Default: Depends on the sound card-not user-configurable.
Interrupt REG_DWORD Interrupt number
Defines the interrupt number used by the hardware.
Default: 0xa (configured for Interrupt 10)
LeftLineInAtten REG_DWORD Number
Specifies the current volume level of the left channel of the line-in
input.
Port REG_DWORD Address
Defines the I/O port start address used to communicate with the hardware.
Default: 0x220 for SNDBLST.SYS
RightLineInAtten REG_DWORD Number
Specifies the current volume level of the right channel of the line-in
input.
Video Device Driver Entries
This section describes the entries for video device drivers under the
DeviceMap subkey and under the CurrentControlSet\Services subkeys for
specific video drivers.
Video Information in the DeviceMap Subkey
-----------------------------------------
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 indicates that the second logical video device
is the first physical VGA adapter:
Video\Device1 = \Registry\Machine\CurrentControlSet\Services\Vga\Device0
These values point to entries in the Services subkey, as described in the
next section.
Video Driver Entries in the Services Subkey
-------------------------------------------
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:
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
ET4000
Jazzgxxx
S3
Trident
Vga
Wdvga
Xga
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 applications.
As a 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.
None of the DefaultSettings.xxx values should be read by the miniport
directly -that is, using VideoPortGetRegistry() parameters. All the
DefaultSettings.xxx values are only to be read by the window manager and
are passed in a DEVMODE structure to the display driver. It is up to the
Windows display driver to match these settings with the modes returned by
the miniport driver.