Scroll fix · Mode A → Mode B · PID 0323
Magic Mouse 2024 (v3) scroll not working on Windows 11
Cursor still moves, two-finger scroll is dead: a Bluetooth idle disconnect made Windows collapse the mouse’s HID collections. The Apple-driver route puts scroll back, and that route needs no Test Mode.
Install the fix Which mouse do I have?
Why does Magic Mouse scroll stop working on Windows 11?
After a Bluetooth idle disconnect, DeviceSetupManager (DSM) runs a property sync against cached device state and the mouse’s HID collections collapse — Mode A → Mode B. Mode A enumerates COL01 and COL02 as independent collections; Mode B merges them into one plain-mouse collection, and the scroll consumer can no longer bind to it: cursor, buttons, no scroll.
Registry-level detail: DynamicCachedServices
The collapse is visible in HKLM\SYSTEM\CurrentControlSet\Enum\BTHENUM\...\Device Parameters\DynamicCachedServices, a 560-byte binary value (35 × 16-byte entries). In Mode A, entry 0 is COL01 and entry 1 is COL02; after the DSM-triggered rewrite in Mode B, entry 0 is the unified TLC and entry 1 is empty. The exact BTHPORT internal code path from the 35th DSM property write to the descriptor rewrite has not been reverse-engineered — the property write is the confirmed trigger, the collapse mechanism inside BTHPORT is not yet fully characterised.
Full write-up: bug analysis of the DSM and BTHPORT path and the Mode A / Mode B HID collection diagram.
Where the filter sits in the Bluetooth HID stack
- Application — expects a scroll event.
- Input Manager — turns parsed HID reports into pointer and scroll input.
hidclass.sys— the HID class driver.HidBth.sys— HID-over-Bluetooth miniclass; parses the collections.applewirelessmouse.sys— Apple’s signed driver, registered here as the lower filter.BTHENUM— the Bluetooth Enumerator PDO for the paired mouse.BTHPORT— ownsDynamicCachedServices; the DSM resync rewrite that merges COL01/COL02 into one TLC happens here.- Hardware — the mouse’s Bluetooth HID radio and firmware.
“Just install the Apple driver” does not work. Apple’s Boot Camp INF has no 0323 entry, so nothing binds to the 2024 mouse. On v1 and v2, Apple’s installer refuses to run on non-Apple hardware, and Windows will not attach applewirelessmouse.sys until something registers it as a lower filter.
What the fix does, and what it does not
- Restores scroll by registering Apple’s own unmodified signed driver as a lower filter on
PID_030D,PID_0269,PID_0310,PID_0323. No Test Mode for this route. - Sensitivity is fixed — Apple’s Mac-style translation, not tunable.
- Re-pairing breaks it — the filter is bound to the device InstanceId, so re-run
Install.cmd. - No battery read — see battery on this driver.
- It does not prevent the collapse — it keeps a working scroll path through it.
Procedure, rollback and signing detail: the install page.
Rule out the cheap causes
-
1
Re-pair the mouse
Remove it in Bluetooth settings, then pair again. Scroll returns, then dies after the next idle? That is this bug.
-
2
Read the Hardware Ids
Device Manager → Human Interface Devices → Apple Magic Mouse → Properties → Details → Hardware Ids.
-
3
Install the fix
Which mouse do I have?
Is this a battery or Bluetooth range problem?
No, and it is not a Windows setting you can toggle either. It is a one-way HID collection collapse triggered by a DeviceSetupManager resync. Nothing in the Windows mouse settings can re-expose a collection that no longer exists — only re-pairing, a driver reinstall, or the shipped lower filter restore it.
Still unsure which driver you need?
The Magic Tray site keeps a decision page: which Apple mouse driver do I need on Windows. Signing, Boot Camp and v1/v2 questions are answered in the driver FAQ, and the source and issue tracker are on GitHub, MIT licensed.