Microsoft KB Archive/102992

= REG: Device Driver Entries, PART 5 =

Article ID: 102992

Article Last Modified on 11/1/2006

-

APPLIES TO


 * Microsoft Windows NT Advanced 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.

