急问!!!如何在windows和linux下获取所有硬盘physicaldriveX???请大虾不惜赐教!!!

55015182 2007-11-13 11:50:55
windows下硬盘的编号为physicaldrive0表示第一个硬盘,physicaldrive1表示第二个硬盘...(考虑远程映射的硬盘,可能有很多)。
现在我需要通过程序得到连接我电脑的所有的physicaldrive,比如physicaldrive0,physicaldrive1,physicaldrive2全部列举出来。
通过CreateFile()一个一个physicaldriveX打开,用DeviceIoContrl()发出去的笨方法除外!
是否有API函数可以枚举呢,包括Linux下(用户态或者内核函数都可以),请大虾不惜赐教!!!
...全文
335 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
55015182 2008-01-18
  • 打赏
  • 举报
回复
BIOS?楼上的兄弟能否详细说明一下,现在AIX平台下的也解决了,就是用odmget可以得到。打开数据库CuDv和PdDv,查找class=disk。
循环就可以得到所有的磁盘。现在只剩HP一个平台还没有解决了。
sxcong 2008-01-11
  • 打赏
  • 举报
回复
不用那么麻烦吧,BIOS里面可以得到硬盘的数目。而所有的系统都能读BIOS的信息,从这点入手不就全解决了?
其他OS不知道, DOS和Windows读BIOS就是读指定端口信息,区别是Windows用驱动来读,DOS可以直接读。
我想LINUX等应该也有类似的办法。
55015182 2007-12-24
  • 打赏
  • 举报
回复
windows和linux的问题已经解决了,solaris的也解决了,还有HP和AIX的还没有搞定哦
afgkidy 2007-11-16
  • 打赏
  • 举报
回复
不这么清楚,可以通过读取盘的PID 什么的吧。
55015182 2007-11-15
  • 打赏
  • 举报
回复
Windows下面的问题我已经解决了,
通过SetupDiEnumDeviceInterfaces和SetupDiGetInterfaceDeviceDetail就可以枚举所有的硬盘路径,就可以打开设备文件下发SCSI命令了。
linux,Solaris,AIX的还没有解决,还请大虾指教!(一个笨的方法是写脚本执行fdisk -l或lsscsi得到)
不过我觉得应该有函数的
55015182 2007-11-14
  • 打赏
  • 举报
回复
GetLogicalDrives只能得到逻辑分区如C:D:等。
我需要的是物理硬盘physicaldrive
大熊猫侯佩 2007-11-14
  • 打赏
  • 举报
回复
windows下可以检查对象管理器的名称空间是否有对应名称。
ljkong 2007-11-14
  • 打赏
  • 举报
回复
Windows API中GetLogicalDrives可以得到驱动器多少

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧