#825·btrfs

The correct way to run upgrade the driver (and to switch between the debug and release builds)

Author: sskrasCreated Sep 9, 2026Updated Sep 9, 2026

I had version 1.9 running for for a year or so. Recently I decided to upgrade. So I just went to btrfs-1.10-debug\ folder, invoked the context menu for btrfs.inf, and clicked Install. It asked to restart the OS, which I did, and it seemed like the upgrade succeeded.

Due to #806 I decided to switch to the Release build now. I did the same, just with the btrfs-1.10\ folder this time. It seemingly went OK, but after the restart it continued BSODing.

Accordingly to Device Manager, both drivers showed a 6 day old installation date (2026-09-03), so I assumed this way the driver to be not switching. So decided to uninstall it by hand. For that I adjusted PSh code snipped I used to test the OpenZFS project:

powershell
$all_drivers = (pnputil.exe /enum-drivers) -join "`n" -split "`n`n"

$zfs_drivers = $all_drivers | Where-Object {
    $_ -match "Original Name: +btrfs.+\.inf\b"
}

$zfs_drivers | ForEach-Object {
    $driver = $_ -replace ":", "=" | ConvertFrom-StringData
    $inf = $driver.'Published Name'
    Write-Output "Deleting $inf ..."
    pnputil /delete-driver $inf /uninstall /force
}

It seemingly went OK:

powershell
PS C:\Windows\system32> $all_drivers = (pnputil.exe /enum-drivers) -join "`n" -split "`n`n"
>>
>> $zfs_drivers = $all_drivers | Where-Object {
>>     $_ -match "Original Name: +btrfs.+\.inf\b"
>> }
>>
>> $zfs_drivers | ForEach-Object {
>>     $driver = $_ -replace ":", "=" | ConvertFrom-StringData
>>     $inf = $driver.'Published Name'
>>     Write-Output "Deleting $inf ..."
>>     pnputil /delete-driver $inf /uninstall /force
>> }
>>
Deleting oem163.inf ...
Microsoft PnP Utility

System reboot is needed to complete uninstall operations!
Driver package deleted successfully.
System reboot is needed to complete unconfiguration operations!
Deleting oem124.inf ...
Microsoft PnP Utility

System reboot is needed to complete uninstall operations!
Driver package deleted successfully.
System reboot is needed to complete unconfiguration operations!
Deleting oem122.inf ...
Microsoft PnP Utility

Driver package uninstalled.
Driver package deleted successfully.
System reboot is needed to complete unconfiguration operations!
PS C:\Windows\system32> _

I restarted the OS, clicked Install again from the btrfs-1.10\ folder, and restarted the OS once more. Strangely, I see no drivers in the Device Manager:

... although the kernel driver seems to be running:

cmd
C:\Users\saukrs> sc query btrfs

SERVICE_NAME: btrfs
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

C:\Users\saukrs> _

And of course my volume is gone from the GUI.

Did I do something wrong? What is the correct way to upgrade the driver or to switch between the builds? What should I do next?