Disconnect the hub/monitor USB data connection and reconnect only power and display; because the behavior follows the user to another laptop while the same hub/monitors remain connected, the shared USB/HID chain is the most discriminating place to isolate the source.
1. Isolate the shared peripheral chain
A monitor or dock can contain an internal USB hub and expose attached or built-in devices to Windows. Updating its firmware does not establish that those devices have stopped generating input.
- Disconnect from the laptop:
- Dock or hub USB/USB-C/Thunderbolt cable.
- Monitor USB upstream cables.
- Wireless keyboard/mouse receivers.
- External keyboards, mice, presentation controllers, keypads, headsets, and macro devices.
- Leave only laptop power and display connected. If USB-C carries both display and USB data, temporarily use a display-only connection or test without the external displays.
- Reproduce the issue using only the laptop’s built-in keyboard and touchpad.
- If it stops, reconnect one physical device or upstream USB cable at a time, waiting long enough to reproduce after each connection.
- When it returns, disconnect devices downstream of that hub one at a time. Also check monitor USB ports for receivers that may be easy to overlook.
Microsoft specifically recommends removing a USB hub and connecting a device directly to the PC when troubleshooting input devices.^1^
This A/B test is more useful than another laptop test: moving the same hub chain can move the offending HID device with the user.
2. Map the HID device to its physical USB port
On an affected laptop:
- Open Device Manager.
- Select View → Devices by connection.
- Expand the USB host controller/root-hub branches and locate the dock or monitor hub.
- Expand its children and look for:
- HID Keyboard Device
- HID-compliant consumer control device
- HID-compliant vendor-defined device
- Multiple keyboards or mice that appear only when the hub is attached
- Disconnect and reconnect one suspect device while watching which node disappears and returns.
- Open the device’s Properties → Details and record:
- Device instance path
- Hardware IDs
- Location paths
- Parent
A USB 3.x hub may appear as separate USB 2.0 and SuperSpeed hub branches, so inspect both branches.^2^ Device Manager can also show hidden devices, status, and problem codes.^3^
For a more explicit topology tree, install Debugging Tools for Windows from the Windows SDK and run usbview.exe. USBView displays controllers, hubs, attached devices, interfaces, and endpoint descriptors.^3^
3. Disable one suspect HID safely
After recording the device instance ID, test by disabling only that device. Do not disable the USB controller, root hub, or the only working keyboard/mouse.
From an elevated Command Prompt:
pnputil /enum-devices /connected /class Keyboard /deviceids
pnputil /enum-devices /connected /class HIDClass /deviceids
pnputil /enum-devices /instanceid "<device-instance-id>" /relations /stack
pnputil /disable-device "<device-instance-id>"
rem Reproduce the issue, then restore the device:
pnputil /enable-device "<device-instance-id>"
PnPUtil is included with Windows, can enumerate connected devices and their relationships, and supports disabling and re-enabling a specific device instance.^4^
Also check for installation problems:
pnputil /enum-devices /problem
This reports devices with PnP problem codes.^5^
4. Capture USB activity during the unwanted input
If physical isolation identifies a USB branch but not the exact device, capture a short USB ETW trace. Disconnect unrelated USB devices first and keep the capture narrowly bounded; ETL files can grow quickly.^6^
Run these commands from an elevated Command Prompt:
logman create trace -n usbtrace -o %SystemRoot%\Tracing\usbtrace.etl -nb 128 640 -bs 128
logman update trace -n usbtrace -p Microsoft-Windows-USB-USBXHCI (Default,PartialDataBusTrace)
logman update trace -n usbtrace -p Microsoft-Windows-USB-UCX (Default,PartialDataBusTrace)
logman update trace -n usbtrace -p Microsoft-Windows-USB-USBHUB3 (Default,PartialDataBusTrace)
logman update trace -n usbtrace -p Microsoft-Windows-USB-USBPORT
logman update trace -n usbtrace -p Microsoft-Windows-USB-USBHUB
logman update trace -n usbtrace -p Microsoft-Windows-Kernel-IoTrace 0 2
logman start -n usbtrace
Wait for the unwanted action, note its exact time, and stop immediately:
logman stop -n usbtrace
logman delete -n usbtrace
move /Y %SystemRoot%\Tracing\usbtrace_000001.etl %SystemRoot%\Tracing\usbtrace.etl
The resulting file is C:\Windows\Tracing\usbtrace.etl. USB ETW exposes hub additions/removals, port-state changes, endpoints, controller activity, and USB I/O useful for correlating the event with a device branch.^7^
5. If it continues with every external device disconnected
Perform a clean boot to distinguish a startup service or utility—such as keyboard remapping, macro, accessibility, remote-control, or vendor peripheral software—from the Windows input stack:
- Run
msconfig. - Services → Hide all Microsoft services → Disable all.
- Startup → Open Task Manager, then disable enabled startup apps.
- Restart and test.
- If the issue stops, re-enable half the services/items at a time until the responsible component is isolated.^8^
If it remains absent only when the hub or monitor USB path is disconnected, provide the isolated device instance ID, USB topology, reproduction timestamps, and ETL trace to the dock/monitor/peripheral manufacturer.
References
- Mouse and keyboard problems in Windows | Microsoft Support
- USB in Windows - FAQ
- Universal Serial Bus Viewer in Windows
- PnPUtil Command Syntax
- Troubleshooting Device and Driver Installations
- How to capture a USB event trace with Logman
- Overview of USB event tracing for Windows
- [Windows 11](https://support.microsoft.com/windows/experience/startup-boot/how-to-perform-a-clean-boot-in-windows)