阅读:2430回复:13
如何读取磁盘引导区数据??
我是驱动开发的新手,现有问题请教各位大侠:
我现在要做一个 C 程序,要求读出各逻辑盘(包括 USB 接口的 FLASH盘)上的系统分区表,并分析其数据内容。 以前没有做过这方面的东东,不知如何下手,请指点,如何操作, 应该从那方面着手啊? |
|
最新喜欢:![]() |
沙发#
发布于:2003-07-30 14:26
在什么操作系统下?如果在2K可以直接CreateFile, ReadFile。
|
|
板凳#
发布于:2003-07-30 14:47
是在纯 C 环境下面,如何操作系统硬盘呢?
不能使用任何 windows API |
|
地板#
发布于:2003-07-30 14:48
我需要直接读取指定的 磁盘 扇区上面的数据,
怎样可以实现啊 |
|
地下室#
发布于:2003-07-30 15:29
如果不使用API,那就需要自己调用INT13的中断功能。寄存器AH=42H时可以读取指定扇区的内容,AH=43H可以向指定扇区写内容。其他寄存器中的参数自己去查资料。
|
|
5楼#
发布于:2003-07-30 15:52
谢谢,
这是采用嵌入在C语言中的 汇编语言 操作的吧?? 使用纯C语言如何实现呢? 或者C语言如何调用中断?? |
|
6楼#
发布于:2003-07-30 18:22
和语言没有关系吧,和你的操作系统环境有关系
你如果在Windows下,最好用CreateFile,Windows下不能直接调用Int 13读(9x下可能可以) |
|
7楼#
发布于:2003-07-31 18:26
其实U盘(FLASH)和硬盘只是介质不同,移动硬盘与本地硬盘只是一个标志位不同。分区表是想类似的。只是C,H,S的数值不同。U盘用
BUS BOUND可以在上电是抓到你想要的所有数据,无须任何代码。 |
|
8楼#
发布于:2003-08-01 09:32
发表于: 2003/7/31 - 18:26 其实U盘(FLASH)和硬盘只是介质不同,移动硬盘与本地硬盘只是一个标志位不同。分区表是想类似的。只是C,H,S的数值不同。U盘用 BUS BOUND可以在上电是抓到你想要的所有数据,无须任何代码。 ―――――――――――――――――――――――――――――― 得到大家指点,知道了基本的做法了, :-) to Yss: 你说的我明白一部分,对电路部分不太清楚, 在那里可以找到相关的资料呢? 在这里先谢谢了 |
|
9楼#
发布于:2003-08-04 18:27
本站USB驱动论坛有。你SEARCH 一下。
|
|
10楼#
发布于:2003-08-05 12:47
感谢各位,我要好好学习天天进步
:D |
|
11楼#
发布于:2003-08-11 10:31
使用 CreateFile 可以读取 2000下面的分区信息,
使用 dos 中断 int25,或者bios中断都不能读取 2000下的磁盘扇区,2000下面对系统扇区进行了读写 保护。 具体 API 用法见 MSDN。 |
|
12楼#
发布于:2003-08-18 17:14
我也在做类似的东东。但是不知本地硬盘和移动硬盘的区别
例如:在2k下用createfile(//./phycaldevidce0,,)可以读本地硬盘ide0的信息,而对移动硬盘要怎样读 |
|
13楼#
发布于:2003-08-19 08:29
读取移动硬盘和读取本地硬盘方法一样,直接指出盘符可以
|
|