windows上如何判断固态硬盘和机械硬盘?

[复制链接]
  • TA的每日心情
    奋斗
    2015-12-29 10:41
  • 签到天数: 253 天

    [LV.8]三品御史

    16

    主题

    312

    回帖

    1601

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    1601
    发表于 2015-7-9 11:44:45 | 显示全部楼层 |阅读模式
    1、getdisktype这个返回类型太简单无法判断
    2、WMI服务,我返回了所有属性值,没有可以判断的
    3、网上有人说发送ATA命令,通过返回数据的word217来判断有没有转速,但是本人本机机械盘和固态盘返回值word217都是0
    本人已经黔驴技穷了,求助,但是本人觉得可以通过转速这个属性来判断是不是固态硬盘,但是转速属性如何获取?
  • TA的每日心情
    奋斗
    2015-12-29 10:41
  • 签到天数: 253 天

    [LV.8]三品御史

    16

    主题

    312

    回帖

    1601

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    1601
     楼主| 发表于 2015-7-9 17:26:29 | 显示全部楼层
    找了个折中的方案,判断磁盘的TRIM属性来判断磁盘是否是固态硬盘,实现的函数还是发送ATA的函数DeviceIoControl,其中ICOTL选项是IOCTL_STORAGE_QUERY_PROPERTY,输出数据的结构体为DEVICE_TRIM_DESCRIPTOR,这个可以到MSDN上查找下相关函数使用的指导https://msdn.microsoft.com/en-us/library/windows/desktop/ff800830(v=vs.85).aspx
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    472

    主题

    532

    回帖

    1万

    积分

    [INTOHARD]旅长

    Rank: 9Rank: 9Rank: 9

    积分
    16542
    发表于 2015-7-9 22:50:12 | 显示全部楼层
    为什么要区分固态硬盘和机械硬盘呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-29 10:41
  • 签到天数: 253 天

    [LV.8]三品御史

    16

    主题

    312

    回帖

    1601

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    1601
     楼主| 发表于 2015-7-10 14:55:28 | 显示全部楼层
    csdn 发表于 2015-7-9 22:50
    为什么要区分固态硬盘和机械硬盘呢?

    要求就是这样。。。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表