microsoft / microsoft/Windows-driver-samples
Interest in modernizing the firefly sample?
@AndrewYangMSFT is already working on this.
Since Nov 11, 2025.
- Dominant language
- C
- Stars
- 7.8k
- Forks
- 5k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 7
Description
I've noticed that the firefly sample doesn't work with the current generation of Pro IntelliMouse. One reason for that is that Pro IntelliMouse reports itself as VendorID=045E (Microsoft) and ProductID=082A (Pro IntelliMouse) which is not found in the firefly.inx devices section. There also appear to have been changes to the HID reports used to control the LED color.
I've recently published https://github.com/forderud/IntelliMouseDriver as a modernized version of firefly compatible with Pro IntelliMouse and would be happy to contribute all or portions of the project back to this repo if there's interest. If so, then please let me know which portions and/or where to start, and I'll be happy to start preparing pull-requests.
Some improvement areas:
- Compatibility with Pro IntelliMouse.
- Allow non-admins read access to the WMI class.
- Extend firefly.mof to expose the RGB values for the tail-light instead of just a boolean.
- Filter HID SetFeature reports to selectively block certain tail-light RGB colors.
- Convert implementation to C++ with RAII instead of goto for for dynamic memory allocation.
- Switch to
AddFilterdirective for adding the driver to the device stack. - Logging to Windows Event Viewer.
- Convert
IN/OUTannotations to SAL annotations that can be statically analyzed.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.