Как определить тип хранилища (SSD или HHD. Механический диск), используя язык C - PullRequest
2 голосов
/ 11 ноября 2009

Как я могу из программы на C прочитать информацию об оборудовании привода? (То есть, чтобы определить, является ли накопитель SSD или механическим диском.)

Ответы [ 4 ]

17 голосов
/ 09 января 2010

SSD должны идентифицировать себя как не ротативные. Например, для linux вы можете получить информацию через sysfs:

cat /sys/block/sda/queue/rotational

Если возвращается 0, у вас есть SSD ...

1 голос
/ 11 ноября 2009

Рассматривали ли вы тест на чтение / запись, чтобы попытаться определить возможности?

0 голосов
/ 11 ноября 2009

Это предположение далеко, но я не могу найти ничего лучше. В структуре идентификации устройства проверьте, поддерживает ли оно акустическое управление. Старые диски не сделали, но, может быть, большинство современных дисков делают. Очевидно, что твердотельные накопители не нуждаются в акустическом управлении, но будем надеяться, что они скажут, что не делают этого, вместо того, чтобы притворяться дисководами.

0 голосов
/ 11 ноября 2009

Вы можете использовать метод GetDriveType из библиотеки win32, и вы можете отличить этот способ, или вы используете GetVolumeInformation, чтобы попытаться определить его по метке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...