REG: Device Driver Entries, PART 5 (102992)



The information in this article applies to:

  • Microsoft Windows NT Server 3.1
  • Microsoft Windows NT Workstation 3.1
  • Microsoft Windows NT Advanced Server 3.1

This article was previously published under Q102992

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.

REFERENCES

The Windows NT Resource Kit for Operating System Version 3.1.

Modification Type:MinorLast Reviewed:1/30/2006
Keywords:kbother KB102992