本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:
http://blog.csdn.net/zuishikonghuan/article/details/50380313
正讲着驱动开发呢,这里突然插一篇Win32的博文,其实,还是做引子,上一篇博文“IRP与派遣函数”中,我们知道了驱动程序需要处理I/O请求,我们先来看看怎么发出一个I/O请求。
一般的程序不会直接去访问磁盘,毕竟有文件系统(FileSystem)帮助我们轻松地组织文件,但是有时候必须访问磁盘,因为文件系统隐藏了低层次的实现,linux人喜欢把文件系统叫做“虚拟文件系统(VFS)”,其实原因就在这里,比如我们把一个文件从一个分区复制到另一个分区(其实就是从一个分区中读取文件再向另一个分区写入文件,当然一般是分段读取写入的,或者是用虚拟内存(线性地址空间)映射文件),我们不需要关心磁盘上分区的组织方法,比如MBR格式或GPT格式,也不需要关心分区对数据的组织方式,不管是FAT32,NTFS,exFAT,ext2/3/4格式等等,这就是文件系统的魅力所在。咳咳,扯的有点远哈,回归正题,我们的目的是绕过文件系统,直接访问磁盘上的扇区,就像市面上的PE盘制作器一样ÿ