~2.5-4x RND4K regression with DiskCryptor on Windows 11 25H2 - happens on fresh 2.0.1 volumes and non-system volumes too

mike099

New member
Hi David,

I have a well documented performance regression of DiskCryptor volumes on Windows 11 25H2. I spent a day isolating it layer by layer on one machine and I think the dataset is clean enough to be useful. As far as I can tell (searched the github issues, this forum and the web) nobody has documented this yet, so posting it here. Happy to provide traces or run more tests.

Environment
  • ASUS ROG Strix SCAR 16 G635LX, Core Ultra 9 275HX (8P+16E), Windows 11 Pro 25H2 build 26200.8894 (upgraded from 24H2 on 2026-05-15)
  • C: = Samsung 9100 PRO 4TB (PCIe 5.0), NTFS, DiskCryptor system encryption (AES-XTS) since July 2025
  • DiskCryptor 2.0.1 now. The regression was first measured while still on the old 1.x driver (dcrypt.sys built 2024-02-15) and is identical on 2.0.1

Numbers (CrystalDiskMark 8.0.6, default profile 512MiB, RND4K Q32T1, MB/s read / write)
1786551119274.png

A few things stand out:
  • the unencrypted 25H2 partition matches my 2025 native baseline *exactly* at RND4K Q1T1 (95.3 vs 93-96) and SEQ1M Q1T1 (9236/9637 vs ~9200/9600), so the OS storage stack by itself is nearly innocent
  • a freshly created 2.0.1 volume pays the same tax as my 2025-era in-place converted system volume (121.6 vs ~100-112). So its not the header format, volume vintage or the boot chain
  • SEQ1M Q8T1 is unaffected (~12-14 GB/s everywhere). DCs single-stream SEQ1M Q1T1 cost got worse too (4.5-4.9 GB/s on 24H2 -> 3.4-4.7 on 25H2, reads worst)


Per-IO cost (RND4K QD32, microseconds per command)
1786551186325.png
So DC's own per-command surcharge roughly **tripled** with the OS upgrade. The workload is CPU bound (DiskSpd shows one P-core 97% kernel saturated at 178K IOPS raw), so per-IO overhead cuts IOPS linearly. QD1 tells the same story: +16 us (24H2) -> +29-38 us (25H2) per round trip.

What I eliminated (each verified, not assumed)
  • the SSD: raw 4K QD32 on \\.\PhysicalDrive = 695 MB/s / 178K IOPS, full native speed. SMART clean
  • DC version: FilterManager events prove the first slow runs executed on the old 2024-02-15 build, and 2.0.1 measures the same. Cipher benchmark: AES-XTS 35.3 GB/s, so crypto throughput is never the ceiling
  • volume header / in-place conversion / bootloader: a fresh 2.0.1 data volume on a fresh partition pays the same tax. Also reproduced on a non-system data volume on a second drive over USB (SK hynix PC801 in a 10Gbps enclosure): DC adds +17-29 us per 4K command there as well, and the boot chain plays no role for that one
  • antivirus + Sandboxie-Plus: disabling both recovers only ~10-15%
  • all third party minifilters: Safe Mode (dcrypt + bare OS) measures the same ~95-100
  • VBS: HVCI and kernel shadow stacks both verified OFF (SecurityServicesRunning = {0}), still ~107/116
  • the base 25H2 storage stack alone: see the fresh partition row, only ~+3 us/IO and QD1 latency unchanged. The collapse needs dcrypt in the path

Possibly related context
25H2s storage/crypto internals are visibly in motion: the new opt-in Microsoft NVMe driver breaks VeraCrypt FDE boot (their #1640), VeraCrypt is collecting 25H2 read/write error reports (#617), and Microsoft moved BitLocker toward hardware acceleration in 25H2 citing software encryption overhead. My data says the base stack itself only moved slightly, but something in how 25H2 services a volume-filter encryption drivers IO path got ~3x more expensive per request.

Questions
1. Is this known? Are there measurements of dcrypts per-request path on 26200 vs 26100?
2. Anything in how dcrypt attaches / processes IRPs (completion routine depth, stack locations, allocation paths, in-place processing) that 25H2s storage/FltMgr changes would penalize? It looks like a per-IRP fixed cost increase that needs dcrypt in the path but no particular volume type
3. Any tuning available or planned (request coalescing / queueing)? Would a WPR/xperf CPU sampling trace of the 4K workload help? Happy to capture one on 25H2 (I dont have a 24H2 machine anymore, but the fresh partition control brackets the OS side)

Thanks for DiskCryptor and the 2.0 work ☺️
 
Back
Top