Nefarius.Drivers.HidHide 2.0.0-pre4

Prefix Reserved
This is a prerelease version of Nefarius.Drivers.HidHide.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Nefarius.Drivers.HidHide --version 2.0.0-pre4
                    
NuGet\Install-Package Nefarius.Drivers.HidHide -Version 2.0.0-pre4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Nefarius.Drivers.HidHide" Version="2.0.0-pre4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nefarius.Drivers.HidHide" Version="2.0.0-pre4" />
                    
Directory.Packages.props
<PackageReference Include="Nefarius.Drivers.HidHide" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Nefarius.Drivers.HidHide --version 2.0.0-pre4
                    
#r "nuget: Nefarius.Drivers.HidHide, 2.0.0-pre4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Nefarius.Drivers.HidHide@2.0.0-pre4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Nefarius.Drivers.HidHide&version=2.0.0-pre4&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Nefarius.Drivers.HidHide&version=2.0.0-pre4&prerelease
                    
Install as a Cake Tool

<img src="assets/NSS-128x128.png" align="left" />Nefarius.Drivers.HidHide

.NET Requirements Requirements Nuget Nuget

Managed API for configuring HidHide.

Usage (classic)

Create an instance of HidHideControlService whenever you need it.

This class will not block other configuration apps so you can keep it in memory as long as you need. A handle to the driver is only opened when necessary (when the properties are read from or the methods get invoked).

The following methods and properties are available:

/// <summary>
///     Provides a managed wrapper for communicating with HidHide driver.
/// </summary>
public interface IHidHideControlService
{
    /// <summary>
    ///     Gets or sets whether global device hiding is currently active or not.
    /// </summary>
    bool IsActive { get; set; }
    
    /// <summary>
    ///     Gets whether the driver is present and operable.
    /// </summary>
    bool IsInstalled { get; }

    /// <summary>
    ///     Gets or sets whether the application list is inverted (from block all/allow specific to allow all/block specific).
    /// </summary>
    /// <remarks>
    ///     The default behaviour of the application list is to block all processes by default and only treat listed paths
    ///     as exempted.
    /// </remarks>
    bool IsAppListInverted { get; set; }

    /// <summary>
    ///     Returns list of currently blocked instance IDs.
    /// </summary>
    IReadOnlyList<string> BlockedInstanceIds { get; }

    /// <summary>
    ///     Returns list of currently allowed (or blocked, see <see cref="IsAppListInverted" />) application paths.
    /// </summary>
    IReadOnlyList<string> ApplicationPaths { get; }

    /// <summary>
    ///     Submit a new instance to block.
    /// </summary>
    /// <remarks>
    ///     To get the instance ID from e.g. a symbolic link (device path) you can use this companion library:
    ///     https://github.com/nefarius/Nefarius.Utilities.DeviceManagement
    /// </remarks>
    /// <param name="instanceId">The Instance ID to block.</param>
    void AddBlockedInstanceId(string instanceId);

    /// <summary>
    ///     Remove an instance from being blocked.
    /// </summary>
    /// <remarks>
    ///     To get the instance ID from e.g. a symbolic link (device path) you can use this companion library:
    ///     https://github.com/nefarius/Nefarius.Utilities.DeviceManagement
    /// </remarks>
    /// <param name="instanceId">The Instance ID to unblock.</param>
    void RemoveBlockedInstanceId(string instanceId);

    /// <summary>
    ///     Empties the device instances list. Useful if <see cref="AddBlockedInstanceId" /> or
    ///     <see cref="BlockedInstanceIds" /> throw exceptions due to nonexistent entries.
    /// </summary>
    /// <remarks>
    ///     Be very conservative in using this call, you might accidentally undo settings different apps have put in
    ///     place.
    /// </remarks>
    void ClearBlockedInstancesList();

    /// <summary>
    ///     Submit a new application to allow (or deny if inverse flag is set).
    /// </summary>
    /// <remarks>Use the common local path notation (e.g. "C:\Windows\System32\rundll32.exe").</remarks>
    /// <param name="path">The absolute application path to allow.</param>
    void AddApplicationPath(string path);

    /// <summary>
    ///     Revokes an applications exemption.
    /// </summary>
    /// <remarks>Use the common local path notation (e.g. "C:\Windows\System32\rundll32.exe").</remarks>
    /// <param name="path">The absolute application path to revoke.</param>
    void RemoveApplicationPath(string path);

    /// <summary>
    ///     Empties the application list. Useful if <see cref="AddApplicationPath" /> or <see cref="ApplicationPaths" /> throw
    ///     exceptions due to nonexistent entries.
    /// </summary>
    /// <remarks>
    ///     Be very conservative in using this call, you might accidentally undo settings different apps have put in
    ///     place.
    /// </remarks>
    void ClearApplicationsList();
}

Usage (dependency injection)

If you plan to make use of Microsoft Dependency Injection (in ASP.NET Core, Worker Services and alike) and the online services, your app also need to add these NuGet packages:

  • Microsoft.Extensions.Http
  • NJsonSchema

You can skip them for the "traditional" use of version 1 of the library. Register it like:

builder.Services.AddHidHide();

Now you can inject and consume:

  • IHidHideControlService for the HidHide settings API
  • HidHideSetupProvider for update and download information

Documentation

Link to API docs.

Generating documentation

dotnet build -c:Release
dotnet tool install --global Nefarius.Tools.XMLDoc2Markdown
xmldoc2md .\bin\net7-windows\Nefarius.Drivers.HidHide.dll .\docs\

3rd party sources

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net6.0-windows7.0 is compatible.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net7.0-windows7.0 is compatible.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net8.0-windows7.0 is compatible.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (6)

Showing the top 6 popular GitHub repositories that depend on Nefarius.Drivers.HidHide:

Repository Stars
Valkirie/HandheldCompanion
ControllerService
CircumSpector/DS4Windows
A reimagination of DS4Windows.
nefarius/Legacinator
The one and only Legacinator.
project-sbc/Handheld-Control-Panel
InvoxiPlayGames/FestivalInstrumentMapper
Maps most existing Rock Band / Guitar Hero instruments as Xbox One instruments for Fortnite Festival.
JamesCJ60/Universal-x86-Tuning-Utility-Handheld
Unlock the full potential of your Intel/AMD based handheld.
Version Downloads Last Updated
3.2.0 303 9/20/2025
3.1.0 200 9/20/2025
3.0.0 798 6/16/2025
3.0.0-pre004 156 6/16/2025
3.0.0-pre003 154 6/16/2025
3.0.0-pre002 196 6/16/2025
3.0.0-pre001 180 6/16/2025
2.4.1 2,309 10/1/2024
2.4.0 192 9/30/2024
2.3.0 341 9/17/2024
2.3.0-pre002 160 9/16/2024
2.3.0-pre001 116 9/16/2024
2.2.0 584 7/6/2024
2.1.0 210 6/23/2024
2.0.0 169 6/22/2024
2.0.0-pre9 146 6/21/2024
2.0.0-pre8 120 6/21/2024
2.0.0-pre7 121 6/21/2024
2.0.0-pre6 121 6/21/2024
2.0.0-pre5 126 6/21/2024
2.0.0-pre4 126 6/21/2024
2.0.0-pre3 147 6/21/2024
2.0.0-pre2 124 6/21/2024
2.0.0-pre10 93 6/21/2024
2.0.0-pre1 159 6/18/2024
2.0.0-pre001 117 6/21/2024
1.12.2 2,170 11/17/2023
1.12.1 166 11/17/2023
1.12.0 165 11/17/2023
1.11.0 309 10/18/2023
1.10.1 211 10/12/2023
1.10.0 172 10/12/2023
1.9.2 249 9/26/2023
1.9.1 169 9/21/2023
1.9.0-tags-v1-9-0-pre.1 96 9/21/2023 1.9.0-tags-v1-9-0-pre.1 is deprecated.
1.8.60 2,556 3/7/2023
1.8.59 289 3/7/2023
1.8.56 293 3/7/2023
1.8.54 921 11/14/2022
1.6.51 448 11/2/2022
1.6.49 415 11/2/2022
1.6.46 399 11/2/2022
1.6.44 411 11/2/2022
1.6.38 508 10/26/2022
1.5.35 456 10/26/2022
1.4.31 472 10/25/2022
1.3.26 486 10/23/2022
1.2.23 465 10/23/2022
1.2.21 478 10/23/2022
1.1.16 487 10/22/2022
1.1.12 473 10/22/2022
1.1.11 476 10/22/2022
1.0.9 488 10/22/2022
1.0.7 471 10/22/2022
1.0.5 493 10/22/2022
1.0.3 473 10/22/2022