访问硬盘(四)
来源:互联网 发布:c语言中!a是什么意思 编辑:程序博客网 时间:2024/05/16 19:27
下面我们来实现IDEHardDrive这个类。IDEHardDrive将真正和硬盘硬件打上交道,假如你已经忘了该如何操作硬盘,请参考前面的介绍。
废话少说,我们先来看构造函数
大家看到这里我们include了一个叫intrin.h的头文件。这个头文件是一个VC标准头文件。里面声明了一些编译器内置函数,比如端口读写等等。我们使用了这些函数就可以不用内嵌汇编来读写端口了。
构造函数非常简单,仅仅初始化了IDE的端口基地址,对于第一个IDE控制器来说,这个基地址是1F0。对于第二个IDE控制器来说,这个基地址是170。用这种方式,我们就避免了硬编码端口地址,从而可以支持多个IDE控制器。当然,这里我还没有加上主从盘的区别,这里我们只支持硬盘挂在主盘的位置上,读者有兴趣可以将其改为支持从盘。
接下来我们来看看我们要如何打开一个硬盘。打开硬盘时我们需要做什么初始化工作呢?
这里我们看到,当打开一个硬盘的时候,我们读出了硬盘分区表。ReadBlock函数我们后面会介绍到,它将把制定的一个扇区读到buffer处,然后从里边得到硬盘分区表数据并存入m_PartitionTables数组。
有了分区表数据后,我们就可以枚举分区了。
枚举分区时,我们将依次检查4个分区表项。假如分区存在,我们就为其创建一个主分区对象,并把这个主分区对象加入返回的分区集合。另外,删除分区和修改分区暂时没有用,我们就不实现了,大不了抛出一个异常了事。读者可以自己来写代码,这里我就不多写了。
- 访问硬盘(四)
- 访问硬盘(一)
- 访问硬盘(二)
- 访问硬盘(三)
- 访问硬盘
- 一次内存访问、SSD 硬盘访问和SATA 硬盘随机访问的时间(腾讯2017实习生题目)
- dos启动盘访问硬盘
- dos启动盘访问硬盘
- 手机如何访问电脑硬盘?(无需数据线)
- 硬盘可以并行访问吗
- 硬盘拒绝访问必杀技-----转载
- C# 2005 数据库访问(四)
- C# 接口(四 访问接口)
- (一四〇)访问控制:protected
- 接口(四)访问接口
- 打开被独占的文件方法(三) -- 使用直接硬盘访问读取文件
- Linux主机VMWare访问物理硬盘方法
- 桌面快捷访问硬盘各分区
- 安装工作站
- IBM 三款SOA产品介绍
- Linux内核具体体系结构之虚拟文件系统
- OPS调用RTDB接口示例
- ie中下载文件框中的文件名为“download.do”的解决办法
- 访问硬盘(四)
- Windows中的路径在程序中写法
- 8月编程语言榜:.Net前景如何?
- 安装各种未知设备驱动程序
- 安装网卡及网络协议
- 一个很有意思的游戏网站,喜欢玩游戏的加入,内部邀请链接注册
- 组建仅一个工作组的对等网
- JBOSS5.0 安装与配置详解
- 组建多个工作组的对等网