HidHide Device Firewall for Virtual Gaming Peripherals
Gaming Input Peripherals Device Firewall for Windows.
At a glance
- What is it?
- HidHide is a Windows kernel-mode filter for hiding selected human interface devices from applications while preserving access for approved tools. It suits users resolving duplicate controller input, but driver installation can require a reboot.
- Who is it for?
- Adopt HidHide if you understand Windows driver filtering and need application-based HID device isolation, especially around feeder utilities. Do not choose it for controller mapping alone or if a possible reboot is unacceptable.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 110 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Why HidHide Exists for Virtual HID Setups
HidHide addresses a specific conflict between physical gaming peripherals and virtual devices created by mapping utilities such as vJoy or Joystick Gremlin. Windows recognizes joysticks, game pads and other human interface devices, but mapping software commonly listens to a physical controller and presents input through one or more virtual devices. A game may then receive notifications from both sides of that arrangement.
That duplication matters during control binding. When a user presses a button to assign it to an action such as Fire or Roll, an application may record input from the physical device and from the virtual device produced by the feeder. HidHide can hide the physical device from the target application while leaving it visible to approved software. The intended result is one input notification rather than two.
This makes the project different from a controller remapping application. HidHide does not map buttons or axes. It controls device visibility at a lower Windows layer. Its audience is therefore narrower: users who already understand peripheral relationships, virtual devices or feeder applications, and who need to isolate one side of that relationship from selected games or utilities.
HidHide's Kernel Filter and Application Policy
According to the README, HidHide is a kernel-mode filter driver built with KMDF 1.13 or later for Windows 10 and newer. It starts automatically and operates unattended with system privileges. A separate configuration utility controls the driver and can run without elevated rights.
The policy has two principal sides. Applications can be whitelisted so they retain access to protected devices, while selected human interface devices can be hidden from ordinary applications. When device hiding is enabled, a non-whitelisted application is denied access to a hidden device. Disabling the feature grants all applications access to all devices. This makes the service a global switch, while the application and device lists define the exclusions.
The configuration utility stores application paths and lists currently connected gaming devices by default. The path display intentionally replaces a logical drive letter with a full path so a change to drive-letter mapping does not immediately invalidate the entry. Device entries can also be expanded to expose associated composite devices.
HidHide has a secondary filtering behavior for legacy applications that bypass the operating system's HID layer and communicate with an underlying device driver. The README says access to that lower driver is blocked when a device has only composite HID devices and all of them are selected. This extends the filter beyond the visible HID collection, but the selection state has consequences beyond a single application-level device entry.
Installing HidHide on Windows 10 or Newer
The README describes HidHide as a Windows 10 or higher kernel driver package with a non-elevated configuration utility. Installation or removal may trigger a system reboot. It also links a Chocolatey package, but the available project documentation does not provide a complete executable or package-manager command sequence, so this review does not invent one.
The repository warning limits official sources to the `github.com/nefarius/HidHide` repository and sites hosted on `*.nefarius.at`, including its documentation and Discord site. Obtain the package through one of those sources rather than an unrelated download link. Before installation, decide whether a possible reboot fits the machine's operating schedule.
A first real use should begin in the HidHide configuration utility after installation and any required restart. Open the `Applications` tab and add every program that must continue seeing the physical device. This will commonly include the peripheral vendor's setup application and any feeder utility, although the README does not name a mandatory whitelist entry for every configuration. Add entries with the `+` button. Select unwanted entries with `shift` or `control`, then remove them with the `-` button.
Next open the `Devices` tab and review the connected gaming devices. Enable `Enable device hiding`, then select the devices that the intended applications must not see. Start with the narrowest selection that addresses the conflict. When this setting is disabled, all applications are granted access to all devices.
Choosing Composite and Disconnected Devices Safely
The `Devices` tab is not a static inventory. It refreshes when a new device is detected and offers two filters: `Filter-out disconnected` and `Gaming devices only`. The first includes previously connected devices that are not currently present. The second limits the list to game pads and joysticks.
`Gaming devices only` depends on accurate device information from vendors. Some vendors use vendor-specific codes, so a supported controller may be absent from the filtered view. If a gaming device is missing, the README advises turning that filter off. HidHide ignores these display filters for devices already selected for hiding, preserving a view of the active policy.
Expanding an entry reveals associated composite devices and supports more granular selection. The README also defines two statuses. An `absent` entry reflects altered device characteristics and can remain in operating system caches; the documentation points to Device Cleanup Tool for removing such residual entries. A `denied` entry appears when a hidden device is visible in the configuration interface but HidHide itself has not been whitelisted. The latter is a diagnostic clue about the current configuration rather than proof that the device has disappeared.
The README does not document policy export, conflict resolution between multiple HidHide instances or recovery steps for every failed driver installation. Those omissions matter because this is privileged Windows software rather than a conventional portable utility.
HidHide Compared with Controller Remapping Utilities
The closest alternative described by the project is a feeder utility such as vJoy or Joystick Gremlin. The README points to those tools as useful for moving control customization into software that can operate across applications, but their approach differs. A feeder listens to physical hardware and controls virtual devices. HidHide does not replace that mapping path. It filters which applications can see the underlying HID devices.
That distinction makes HidHide useful when the problem is duplicate discovery or binding input from both a physical and virtual device. It also makes HidHide the wrong choice when the underlying requirement is to remap buttons, combine controllers, synthesize additional axes or expose dual-controller features to software that supports only one joystick. Those are feeder or remapping responsibilities.
Another practical contrast is privilege. The configuration utility can run in its least privileged mode, but the driver itself runs unattended with system privileges and may require a restart to install or remove. A portable peripheral utility can often be inspected and removed like an ordinary application. HidHide requires more caution because its enforcement point is the Windows driver stack, not merely a visible application setting.
Compatibility, Support Windows, and Release State
The stated platform requirement is Windows 10 or later, with KMDF 1.13 or later. The repository includes separate project areas for the driver, client, CLI, tests, installer and watchdog, as well as architecture-specific driver definition files including `HidHide_x64.ddf` and `HidHide_ARM64.ddf`. This layout confirms that HidHide is a multi-component Windows system package rather than a single user-mode executable.
The last push was on 2026-07-05, and the repository is not archived. The listed releases are `v1.5.230.0`, released on 2024-05-11, `v1.5.212.0`, released on 2024-02-14, and `v1.4.202.0`, released on 2024-02-02. The repository therefore has recent repository activity even though the newest listed release predates that push. The project documentation does not state a Windows release-support policy or an upgrade-compatibility procedure between these releases.
HidHide is distributed under the MIT License. That license provides the repository's stated permission framework for use, modification and redistribution, subject to its conditions. It does not by itself establish compatibility with Windows security policies, endpoint protection products or organizational driver approval processes, and those operational checks remain separate from the license.
Where HidHide Can Fail or Be the Wrong Tool
The most direct failure mode is an incomplete application whitelist. If a vendor configuration tool or feeder cannot access a device hidden by HidHide, it may appear broken even though the underlying hardware is connected. The `denied` status shown for the configuration utility provides a specific clue when HidHide itself is not permitted through the policy.
Device discovery can also mislead users. Vendor-specific usage codes can cause a gaming peripheral to disappear when `Gaming devices only` is enabled. The documented response is to disable that filter. Altered device characteristics can leave an `absent` cache entry, while selecting every composite device can invoke the lower-driver blocking behavior for legacy applications. These cases show why a broad selection can affect software that does not appear to use the HID layer directly.
HidHide is the wrong tool for users who merely need button assignment, axis mapping, virtual joystick creation or controller emulation. It also does not document how to prevent a reboot during installation or removal. A user who cannot tolerate an unexpected system restart should settle that constraint before installing the driver. The README also provides no general rollback procedure, so removal planning must be based on the official package rather than assumptions about a normal application uninstaller.
Editorial conclusion
Adopt HidHide if you understand Windows driver filtering and need application-based HID device isolation, especially around feeder utilities. Do not choose it for controller mapping alone or if a possible reboot is unacceptable. Verify first that each required configuration utility and feeder application is whitelisted, because denied programs cannot see hidden devices.
Frequently asked questions
Does HidHide work on Windows 11?
The README states that HidHide requires Windows 10 or higher. It does not separately document a Windows 11 support matrix.
Does installing HidHide require administrator privileges or a reboot?
The driver runs with system privileges, while the configuration utility does not require elevated rights. A reboot may be triggered after driver installation or removal.
Can HidHide hide a physical controller from a game while keeping it visible to a feeder utility?
Yes. HidHide can hide selected HID devices from ordinary applications and whitelist applications such as vendor utilities or feeder applications that need continued access.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/nefarius-hidhide)Was this useful?