我正在开发一个操作系统可移植程序,该程序将受益于检测物理存储设备是 SSD 还是普通的旧旋转磁盘。
在 Linux 上有:
/sys/block/sdX/queue/rotational
如果是 SSD,则返回 0 或 1,但我不确定这是否是最好的方法。
在 Windows 和 UNIX 上,我还没有找到任何检测方法,也许我应该使用ioctl DEVICE_SEEK_PENALTY_DESCRIPTOR
并检查搜索速度(在 SSD 存储设备上应该非常低),或者可能用于DeviceIoControl
检查标称媒体旋转速率(这也应该在 SSD 存储设备上非常低)。
关于如何在与 POSIX 兼容的操作系统上检测 SSD 磁盘的任何建议?