Replacing WinRing0 in Fan Control with PawnIO

Fan Control (also known as FanControl) is a great application going through some pains right now due to its reliance on the WinRing0 driver (written by hiyohiyo of CrystalDiskMark fame) which was created as a workaround to give developers an easy way to directly manage various things normally limited to a privileged layer called ring 0 on a system. It’s a long known issue that WinRing0 is actually a dangerous tool that opens huge holes in your OS security, but minimal effort had been put in to do anything about it. Even big vendors like Razer and Steelseries relied on it. Well, Microsoft Defender has finally stopped turning a blind eye and now flags it as malicious for most users.

Enter PawnIO. This is a new, signed driver capable of running arbitrary bytecode in ring 0…but with some checks and balances in place. It’s being developed to satisfy the needs of the opensource community to somehow safely have drivers in ring 0 without jumping through some of Microsoft’s hoops which are insurmountable for many developers. Anyways, the details of that are better explained by someone else.

Right now you have four options:

  1. Uninstall Fan Control and wait for a new version to integrate a replacement for WinRing0 out of the box, whatever that may be, while the white noise of your stock fan curves drives you nuts.
  2. Replace Fan Control with something inferior and vendor-specific.
  3. Whitelist the drivers with Defender and risk your system being compromised by malware (which to be clear, requires a separate attack vector.)
  4. Replace the WinRing0 requirement right now, since Fan Control’s developer Rem0o added sideloading.

Let’s go with Option 4. There are a few steps to be successful:

  1. Install PawnIO.
  2. Confirm your Fan Control .NET dependency.
  3. Ensure you have the right .NET runtimes.
  4. Build or acquire a prebuilt binary of namazso’s fork of LibreHardwareMonitor. (namazso is also the developer of PawnIO.)
  5. Replace Fan Control’s LibreHardwareMonitorLib with the updated one.

Install PawnIO

Easy enough. Visit https://pawnio.eu/, click Download Now and install it. This implies that you trust namazso and this project. Please do some research and make a decision for yourself.

Whatcha got?

Under the About section of Fan Control you should see the .NET version next to the Fan Control version. i.e., Version 236 (NET 9.0). If it’s greater than 8.0, you’re good. Anything less and I recommend ensuring you have .NET 8.0 installed, uninstalling Fan Control and installing a later version. You can grab the installer from https://github.com/Rem0o/FanControl.Releases/releases – look for FanControl_236_net_8_0_Installer.exe for example.

Check .NET

I personally had trouble with older .NET versions, so I recommend making sure you have .NET 8.0 installed. Either check Add or remove programs in Windows, or in Terminal run:

dotnet --list-runtimes

Look for any version of Microsoft.NETCore.App 8.0.x, for example Microsoft.NETCore.App 8.0.20 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Install .NET if necessary

If you are missing it, do a web search for .NET 8.0, or head here. Ensure you are on dotnet.microsoft.com. If you plan to build, download the latest SDK installer. If you are going to acquire a binary build, you can just download the .NET Desktop Runtime.

Get a new LibreHardwareMonitor

Acquire

namazso provided builds in this GitHub comment. I have checked them and as of writing they are signed – but buyer beware. The comment version I looked at was Sept 4 2025, 9:29AM EDT. You are likely going to want the net8.0.zip if you are closely following these instructions.

Build

Building the project was straightforward for me. If you’re going this route but don’t have experience with Visual Studio this may not be an exhaustive enough guide. A web search (or some LLM…) can help you through it.

Assuming you have Visual Studio 2022 with the .NET project types installed, as well as the .NET 8.0 SDK, clone namazso’s forked repository from https://github.com/namazso/LibreHardwareMonitor.git. This can be done directly in VS2022.

After cloning, or manually opening the LibreHardwareMonitor.sln, under Build -> Configuration Manager, set the Active solution configuration to Release and leave Build checked only for LibreHardwareMonitorLib.

Press F6 or Build -> Build Solution, and that should hopefully be it. Browse to the source directory, and then bin\Release\net8.0. If you’re lucky, this path will work in Explorer or Run (Win+R): %USERPROFILE%\source\repos\LibreHardwareMonitor\bin\Release\net8.0. If successful, there will be four files.

Out with the old!

Time to send WinRing0 out to pasture.

  • Make sure Fan Control is completely closed (you may need to check with Task Manager.)
  • Copy your new version of the LibreHardwareMonitorLib files (the install comes with a .pdb, .dll and .xml, so follow suit with those.)
  • Visit your Fan Control installation directory in Explorer (likely at %programfiles(x86)%\FanControl\) and paste them here, replacing the originals.

If you previously whitelisted the bad drivers in Microsoft Defender, open Windows Security, go to Virus & threat protection, click on Allowed threats and remove them.

Start Fan Control, and you should be back in action.

One thought on “Replacing WinRing0 in Fan Control with PawnIO

Leave a Reply

Your email address will not be published. Required fields are marked *