sunnywind
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2005-08-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2431回复:13

如何读取磁盘引导区数据??

楼主#
更多 发布于:2003-07-30 13:34
我是驱动开发的新手,现有问题请教各位大侠:

我现在要做一个 C 程序,要求读出各逻辑盘(包括 USB 接口的 FLASH盘)上的系统分区表,并分析其数据内容。

以前没有做过这方面的东东,不知如何下手,请指点,如何操作,
应该从那方面着手啊?

最新喜欢:

rhpengrhpeng
sunnywind
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2005-08-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-19 08:29
读取移动硬盘和读取本地硬盘方法一样,直接指出盘符可以
prolead
驱动牛犊
驱动牛犊
  • 注册日期2002-06-13
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-18 17:14
我也在做类似的东东。但是不知本地硬盘和移动硬盘的区别
例如:在2k下用createfile(//./phycaldevidce0,,)可以读本地硬盘ide0的信息,而对移动硬盘要怎样读
sunnywind
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2005-08-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-11 10:31
使用 CreateFile 可以读取 2000下面的分区信息,
使用 dos 中断 int25,或者bios中断都不能读取
2000下的磁盘扇区,2000下面对系统扇区进行了读写
保护。

具体 API 用法见 MSDN。

sunnywind
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2005-08-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-05 12:47
感谢各位,我要好好学习天天进步
 :D
Yss
Yss
驱动牛犊
驱动牛犊
  • 注册日期2002-01-29
  • 最后登录2005-06-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-04 18:27
本站USB驱动论坛有。你SEARCH 一下。
sunnywind
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2005-08-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-01 09:32

 发表于: 2003/7/31 - 18:26
其实U盘(FLASH)和硬盘只是介质不同,移动硬盘与本地硬盘只是一个标志位不同。分区表是想类似的。只是C,H,S的数值不同。U盘用
BUS BOUND可以在上电是抓到你想要的所有数据,无须任何代码。
――――――――――――――――――――――――――――――
得到大家指点,知道了基本的做法了,
:-)

to Yss:
你说的我明白一部分,对电路部分不太清楚,

在那里可以找到相关的资料呢?
在这里先谢谢了
Yss
Yss
驱动牛犊
驱动牛犊
  • 注册日期2002-01-29
  • 最后登录2005-06-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-31 18:26
其实U盘(FLASH)和硬盘只是介质不同,移动硬盘与本地硬盘只是一个标志位不同。分区表是想类似的。只是C,H,S的数值不同。U盘用
BUS BOUND可以在上电是抓到你想要的所有数据,无须任何代码。
luowei74
驱动小牛
驱动小牛
  • 注册日期2003-07-21
  • 最后登录2007-04-16
  • 粉丝0
  • 关注0
  • 积分162分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-30 18:22
和语言没有关系吧,和你的操作系统环境有关系
你如果在Windows下,最好用CreateFile,Windows下不能直接调用Int 13读(9x下可能可以)
sunnywind
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2005-08-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-30 15:52
谢谢,
这是采用嵌入在C语言中的 汇编语言 操作的吧??

使用纯C语言如何实现呢?
或者C语言如何调用中断??
luxs200
驱动牛犊
驱动牛犊
  • 注册日期2001-07-23
  • 最后登录2015-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-07-30 15:29
如果不使用API,那就需要自己调用INT13的中断功能。寄存器AH=42H时可以读取指定扇区的内容,AH=43H可以向指定扇区写内容。其他寄存器中的参数自己去查资料。
sunnywind
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2005-08-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-07-30 14:48
我需要直接读取指定的 磁盘 扇区上面的数据,
怎样可以实现啊
sunnywind
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2005-08-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-07-30 14:47
是在纯 C 环境下面,如何操作系统硬盘呢?
不能使用任何 windows API
luxs200
驱动牛犊
驱动牛犊
  • 注册日期2001-07-23
  • 最后登录2015-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-07-30 14:26
在什么操作系统下?如果在2K可以直接CreateFile, ReadFile。
游客

返回顶部