Objective
Find your own keyboard and mouse in Windows, see how they are connected, watch how Windows treats the keys, and look at the pointer and key-repeat settings. This lab only looks. The one optional step that changes something (pointer speed) is harmless and has undo steps.
Time: 25–30 minutes
You need: A Windows PC with a keyboard and mouse. No extra software. (Third-party "polling rate test" tools are not used.)
What to Open
| Tool | How to open it |
|---|---|
| Device Manager | Press Win + X, then choose Device Manager |
| PowerShell | Press Win, type PowerShell, press Enter (normal, not admin) |
| Notepad | Press Win, type Notepad, press Enter |
| On-Screen Keyboard | Press Win + R, type osk, press Enter |
| Settings | Press Win + I |
Part 1: Find Your Devices (Device Manager)
Open Device Manager and expand these three branches:
- Keyboards
- Mice and other pointing devices
- Human Interface Devices
- How many entries are under Keyboards? ________________
- Name the entries under Mice and other pointing devices: ________________
- Under Human Interface Devices, you will probably see lines like USB Input Device and HID-compliant mouse or HID Keyboard Device. How many lines are there? ________________
A laptop usually shows a Standard PS/2 Keyboard for its built-in keyboard. That is normal: laptops often connect the keyboard internally in the old PS/2 style. It does not mean the keyboard has a round plug.
Part 2: Ask PowerShell (Same Facts, Another Way)
Type each line and press Enter:
Get-PnpDevice -Class Keyboard
Get-PnpDevice -Class Mouse
Get-PnpDevice -Class HIDClass | Select-Object -First 15 Status, FriendlyName
Get-CimInstance Win32_Keyboard | Select-Object Name, Description, DeviceID
Get-CimInstance Win32_PointingDevice | Select-Object Name, Manufacturer, DeviceIDLook at the DeviceID text of your keyboard and mouse.
- Does a DeviceID start with HID, USB, ACPI, or ROOT? ________________
- If one starts with ACPI (laptop keyboard) or has "PS2" in it, what old connection style is in use? ________________
- Do the Get-PnpDevice lines show Status OK? ________________
Status OKonly means the driver loaded. Devices that are listed but not currently plugged in may show other states.
Part 3: See the USB Path (Device Manager)
- In Device Manager choose View → Devices by connection.
- Expand ACPI x64-based PC → Microsoft ACPI-Compliant System → PCI Express Root Complex and keep opening the branches until you find an item named USB xHCI Compliant Host Controller (or USB Root Hub).
- Open it. You should find a USB Root Hub, and below it USB Composite Device or USB Input Device, and below those your keyboard or mouse (HID Keyboard Device, HID-compliant mouse).
USB xHCI Compliant Host Controller ← Section 2.1: the polling chip
└─ USB Root Hub (USB 3.0)
└─ USB Input Device ← the HID class device
└─ HID Keyboard Device ← kbdhid sees this one
- How many levels are there between the host controller and your keyboard? ________________
- A wireless dongle keyboard or mouse appears like a normal USB item here. Is any of yours wireless? ________________
- Return to View → Devices by type when finished.
Part 4: Watch the Layers Work (Notepad)
Open Notepad and try each of these. Write what happens.
| Try this | What you should see | Which Section it proves |
|---|---|---|
Type a, then hold Shift and type a | a then A | 3.5: the same key gives two characters |
| Press Caps Lock and look at the keyboard lamp (or the on-screen Caps indicator) | Lamp lights, letters become capital | 2.1: the PC sends the lamp state back to the keyboard |
| Hold down a letter key for a second | A pause, then repeated letters | 2.1: the repeat is created by Windows |
Hold Ctrl and press A | All text selected | 3.6: combos are keys that the program interprets |
| Hold two letter keys together | Both letters appear | 1.5: rollover (try 4 to 6 keys: most keyboards cope) |
Press Win + Space (if you have 2 or more layouts) | The layout name changes in the taskbar | 3.5: Windows swaps the translation table |
Part 5: Software Can Inject Keys (On-Screen Keyboard)
-
Start osk.exe as in the table above.
-
Click in Notepad, then click letters on the on-screen keyboard with the mouse.
-
Letters appear in Notepad exactly as if typed.
-
Why does Notepad not care whether the key came from a real keyboard or from the on-screen one? (Hint: Section 3, step 5 to 7.)
The on-screen keyboard works because Windows has a documented way for programs to send key events into the input system. Everything after that point (layout, messages, drawing) is identical to a real key press.
Close the on-screen keyboard when done.
Part 6: Key Repeat and Layout Settings (Read-Only Look)
- Press
Win + R, typecontrol keyboard, press Enter. The classic Keyboard Properties window opens. Look at Repeat delay and Repeat rate. Do not change them. Close the window. - In PowerShell:
Get-WinUserLanguageList
Get-ItemProperty 'HKCU:\Control Panel\Keyboard' | Select-Object KeyboardDelay, KeyboardSpeed- Which languages are listed, and what is the InputMethodTips number for your layout? ________________
- What are your KeyboardDelay and KeyboardSpeed values? ________________ (Values are small whole numbers. Exact meaning may differ by version, but a bigger speed number means faster repeat.)
Part 7: Pointer Settings (Read-Only, Plus One Optional Reversible Test)
- Open Settings → Bluetooth & devices → Mouse. Note your Mouse pointer speed value (a slider; the default is usually near the middle).
- Press
Win + R, typecontrol mouse, press Enter. On the Pointer Options tab, find Enhance pointer precision. Note whether it is ticked. - In PowerShell:
Get-ItemProperty 'HKCU:\Control Panel\Mouse' | Select-Object MouseSpeed, MouseSensitivity, MouseThreshold1, MouseThreshold2- Pointer speed (Settings): ________________ Enhance pointer precision: On / Off
- Registry values: MouseSensitivity ________________ (this is the slider, on a scale of 1 to 20, where 10 is the usual default).
Optional reversible test (changes a setting, harmless):
- Write down your current pointer speed from step 1.
- Move the slider one notch lower, then wave the mouse across your desk. Note the change.
- Return the slider to the exact value you wrote down.
- If you try the Enhance pointer precision checkbox, put it back as it was.
Undo: set the slider and the checkbox back to the original values noted above. Nothing else changes.
What Should Happen
- Part 1 and 2 show the same devices from two angles.
- Part 3 shows the real USB path: controller, hub, device, HID entry.
- Part 4 and 5 show that the layout, repeat and key messages are done by Windows, not by the keyboard.
- Part 6 and 7 show the settings that Windows applies to keys and mouse counts.
Interpretation Guide
| What you see | What it means |
|---|---|
Keyboard DeviceID starts with HID\ | The keyboard uses the HID class (USB or Bluetooth) |
DeviceID has ACPI\ or PS2 text | A built-in laptop keyboard or older PS/2 style |
| "HID-compliant mouse" under Human Interface Devices | Standard HID class driver in use, no maker driver needed |
| Maker's name in the entry (a gaming brand, for example) | Extra maker software or a maker driver is present on top |
| Device listed with a yellow warning mark | Driver problem; see Chapter 14 |
| MouseSpeed = 1 (or 2) with thresholds | Enhance pointer precision is on (values may differ) |
| MouseSpeed = 0 | Acceleration is off |
| Letters wrong on a key | A different layout is active (Win + Space) |
Follow-Up Questions
- Why does a wireless 2.4 GHz mouse appear as an ordinary USB HID mouse?
- Your laptop keyboard shows "Standard PS/2 Keyboard", yet there is no PS/2 socket. How can that be?
- What does it prove that the on-screen keyboard can type into Notepad?
- If you swapped to a French layout, which parts of the chain from Section 3 would change, and which would stay the same?
- Why does the pointer speed slider change cursor movement even though the mouse's CPI is fixed?