Legacy Touchpad Forced Detection (touchpad-legacy-touchpad-forced-detection)
This topic describes the mechanism for forcing Windows 8.1 to detect a touchpad irrespective of connectivity as a legacy device on mobile form-factors.
Any touchpad that is not identified as a certified Windows Precision Touchpad is classified as a legacy touchpad provided it is identified by the host as an integrated peripheral on a mobile form-factor. If an integrated touchpad is not identified by the host as a legacy touchpad, the following features will not be available:
- Inbox Accidental Activation Prevention (AAP)
- PC Settings Touchpad Page
- Including the ability to opt-in to settings beyond AAP
- See Legacy Touchpad PC Settings Opt-In for additional information
There are circumstances in which a legacy touchpad integrated with a keyboard may not be identified correctly due to underlying issues in how the device is exposed to the host.
- Touchpad is connected via a USB port marked as removable
- Touchpad is connected via Bluetooth
In the above circumstances, Windows 8.1 will automatically assume the touchpad is an external mouse or touchpad and will not enable legacy touchpad features.
Approved List Mechanism
Irrespective of how a device is exposed to the host, Windows 8.1 provides the ability to force legacy identification and feature enablement through an approved list mechanism.
By creating a registry entry under the following key and specifying the desired matching level, Windows 8.1 will force a matching device to be detected as a legacy touchpad.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\PrecisionTouchPad\LegacyDevices\
The value of that DWORD specifies what level of matching should be undertaken for a specific entry.
Matching Level | Value |
VID/PID Only Match | 0x00000001 |
VID/PID/REV Match | 0x00000002 |
Full HWID Match | 0x00000003 |
For example if a device with HWID (ACPI\MSFT0001) wanted to be exactly matched based on HWID, it would specify its entry as follows:
ACPI\MSFT0001 0x00000003
For example if a touchpad with HWID (HID\VID_045E&PID_003F&REV_03FF&MI_02&COL01) wanted to ensure a match irrespective MI and COL, it would specify its entry as follows:
HID\VID_045E&PID_003F&REV_03FF 0x00000002
For more information, see HIDClass Hardware IDs for Top-Level Collections.
With reference to the above example, if the same touchpad wanted to ensure a match irrespective of version (RevID), it would specify its entry as follows:
HID\VID_045E&PID_003F 0x00000001
Note that a full HWID string may be specified in the registry with the DWORD value indicating the level of matching, for instance the second example has a functional equivalent below:
HID\VID_045E&PID_003F&REV_03FF&MI_02&COL01 0x00000002
Note If importing or exporting from the registry, the “\” will be duplicated as “\\” since this is a delimiting character. If pasting via registry editor, ignore the extra delimiter.
Windows Registry Editor Version 5.00``[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PrecisionTouchPad\LegacyDevices] "HID\\VID_045E&PID_003F&REV_03FF"=dword:00000002