首页
社区
课程
招聘
请教一个技术问题
2004-6-8 09:38 4283

请教一个技术问题

2004-6-8 09:38
4283
请问在Windows下如何判断系统盘为IDE硬盘还是SCSI硬盘?查了半天MSDN也没什么头绪。如果有做过这方面研究的兄弟,还请赐教,谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 5
打赏
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
圣堂武士 2004-6-8 10:31
2
0
首先需要得到系统盘在\\\\.\\phsicaldriveXX上。
然后用deviceIoControl()
control code=IOCTL_STORAGE_GET_MEDIA_TYPES_EX
再根据返回的结构,取得该设备的bus类型,BusTypeAta就是IDE硬盘,BusTypeAtapi就是SCSI。
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
netspy 2004-6-8 16:39
3
0
我其实现在用的也是类似的方法,不过有几个问题:

1、IOCTL_STORAGE_GET_MEDIA_TYPES_EX仅Windows XP/2003可用,在98/NT/2000下就无能为力了。
2、我现在使用的是IOCTL_STORAGE_QUERY_PROPERTY,采用返回的STORAGE_DEVICE_DESCRIPTOR结构中的BusType参数来判断,不过我测了几台SCSI硬盘的机器,一般返回的BusType为BusTypeScsi,但有一台Dell的服务器返回的是BusTypeFibre,真是奇怪。
3、BusType返回BusTypeAta或BusTypeAtapi都应该是IDE硬盘吧?
游客
登录 | 注册 方可回帖
返回