阅读:1548回复:3
各位大牛,谁能帮忙回答个简单问题,关于文件系统设备栈的
现在我提的这个问题估计对于某些人来说也比较简单,或许是这里许多大牛不屑一顾的,
然而我查了很多资料都没有提到,好像无意中就忽略了这个问题,而这又涉及到逻辑上对 文件系统的一个完整的理解。所以在这里问一下,希望已经了解的朋友给点思路,万分感谢! 问题是这样,起初我只想了解文件系统一个完整的irp流程, 举个例子,我就不写很详细了,大家应该都明白, 在我的机器上大约经过以下几个驱动所在的设备的irp栈: fltmgr->(fastfat,ntfs)的文件系统设备 volsnap->ftdisk卷设备 partmgr->disk的DR0设备->ACPI的某个设备->atapi的IdeDevicePotolo-x设备 大概是这三个irp栈 这三个栈上相关驱动的设备的IRP栈大小排列如下: 驱动 驱动创建的设备的IRP栈大小 fltmgr 对应硬盘的为9,U盘10 fastfat,ntfs 8 (只是FS设备,不是CDO) ------------------------------------------------ volsnap 7 ftdisk 6(HarddiskVolumex卷设备) ------------------------------------------------- partmgr 对应硬盘的为4,U盘6 disk DRX对应硬盘的为3,U盘为5 ACPI 对应硬盘的为2 atapi IdeDevicePotolo-x为1,这个应该是最底层了 那么这里从上往下排列,可以硬盘的整个设备栈过程少了一个 stack size = 5的一环。 然后又发现disk创建的设备中除了DR0代表整个硬盘外,还有一个类似DP(1)0x7e00...开头的 代表一个disk分区的设备,栈大小为5,这个应该可以作为补充的这一环。 可是很多资料都说,从ftdisk卷设备驱动往下调用的是partmgr驱动对应的设备,并没有经历DP(1)0x7e00...设备, 而且ftdisk在DeviceExtent中也只保存了partmgr和atapi对应设备的指针,那么DP(1)0x7e00... 这个设备起什么作用?ftdisk驱动HarddiskVolumex设备的下层设备到底应该是那个? 还有,为什么有些系统disk的类似DR0这样的设备会有一个RAW文件系统,而有些有系统又没有呢? 而且在设备树上可以看到RAW文件系统的MED会有很多个,基本上等于其MED设备的栈的大小个数。 因为我是初学,诸多疑问或许各位曾碰到过,望不吝赐教。 |
|
沙发#
发布于:2008-07-08 14:05
到底有没有人知道啊?我这个问题应该没有人问过把?
|
|
板凳#
发布于:2008-07-08 16:05
这论坛真凉快啊?怎么都没人回答问题?,自己顶,顶到问题解决为止~!
|
|
地板#
发布于:2008-07-09 09:16
。。。。。。。。。。。。。
|
|