-
-
[求助]firadisk源码修改
-
发表于:
2012-11-4 22:35
4532
-
firadisk可以识别grub生成的内存虚拟磁盘,提供给windows系统调用,从而可以由grub映射
内存虚拟磁盘,由firadisk在windows系统下识别,由此可以制作完全的ramos系统。ramos
系统由于完全运行在内存中,效率很高,可以拔掉所有的磁盘完全在内存中运行。
我想制作一个ramos ,但是使用firadisk的过程中,发现了问题,但目前个人无法解决,希望哪位
大牛能指点磁盘驱动程序的原理,我自己进行源码修改都可以。
问题就是,firadisk在识别内存磁盘的时候,我不清楚它识别磁盘以后获得磁盘驱动器盘符的算法,
感觉到它获得的磁盘驱动器盘符很混乱。比如启动盘是C盘,我有时候因为是vhd系统,也把启动
盘设置为V盘,而启动盘是不能变更的,否则系统加载其他的驱动程序,都是根据盘符来加载的,
比如加载c:\windows\system\ddd.sys,如果c:的盘符更改为了D:,那么系统启动的时候就会
找不到驱动程序,造成启动失败。firadisk的问题正是在此,我有时候系统的启动盘符为V:。但
firadisk识别出的内存虚拟盘识别成功了,但是它可能把这个虚拟盘设置为盘符为E:或者其他什么
盘符,造成我的系统从V:盘寻找启动文件寻找不到,因为此时没有V:盘,只有一个E:盘。所以造成
启动失败。这就是我使用firadisk的时候发现的问题。
现在问题是发现了,我找到了firadisk的源文件,可是我不太明白firadisk驱动程序的工作原理,
也不明白是哪个api获取系统盘符,如果知道了获取系统盘符的那一段源代码,就可以修改了,
使firadisk识别内存虚拟磁盘以后,使用我指定的盘符比如V:盘来正常工作,这样,整个的ramos
就可以正常启动了。
现在请哪位大牛指点我磁盘驱动程序的工作原理和相应的api,我好修改此源文件,非常感谢。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课