[Firmware bug] SN850x 4TB firmware bug for "Virtual Memory / Pagination File" on Windows 10 and above

I suspect that there is some kind of 32-bit LBA limitation in one of the drivers.

The IDEMA standard capacity of a 4TB SSD is 7814037168 sectors.

A 32-bit LBA limit would cause the driver to report a capacity of …

4TB - 2TiB = (7814037168 x 512 bytes) - 2 TiB = 1 718 295.84 MiB

This number is very close to the maximum in your screenshot.

A 2TB SSD would not be affected because its capacity falls within 32 bits.

Thanks @fzabkar that would make a lot of sens. TY

Could WD compile the code in 64 bits to get over the 32 bit limit or is it hardware limitation on those drives? thought I would think a 4TB drive will have the proper controllers.

Sometime back I ran the test with only the 4TB drive but I can not remember anymore if I was limited to 1.7TB or if I was able to allocate 3.7TB. I think it was limited to 1.7TB but I will need to test again to verify. Give me a bit of time as I need to travel for the next 3 weeks at the end of this week. I might try before leaving but I’m not sure I will have free time to QA for WD.

May be someone from WD could try and report.

Thanks again!
w

For fun I asked Copilot

I think the problem is at Microsoft’s end, not WD. Or it could be that you are using third party drivers.

In short, it looks like a software issue rather than firmware.

Thanks @fzabkar , I’m using default Windows 10 Pro and WD drivers (and WD firmware for the drive)
I will ping a mircrosft forum to see
Thanks!

Here is a better (?) explanation:

7 814 037 168 = 0x1 D1C0BEB0 = 0b1 11010001 11000000 10111110 10110000
^^^^^^^^^^^^^     ^^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 decimal         hexadecimal       binary (33 bits)

As you can see, a capacity of 4TB (7814037168 sectors) requires 33 bits to report the total sector count.

If the driver or software can only accommodate 32 bits, the leading “1” bit is discarded.

Therefore …

0b1 11010001 11000000 10111110 10110000 (33 bits) reduces to 0b 11010001 11000000 10111110 10110000 (32 bits), which equals 3519069872.

3519069872 sectors x 512 bytes per sector = 1 718 295.84 MiB

I use Windows 11 and GPT partitions which support more than 18EB

I do not mess with virtual memory as Windows 11 manages it fine

I usually use TLC for the main SSD and TLC/QLC for secondary storage