Mouse and Keyboard Driver Entries

Parameters in this section are for the mouse and keyboard class and port drivers, including these drivers:

Busmouse
Inport
Mouclass
i8042prt
Kbdclass
Sermouse

Microsoft Bus Mouse Port Driver Entries

The following value entries for the Microsoft bus mouse are found in this subkey:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Busmouse\Parameters

MouseDataQueueSize REG_DWORD >= 0x1

Specifies the number of mouse events to be buffered internally by the driver, in nonpaged pool. The allocated size, in bytes, of the internal buffer is this value times the size of the MOUSE_INPUT_DATA structure (defined in NTDDMOU.H). Consider increasing the size if the System log in Event Viewer frequently contains this message from the Busmouse source: "The ring buffer that stores incoming mouse data has overflowed (buffer size is configurable via the Registry)."

Default: 0x64 (100)

NumberOfButtons REG_DWORD >= 0x1

Specifies the number of buttons on the bus mouse. If the number of buttons detected at startup time and placed in the Registry is incorrect, this value can be used to override it.

Default: 0x2 (two buttons)

PointerDeviceBaseName REG_SZ Base port device name

Specifies the base name for the device object(s) created by the bus mouse port device driver. The device driver also writes information about the device objects into HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap so that the pointer class driver can locate the pointer port device objects.

Default: PointerPort

SampleRate REG_DWORD Mouse sample rate in Hz

Specifies the sample rate for the bus mouse. Intended for future use. This value might have no effect in the first release of Windows NT.

Default: 0x32 (50 Hz)

Intel 8042 Port Driver Entries

The i8042prt driver handles the keyboard and mouse port mouse (also known as a PS/2-compatible mouse) for the Intel 8042 controller. These value entries are found in the following subkey:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

KeyboardDataQueueSize REG_DWORD >= 0x1

Specifies the number of keyboard events to be buffered internally by the driver, in nonpaged pool. The allocated size, in bytes, of the internal buffer is this value times the size of the KEYBOARD_INPUT_DATA structure (defined in NTDDKBD.H). Consider increasing the size if the System log in Event Viewer contains the following message from the i8042prt source: "The ring buffer that stores incoming keyboard data has overflowed (buffer size is configurable via the Registry)."

Default: 0x64 (100)

KeyboardDeviceBaseName REG_SZ Base keyboard port device name

Specifies the base name for the keyboard device object(s) created by the i8042prt device driver. The device driver also writes information about the device objects into HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap so that the keyboard class driver can locate the keyboard port device objects.

Default: KeyboardPort

MouseDataQueueSize REG_DWORD >= 0x1

Specifies the number of mouse events to be buffered internally by the driver, in nonpaged pool. Consider increasing the size if the System log in Event Viewer contains the following message from the i8042prt source: "The ring buffer that stores incoming mouse data has overflowed (buffer size is configurable via the Registry)."

Default: 0x64 (100)

MouseResolution REG_DWORD Mouse resolution specifier

Used in specifying the mouse port mouse resolution, where 2 to the power of MouseResolution specifies counts-per-millimeter.

Default: 0x3

MouseSynchIn100ns REG_DWORD Time, in 100 nanosecond units

Specifies the length of time after which the next mouse interrupt is assumed to indicate the start of a new mouse packet (partial packets are discarded). This allows the driver to synchronize its internal notion of the mouse packet state with the hardware state, in the event that a mouse interrupt has been lost. Consider modifying this value if the system behaves as if there are random mouse events occurring (for example, button clicks when no mouse button has been pressed).

Default: 10000000 (1 second)

NumberOfButtons REG_DWORD >= 0x1

Specifies the number of buttons on the mouse port mouse. If an incorrect number of buttons is detected at startup time and placed in the Registry, this value can be used to override it.

Default: 0x2

PointerDeviceBaseName REG_SZ Base mouse port device name

Specifies the base name for the pointer device object(s) created by the mouse port mouse driver. The device driver also writes information about the device object into HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap so that the pointer class driver can locate the pointer port device objects.

Default: PointerPort

PollStatusIterations REG_DWORD Number

Specifies the maximum number of times to check the i8042 controller status register for interrupt verification before dismissing the interrupt as spurious. This value can be used to work around a problem experienced on some hardware (including the Olivetti MIPS computers) where the keyboard interrupt is raised before the Output Buffer Full bit is set in the i8042 status register.

Increase this value if the system seems to suddenly stop taking keyboard interrupts. This can happen if a keyboard interrupt is mistakenly dismissed as spurious, when instead it just took too long to set Output Buffer Full after raising the interrupt. Increasing the value of PollStatusIterations results in a longer execution time for the Interrupt Service Routine if the keyboard interrupt truly is spurious (there is a 1 microsecond delay following each check for Output Buffer Full).

To determine whether the driver is taking keyboard interrupts, press the NumLock key. If the NumLock light on the keyboard turns on or off, this indicates that the i8042prt driver handled the keyboard interrupt correctly.

Default: 1

OverrideKeyboardType REG_DWORD >= 0x0

This entry is not usually present. When present, it specifies the keyboard type (overriding the keyboard type detected during system initialization). Add this value entry if the detected keyboard type is incorrect in the Registry. Type values 0x2 and 0x4 indicate an enhanced 101-key or 102-key keyboard, or compatible; other values typically indicate an old-style AT keyboard (83, 84, or 86 keys), or compatible.

Default: 0x4 (Enhanced 101-key or 102-key keyboard)

OverrideKeyboardSubtype REG_DWORD >= 0x0

This entry is not usually present. When present, it specifies the OEM-dependent keyboard subtype (overriding the keyboard subtype detected during system initialization).

Default: 0x0

PollingIterations REG_DWORD >= 0x400

Specifies the standard number of times to poll the hardware (in polling mode) before giving up and timing out the operation. Consider increasing this value if the driver fails to initialize or work correctly and the System log in Event Viewer contains the following message from the i8042prt source: "The operation on ... timed out (time out is configurable via the Registry)."

Default: 0x400

PollingIterationsMaximum REG_DWORD >= 0x400

Specifies the maximum number of times to poll the hardware (in polling mode) before giving up and timing out the operation. This value is used instead of PollingIterations when an old-style AT keyboard is detected (see OverrideKeyboardType).

Consider increasing this value if the driver fails to initialize or work correctly and the System log in Event Viewer contains the following message from the i8042prt source: "The operation on ... timed out (time out is configurable via the Registry)."

Default: 0x2EE0

ResendIterations REG_DWORD >= 0x1

Specifies the maximum number of times a hardware operation will be retried before timing out. Consider increasing this value if the driver fails to initialize or work correctly and the System log in Event Viewer contains the following message from the i8042prt source: "Exceeded the allowable number of retries (configurable via the Registry) on device ..."

Default: 0x3

SampleRate REG_DWORD Mouse sample rate in Hz

Specifies the sample rate for the mouse. Intended for future use. This value might have no effect in the first release of Windows NT.

Default: 0x3C (60 Hz)

Microsoft InPort Bus Mouse Port Driver Entries

The value entries for the Microsoft InPort bus mouse are found in the following subkey:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Inport\Parameters

HzMode REG_DWORD Mouse sample rate mode specifier

Specifies the value written to the Microsoft InPort mode register to set the mouse sample rate. Might be used in the first release of Windows NT, but should become obsolete.

Default: 0x2 (selects 50 Hz)

MouseDataQueueSize REG_DWORD >= 0x1

Specifies the number of mouse events to be buffered internally by the driver, in nonpaged pool. The allocated size, in bytes, of the internal buffer is this value times the size of the MOUSE_INPUT_DATA structure (defined in NTDDMOU.H). Consider increasing the size if the System log in Event Viewer contains the following message from the InPort source: "The ring buffer that stores incoming mouse data has overflowed (buffer size is configurable via the Registry)."

Default: 0x64 (100)

NumberOfButtons REG_DWORD >= 0x1

Specifies the number of buttons on the Microsoft InPort bus mouse. If the number of buttons detected at startup time and placed in the Registry is incorrect, this value can be used to override it.

Default: 0x2

PointerDeviceBaseName REG_SZ Base port device name

Specifies the base name for the device object(s) created by the Microsoft InPort bus mouse device driver. The device driver also writes information about the device objects into HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap so that the pointer class driver can locate the pointer port device objects.

Default: PointerPort

SampleRate REG_DWORD Mouse sample rate in Hz

Specifies the sample rate for the Microsoft InPort bus mouse. Intended for future use. This value might have no effect in the first release of Windows NT.

Default: 0x32 (50 Hz)

Microsoft Serial Mouse Port Driver Entries

The value entries for the Microsoft serial mouse are found in the following subkey:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Sermouse\Parameters

MouseDataQueueSize REG_DWORD >= 0x1

Specifies the number of mouse events to be buffered internally by the driver, in nonpaged pool. The allocated size, in bytes, of the internal buffer is this value times the size of the MOUSE_INPUT_DATA structure (defined in NTDDMOU.H). Consider increasing the size if the System log in Event Viewer contains the following message from the Sermouse source: "The ring buffer that stores incoming mouse data has overflowed (buffer size is configurable via the Registry)."

Default: 0x64 (100)

NumberOfButtons REG_DWORD >= 0x1

Specifies the number of buttons on the serial mouse. If the number of buttons detected at startup time and placed in the Registry is incorrect, this value can be used to override it.

Default: 0x2

OverrideHardwareBitstring REG_DWORD 0x1 or 0x2

This entry is not usually present. When present, it specifies that regardless of whether it was actually detected, a serial mouse is present on the system. Add this value to tell the driver to assume the serial mouse is on COM1 (specified by the value 0x1) or COM2 (specified by the value 0x2). This entry is useful if the serial mouse has not been automatically detected.

PointerDeviceBaseName REG_SZ Base port device name

Specifies the base name for the device object(s) created by the serial mouse device driver. The device driver also writes information about the device objects into HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap so that the pointer class driver can locate the pointer port device objects.

Default: PointerPort

SampleRate REG_DWORD Mouse sample rate in Hz

Specifies the sample rate for the serial mouse. Intended for future use. This value might have no effect in the first release of Windows NT.

Default: 0x28 (1200 baud)

Mouse Class Driver Entries

The value entries for the mouse class driver are found in the following subkey:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Mouclass\Parameters

ConnectMultiplePorts REG_DWORD 0x0 or 0x1

Specifies the type of connection between class and port device objects. This parameter is mainly of interest to device driver writers.

The value 0x0 specifies a 1:1 relationship between class device objects and port device objects. (That is, one class device object is created by the driver and connected to one port device object; the maximum number of objects created and connected to an associated port object is determined by the value of MaximumPortsServiced.) The value 0x1 specifies a 1:many relationship between a single class device object and multiple port device objects. (That is, one class device object is created by the driver and then connected to multiple port device objects, up to a maximum specified by MaximumPortsServiced.)

Default: 0x1 (The events generated by up to the MaximumPortsServiced number of pointing devices on the system will all be fed to the Windows subsystem in a single input stream.)

MaximumPortsServiced REG_DWORD >= 0x1

Specifies the number of port devices the mouse class device driver will connect to and service. The class device driver handles hardware-independent operations on a specific class of devices (in this case, the mouse and other pointing devices). The port drivers manage the hardware-specific operations.

Default: 0x3 (The class driver will service up to three pointing devices.)

MouseDataQueueSize REG_DWORD >= 0x1

Specifies the number of mouse events to be buffered internally by the driver, in nonpaged pool. The allocated size, in bytes, of the internal buffer is this value times the size of the MOUSE_INPUT_DATA structure (defined in NTDDMOU.H). Consider increasing the size if the System log in Event Viewer frequently contains the following message from the Mouclass source: "The ring buffer that stores incoming mouse data has overflowed (buffer size is configurable via the Registry)."

Default: 0x64 (100)

PointerDeviceBaseName REG_SZ Base class device name

Specifies the base name for the device object(s) created by the mouse class device driver. The device driver also writes information about the device object into HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap so that the pointer class device object(s) can be easily located.

Default: PointerClass

Keyboard Class Driver Entries

The value entries for the keyboard class driver are found in the following subkey:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kbdclass\Parameters

ConnectMultiplePorts REG_DWORD 0x0 or 0x1

Specifies the type of connection between class and port device objects. This parameter is mainly of interest to device driver writers.

The value 0x0 specifies a 1:1 relationship between class device objects and port device objects. (That is, one class device object is created by the driver and connected to one port device object; the maximum number of objects created and connected to an associated port object is determined by the value of MaximumPortsServiced.) The value 0x1 specifies a 1:many relationship between a single class device object and multiple port device objects (That is, one class device object is created by the driver and then connected to multiple port device objects, up to a maximum specified by MaximumPortsServiced.)

Default: 0x0 (The events generated by up to the MaximumPortsServiced number of keyboard devices on the system will feed separate input streams. In the first release of Windows NT, the Windows subsystem only reads from a single keyboard input stream.)

KeyboardDataQueueSize REG_DWORD >= 0x1

Specifies the number of keyboard events to be buffered internally by the driver, in nonpaged pool. The allocated size, in bytes, of the internal buffer is this value times the size of the KEYBOARD_INPUT_DATA structure (defined in NTDDKBD.H). Consider increasing the size if the System log in Event Viewer contains the following message from the Kbdclass source: "The ring buffer that stores incoming keyboard data has overflowed (buffer size is configurable via the Registry)."

Default: 0x64 (100)

KeyboardDeviceBaseName REG_SZ Base class device name

Specifies the base name for the keyboard device object(s) created by the keyboard class device driver. The device driver also writes information about the device objects into HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap so that the keyboard class device objects are easily located.

Default: KeyboardClass

MaximumPortsServiced REG_DWORD >= 0x1

Specifies the number of port devices the keyboard class device driver will connect to and service. The class device driver handles hardware-independent operations on a specific class of devices (in this case, keyboard devices). The port drivers manage the hardware-specific operations.

Default: 0x3 (The class driver will service up to three keyboard devices.)

DeviceMap Entries for the Keyboard and Mouse

The following DeviceMap descriptions are for informational purposes only, since the DeviceMap subkeys are volatile and are recreated each time you start Windows NT. Administrators cannot modify DeviceMap entries.

These DeviceMap entries are used by the Windows subsystem to locate the pointer and keyboard class devices, and by the pointer and keyboard class drivers to locate the associated pointer and keyboard port devices. Information is placed in the DeviceMap subkey by the keyboard and pointer class and port drivers.

The format for each of these entries is the following:

Name of class device object : REG_SZ : Registry path to driver's Services

The keyboard class information appears in the following Registry path:


HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap\KeyboardClass

There can be one or more of these entries. Each entry specifies the name of a device object created by the keyboard class driver to represent the class device, followed by the Registry path to the driver's Services subkey.

Default:


\Device\KeyboardClass0 : REG_SZ \Registry\Machine\System\ControlSet001\Services\Kbdclass

The keyboard port information appears in the following Registry path:


HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap\KeyboardPort

There can be one or more of these entries. Each entry specifies the name of a device object created by the keyboard port driver(s) to represent the physical keyboard (port) device, followed by the Registry path to the driver's Services subkey.

Default:


\Device\KeyboardPort0 : REG_SZ : \Registry\Machine\System\ControlSet001\Services\i8042prt

The mouse class information appears in the following Registry path:


HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap\PointerClass

There can be one or more of these entries. Each entry specifies the name of a device object created by the pointer (mouse) class driver to represent the class device, followed by the Registry path to the driver's Services subkey.

Default:


\Device\PointerClass0 : REG_SZ : \Registry\Machine\System\ControlSet001\Services\Mouclass

The mouse port information appears in the following Registry path:


HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap\PointerPort

There can be one or more of these entries. Each entry specifies the name of a device object created by the pointer port driver(s) to represent the physical pointing (port) device, followed by the Registry path to the driver's Services subkey.

Default (assumes mouse port, Microsoft InPort, and serial pointing devices are connected):


\Device\PointerPort0 : REG_SZ :
\Registry\Machine\System\ControlSet001\Services\i8042prt
\Device\PointerPort1 : REG_SZ :
\Registry\Machine\System\ControlSet001\Services\Inport
\Device\PointerPort2 : REG_SZ :
\Registry\Machine\System\ControlSet001\Services\Sermouse