Although Windows has had awareness of the NVMe storage media protocol since Windows 8.1, it turns out that the stock Microsoft driver for NVMe devices, disk.sys, offers suboptimal performance. This driver dates back to 2006, and is part of Microsoft’s oldest internal basic drivers. Disk.sys appears to treat NVMe devices like SCSI drives. Microsoft released a new native driver with a greater degree of awareness of NVMe with Windows 11 25H2 (client) and Windows 2025 (server) operating systems, called nvmedisk.sys. The easiest way to check if your drive is using the older driver would be to bring up Device Manager, collapse “Disk Drives,” open the Properties of your drive, go to the Driver tab, and click on the “driver details” button.

Notebookcheck made a fascinating discovery that has the potential to unlock greater performance with your NVMe drives, if they are compatible. Apparently, nvmedisk.sys significantly improves performance, both in sequential and random workloads. Using this driver, however, is fraught with risks. Not all NVMe SSDs support it, and if incompatible, it could break Windows 11 boot. The publication put out a guide on how to get Windows 11 to use nvmedisk.sys. This involves changing three Windows Registry values. It would be a good idea to image or backup your data before you tinker with this, so you can perform a full image restore if it breaks Windows booting. The guide can be found in the source links below, use it at your own risk.

  • finalarbiter@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    22
    ·
    8 hours ago

    Using this driver, however, is fraught with risks. Not all NVMe SSDs support it, and if incompatible, it could break Windows 11 boot.

    Probably why it isn’t standard, especially since there’s a driver that does work even if it’s suboptimal.

    • deadcade@lemmy.deadca.de
      link
      fedilink
      English
      arrow-up
      19
      arrow-down
      1
      ·
      8 hours ago

      And obviously, there’s been no possible way to try loading the modern driver and if that fails, falling back to the legacy one.

      This is once again Microsoft refusing to improve performance, because that doesn’t directly increase profits.

      • finalarbiter@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        5
        ·
        7 hours ago

        That’s fair. I’m certainly not one to defend msoft, nor do I really have the technical knowledge to rebut. Is it possible that ‘trying’ the driver as you suggested could damage the drive or corrupt data? Just wondering if there’s a legitimate reason they wouldn’t go for a seemingly easy win aside from being a generally dumb organization.

        • deadcade@lemmy.deadca.de
          link
          fedilink
          English
          arrow-up
          9
          ·
          7 hours ago

          There’s always the option of gathering device info first, then using the appropriate driver. Either the SSD is in a “known supported models” list, or it reports support for whatever feature the new driver needs.

          It’s technically possible that straight up trying an unsupported driver can cause physical damage, but this can be avoided by carefully selecting the driver. From MS pov, they’d have to extensively test this driver on a bunch of SSDs and configurations, but it would lead to a performance improvement.

          • finalarbiter@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            10
            ·
            7 hours ago

            Ah, any developer who suggested that probably got the same answer I get at work: “Testing costs money, so unless we absolutely have to, no.”

    • pHr34kY@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      1
      ·
      5 hours ago

      So they can’t just write some probe code? It really can’t be that hard to determine if there’s support.

    • DokPsy@lemmy.world
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      1
      ·
      7 hours ago

      If only there was a way to do a check for compatibility on the os side for a standard that has been available since before the predecessor os was released and fall back to the older driver if it fails