Disk, Serial, and Parallel Port Entries

This section provides general information about the Description entries for adapters in the Hardware subtree. Then specific information is presented about the DeviceMap subkey entries for AtDisk and for serial and parallel ports. Finally, Services subkey entries for parallel and serial ports are described, including specific entries for multiport serial I/O cards.

Description Entries for Adapters

The following shows the path for all MultifunctionAdapter entries:


HKEY_LOCAL_MACHINE\HARDWARE\Description\System
\MultifunctionAdapter\0\ControllerName\0.

The entries in this portion of the Registry contain data discovered by the Hardware Recognizer (NTDETECT.COM) or provided from the ARC database that describes controllers for hard disks, display devices, the keyboard, pointing devices, and serial and parallel ports. Administrators cannot usefully modify entries in the Hardware subtree. This data is volatile (destroyed and recreated each time the system starts) and is useful only for informational purposes. You can use WinMSD to view this information in a more usable format.

Each subkey contains information in the following format:

Component Information REG_BINARY System-defined

Identifies version information plus other data for the associated subkey entry.

Configuration Data REG_UNKNOWN System-defined

Contains binary information related to the hardware component, such as I/O port addresses and IRQ number. This entry is not present if no such data is available for a particular subkey.

Identifier REG_SZ Device type name

Contains the name of a component, if specified.

The following samples from the MultifunctionAdapter subkeys describe a system that has a keyboard, a Microsoft InPort® bus mouse or Microsoft Mouse Port mouse, and a Microsoft serial mouse (on COM1), all connected to the ISA bus. This sample is for informational purposes only, since these subkeys are volatile and are therefore recreated each time you start Windows NT.

In the following example, the Identifier value specifies the keyboard type name, which is typically PCAT_ENHANCED to indicate a 101/102-key enhanced keyboard. The keyboard type name is mainly informational, since the actual keyboard type and subtype are retrieved from the keyboard-specific data in Configuration Data.


HKEY_LOCAL_MACHINE\HARDWARE\Description\System\MultifunctionAdapter
\0\KeyboardController\0\KeyboardPeripheral\0 Configuration Data : REG_UNKNOWN : Device data (keyboard type, subtype) Identifier : REG_SZ : PCAT_ENHANCED

The following two examples show typical Identifier values for two basic types of pointer devices. For the first example, the Identifier value for the pointer type name can also be MICROSOFT PS2 MOUSE (also known as the Mouse Port mouse) or MICROSOFT BUS MOUSE under this subkey:


HKEY_LOCAL_MACHINE\HARDWARE\Description\System\MultifunctionAdapter
\0\PointerController\0\PointerPeripheral\0 Identifier : REG_SZ : MICROSOFT INPORT MOUSE

This example shows a typical entry for a serial mouse, under this subkey:


HKEY_LOCAL_MACHINE\HARDWARE\Description\System\MultifunctionAdapter
\0\SerialController\0\PointerPeripheral\0 Identifier : REG_SZ : MICROSOFT SERIAL MOUSE

DeviceMap Subkey Entries for AtDisk

AtDisk is the driver for non-SCSI hard disk controllers on x86-based computers.

Note The Abiosdsk driver has no Hardware key and no parameters that users can set under CurrentControlSet\Services.

The following Registry path can contain subkeys named Controllerx, where x starts at 0 and increases:


HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap\AtDisk 

These Controllerx subkeys are created for each non-SCSI hard disk controller on the system. As with all hardware data, these subkeys are volatile and so are recreated each time you start the system.

Under the Controllerx subkeys are subkeys named Disky, where y starts at 0 (zero) and increases. These subkeys are created for each actual disk controlled by the particular controller.

Under the Disky subkeys are the following value entries, which can be extremely helpful in reporting disk problems:

Firmware revision REG_SZ Free format

Defined by the disk manufacturer to identify the version of the on-board code used to control the disk.

Identifier REG_SZ Free format

Defined by the disk manufacturer to identify the make and model of the disk.

Number of cylinders REG_DWORD A hex value

The number of cylinders on the drive.

Number of heads REG_DWORD A hex value

The number of heads on the drive.

Sectors per track REG_DWORD A hex value

The number of sectors that exist on a track. These are typically 512-byte sectors.

The standard entries for AtDisk under the CurrentControlSet\Services subkey are the following:

Value entry

Default value

ErrorControl

0 (startup halts)

Group

Primary disk

Start

0x0 (boot)

Tag

0x2

Type

0x1 (Kernel driver)


DeviceMap Subkey Entries for Serial and Parallel Ports

Remember that the entries in HKEY_LOCAL_MACHINE\HARDWARE are recreated each time the system is started. The entries in these subkeys are described here for informational purposes only.

ParallelX REG_SZ A string, typically LPTy


   HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\PARALLEL PORTS

Specifies that the Windows NT Parallel device X is the actual device for the MS-DOS name LPTy. These value entries are used to determine all the parallel ports available on the system.

SerialX REG_SZ A string, typically COMy


   HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap\Serialcomm

Specifies that the Windows NT Serial device X is the actual device for the MS-DOSMS-DOS name COMy. These value entries are used to determine all the communication ports available on the system.

Parallel Subkey Entries in the Services Subkey

The following subkeys and values can be found under the following subkey:


HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Parallel

Subkeys and values under the Parallel subkey can be used to configure parallel (printer) ports in addition to information that the Hardware Recognizer finds at system startup.

This can also be used to override values determined by the Hardware Recognizer. If the PortAddress value entry is the same as a system-detected port, this data in the current control set will be used instead of the data found by the system. Entries appear in the System log in Event Viewer if this is occurring.

The Parallel subkey contains a subkey named Parameters, under which is a set of subkeys typically named Parallelx where x is some whole number. A system administrator must place these subkeys and values into the Registry. There exists no tool other than Registry Editor to define and manipulate these values.

For example, under the Parallel2 subkey, the following value entries can appear.

The first two of these value entries are required. If the section does not include both, the port is not configured and an error appears in the System log in Event Viewer. If an entry is placed into the Registry with just these values, the port will be driven using polling algorithms.

DosDevices REG_SZ Free-form string

Specifies the name used to access the parallel port from the command prompt or from within an application. A typical value would be LPT3.

PortAddress REG_DWORD A hex value

Denotes the address of the first register of the parallel port. A typical PortAddress in this case would be 0x278.

The following values are optional:

DisablePort REG_DWORD 0 or 1

If the value is a 1, the device will be deleted after the port is reset during initialization. No access to the port will be allowed.

Default: 0

Interrupt REG_DWORD A hex value

Denotes the IRQ that the particular device would interrupt on. A typical Interrupt value in this case would be 0x5.

The standard entries for the Parallel subkey are the following:

Value entry

Default value

ErrorControl

0 (startup halts)

Group

Extended base

Start

0x2 (autoload)

Type

0x1 (Kernel device driver)


Serial Subkey Entries in the Services Subkey

The values for serial ports are under the following Registry path:


HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Serial

Subkeys and values under the CurrentControlSet\Services subkey can be used to configure serial ports in addition to information that the Hardware Recognizer finds at system startup. This can also be used to override values determined by the Hardware Recognizer. If the PortAddress value entry is the same as a system-detected port, this data in the current control set will be used instead of the data found by the system. Entries appear in the System log in Event Viewer if this is occurring.

The Serial subkey contains a subkey named Parameters, under which is a set of subkeys typically named SerialX where X is a whole number. A system administrator must place these subkeys and values into the Registry. You can only define and manipulate these values by using Registry Editor.

For example, under the Serial2 subkey, the following value entries can appear.

The first three of these value entries are required. If the subkey does not include all three, the port is not configured, and an error appears in the System log in Event Viewer.

DosDevices REG_SZ Free-form string

Specifies the name used to access the communication port from the command prompt or from within an application. A typical value would be COM3.

Interrupt REG_DWORD A hex value

Denotes the IRQ that the particular device would interrupt on. A typical Interrupt value in this case would be 0x4.

PortAddress REG_DWORD A hex value

Denotes the address of the first register of the serial device. A typical PortAddress in this case would be 0x3e8.

The following entry values are optional:

DisablePort REG_DWORD 0 or 1

If the value is 1, the device will be deleted after the port is reset during initialization. No access to the port will be allowed.

Default: 0

ForceFifoEnable REG_DWORD 0 or 1

If the value is 1 and the hardware supports a FIFO buffer (for example, the NS 16550AFN), the driver enables the FIFO. Not all FIFOs are reliable. If the application or the user notices lost data or no data transmission, it is recommended that this value be set to 0.

Default: 1

The standard entries for the Serial subkey are the following:

Value entry

Default value

ErrorControl

0 (startup halts)

Group

Extended base

Start

0x2 (autoload)

Type

0x1 (Kernel device driver)


Multiport Serial I/O Card Entries in the Services Subkey

In addition to controlling the standard serial ports included with most personal computers, the Microsoft serial driver can be used to control many dumb multiport serial cards. Dumb denotes that the control includes no onboard processor.

At least the following two additional value entries are used for each port on the multiport card. Each of these two entries must be included for each port of the multiport board under subkey entries in CurrentControlSet\Services:

InterruptStatus REG_DWORD A hex value

Denotes the address of the interrupt status register that indicates which port on the multiport card is actually requesting an interrupt. To determine the appropriate value, consult the manufacturer's installation guide.

PortIndex REG_DWORD A hex value

Denotes which port on the card this information is for. These values start at 1 and increase. Typically these would be the same as the values inscribed on the connector for the multiport.

Certain multiport boards, such as Digiboard non-MCA bus cards, use a different scheme to determine which port is interrupting. These boards should include the following value entry in the configuration data:

Indexed REG_DWORD Should be 1

Denotes that this board uses an indexed interrupt notification scheme as opposed to a bitmapped method. To determine whether this entry should be included, consult the board's manufacturer.

For detailed examples describing entries for four-port and eight-port communications boards, see "Controlling Multiport Serial I/O Cards" in Chapter 12, "Configuration Management and the Registry."