microsoft / microsoft/Windows-driver-samples

Interest in modernizing the firefly sample?

Open
#1,022 3 comments 0 reactions 1 assignee View on GitHub

@AndrewYangMSFT is already working on this.

Since Nov 11, 2025.

request
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 AddFilter directive for adding the driver to the device stack.
  • Logging to Windows Event Viewer.
  • Convert IN/OUT annotations to SAL annotations that can be statically analyzed.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.