• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

How does windows decide if a drive is HDD or SSD ?

Joined
Oct 24, 2020
Messages
486 (0.29/day)
Location
Belgium
System Name MSi Coffee Lake
Processor i7-8700k
Motherboard MSI Z370 GAMING PRO CARBON AC
Cooling NZXT something AIO loop
Memory 16GB Kingston HyperX 2133 C14 Fury Black
Video Card(s) TITAN Xp Jedi Order Edition
Storage Samsung 960 Evo NVMe
Display(s) Medion 23'
Case Cooler Master Stryker
Audio Device(s) onboard
Power Supply BeQuiet 600W
Mouse Logitech Trackman T-BB18
Keyboard Generic hp
Software Windows 10
I have a somewhat older system with a SATA SSD drive in it and I wanted to optimize the drive.
When doing so , I saw that mediatype in file explorer properties was labeled as Hard disk drive , and it looked as if windows was actually defragmenting it rather than trimming.

So I am wondering where does windows keeps track if drives are HDD or SSD , and how can I go about to maybe correct this.
I have windows 10 pro by the way , not server edition as mentioned in the article below.

Edit:
Found this article: What To Do When Windows Identifies Disks Incorrectly

There are these PowerShell commands one can get and set the mediatype of a drive:

Get-PhysicalDisk | Select-Object FriendlyName, MediaType, Size
Turns out I have Unspecified MediaType

Set-PhysicalDisk –FriendlyName "yourdiskname" -MediaType SSD ( <= OK, need to enclose the name in "quotes" when it contains spaces )
I managed to rename the FriendlyName in a NewFriendlyName containing no spaces , and then I was able to set the MediaType to SSD

PS C:\Windows\system32> get-physicaldisk

Number FriendlyName SerialNumber MediaType CanPool OperationalStatus HealthStatus Usage Size
------ ------------ ------------ --------- ------- ----------------- ------------ ----- ----
0 Samsung860EVO XXXXXXXXXXXXXX SSD False OK Healthy Auto-Select 465.76 GB
5 Msft Virtual Disk Unspecified False OK Healthy Auto-Select 8 GB

but the change does not persist , after reboot , windows still reports the SSD back as HDD and in powershell, get-physicaldisk MediaType reports back as unspecified.

The article mentions that the command will only work if the physical disk is a member of a storage pool, I guess in a server environment.
 
Last edited:
I have the same problem on various computers, here on one of my computers, it shows everywhere HDD and Standard Disk Drives.
Even in the task manager it shows i have a HDD installed

Yet when i look to optimize drives section, it knows it is a SSD installed. And it does not defragment but only Trim the SSD.

Screenshot 2024-02-23 115203.jpg



Screenshot 2024-02-23 115433.jpg


As long as it shows SSD in the optimize windows it's okay. But i see it shows this with all SATA drives, anyway windows knows it is a SSD and treated it as such.
 
In your motherboard's UEFI or BIOS, there is often an option in the drive options to choose Drive Type as 'Hard Disk Drive' or 'Solid State Drive'. I would start by looking there to see what options are available and what you have selected.
 
That is a normal showing from Windows on all drives that are SATA. As said if it shows SSD in the optimize windows, it's all okay. No firmware or driver changes this.
 
  • Like
Reactions: bug
That is a normal showing from Windows on all drives that are SATA. As said if it shows SSD in the optimize windows, it's all okay. No firmware or driver changes this.
It shows up as HDD in the optimize window.

I was looking to correct a registry entry maybe to adjust the drive as SSD.
 
Last edited:
Strange thing, i now booted like you with an 860EVO, and it shows this.

Screenshot 2024-02-23 135137.png
 
Ah i think i know, if you ever changed or cloned from hdd to ssd it keeps showing HDD i see, and vice versa.
On a new windows installation it always shows correct type. My first post was in windows 10, the one above is windows 11.

But how one could change this i have no idea really.

Ah yes but it's not the same i see, yours is SATA my 860EVO is an M.2 SSD but connected with SATA. So it's not an 860EVO PCIe drive, just M.2 SATA drive.
 
Ah i think i know, if you ever changed or cloned from hdd to ssd it keeps showing HDD i see, and vice versa.
On a new windows installation it always shows correct type. My first post was in windows 10, the one above is windows 11.

But how one could change this i have no idea really.
Maybe a hardware change will trigger the identification of the storage.
I did run a winsat formal , but it didn't help either.

I think the BIOS is just to old :)
 
I wonder what it would show if you installed windows over again, in your case.

Just tested this, if you had a HDD and change to SSD, it keep showing HDD. But if optimize shows SSD, then you are good to go. I never have seen a PC that shows HDD even in optimize with a SSD. What does your bios shows as sign? In my case Bios shows 860EVO M.2 SATA at boot.
 
Last edited:
Ah i think i know, if you ever changed or cloned from hdd to ssd it keeps showing HDD i see, and vice versa.
On a new windows installation it always shows correct type. My first post was in windows 10, the one above is windows 11.

But how one could change this i have no idea really.

Ah yes but it's not the same i see, yours is SATA my 860EVO is an M.2 SSD but connected with SATA. So it's not an 860EVO PCIe drive, just M.2 SATA drive.
The nitpicker in me has to add this: anything using the M.2 connector is a PCIe device. SSDs can use either the AHCI protocol (developed for SATA, but works over PCIe as well), or NVMe protocol (developed for SSDs, not PCIe per se, cuts back on protocol overhead compared to AHCI).
 
Windows determines a drive's classification based on a performance assessment. You can get it to reclassify that drive by performing the assessment again by running the winsat formal or winsat diskformal commands.

More info here: https://learn.microsoft.com/en-us/p...ows-server-2012-r2-and-2012/cc742157(v=ws.11)

If your SSD is still being classified as a HDD after re-running those assessments you may want to ensure nothing is eating up your drive's IO and check it's health status as you should not be getting HDD level performance on an SSD, particularly as the assessment looks at seek speed which should be vastly better on even the worst SSD.
 
In Task Manager (not sure about other places), Windows figures out if a drive is an SSD or HDD by how fast it is. This can cause problems for really really old SSDs that aren't faster than HDDs, but those are not common and typically very bad. 64MB IDE SSD anyone?
 
In Task Manager (not sure about other places), Windows figures out if a drive is an SSD or HDD by how fast it is. This can cause problems for really really old SSDs that aren't faster than HDDs, but those are not common and typically very bad. 64MB IDE SSD anyone?

OP lists an Samsung 860 Evo

PS C:\Windows\system32> get-physicaldisk

Number FriendlyName SerialNumber MediaType CanPool OperationalStatus HealthStatus Usage Size
------ ------------ ------------ --------- ------- ----------------- ------------ ----- ----
0 Samsung860EVO XXXXXXXXXXXXXX SSD False OK Healthy Auto-Select 465.76 GB
5 Msft Virtual Disk Unspecified False OK Healthy Auto-Select 8 GB

Performance should definitely be enough notwithstanding potential unknown variables specific to this situation.
 
I did indeed reran winsat formal but this didn't help.
If I recall correctly it had around 220 MB/s sequential and 67 MB/s random speeds.

when using winsat disk instead of winsat diskformal (as I used) , i get more results , i.e. I get write speed and latency times as well.
But the drive is still identified as a HDD in the optimize screen.
 
Last edited:
In Task Manager (not sure about other places), Windows figures out if a drive is an SSD or HDD by how fast it is. This can cause problems for really really old SSDs that aren't faster than HDDs, but those are not common and typically very bad. 64MB IDE SSD anyone?
No need. QLC will do the trick ;)
 
In my case 860EVO shows this;

Screenshot 2024-02-23 152540.png


It's really not a PCIe SSD, because on the card it ends up with a SATA connector, but the drive itself is M.2
It just takes it's power via the PCIe slot.

860.jpg
 
Last edited:
I did indeed reran winsat formal but this didn't help.
If I recall correctly it had around 220 MB/s sequential and 67 MB/s random speeds.

when using winsat disk instead of winsat diskformal (as I used) , i get more results , i.e. I get write speed and latency times as well.
But the drive is still identified as a HDD in the optimize screen.

Those speeds are not very good. They are about the same as what my 20TB Seagate Exos HDDs get. What kind of latency times are you seeing? At the very least the latency should be several times better than a HDD.
 
Hi,
Think win-10 and 11 screw up drive permissions so much that swapping into another machine the prior permissions block scanning
I've been reforming quite a few hdd's and ssd's and a couple ssd's were seen as hdd's after formatting when I just tried to force trim on win-11 using drive optimization...

But also 10-11 have a knack of corrupting recycle bins on drives as well on hdd's and ssd's
I turn the damn recycle bins off always, useless feature, but still get this nonsense message, recycle bin is corrupt would you like to empty it lol
Yeah please dumb fucks it's supposed to be disabled but this again is probably linked to other windows permission issues.
 
This is the speed of my 860EVO M.2 solution in this PC. Has Windows 11 installed on it.

Screenshot 2024-02-23 163958.png
 
In my case 860EVO shows this;

View attachment 336017

It's really not a PCIe SSD, because on the card it ends up with a SATA connector, but the drive itself is M.2
It just takes it's power via the PCIe slot.
It is a PCIe SSD, M.2 only connects to PCIe: https://en.wikipedia.org/wiki/M.2
PCIe itself is a serial protocol and can transport any number of other protocols (e.g. AHCI or NVMe), but whatever you connect to it, is a PCIe device.
 
You have a PCIe using AHCI protocol, this is an legacy SATA SSD.

Legacy SATA
Used for SATA SSDs, and interfaced through the AHCI driver and legacy SATA 3.0 (6 Gbit/s) port exposed through the M.2 connector.

So this is not an PCIe SSD.

Samsung sells one that uses AHCI trough the PCIe, then it's called 860EVO PCIe M.2.
 
Those speeds are not very good. They are about the same as what my 20TB Seagate Exos HDDs get. What kind of latency times are you seeing? At the very least the latency should be several times better than a HDD.
average read time with sequential writes: 0.3 ms (don't know if this makes any sense , just my translation into english)

Latencies are as follows:
95th percentile: 0.5 ms
maximum: 3.4 ms
 
Last edited:
average read time with sequential writes: 0.3 ms (don't know if this makes any sense , just my translation into english)

Latencies are as follows:
95th percentile: 0.5 ms
maximum: 3.4 ms

Those times seem perfectly normal for an SSD. I have to wonder if the low sequential speeds are keeping windows from classifying the drive as an SSD or if there's just some bug / variable we aren't seeing.

Make sure that you have the latest firmware installed for your drive and run chkdsk / dism. It may also be beneficial to ensure your windows version is up to date.
 
Back
Top