第十一章–文件系统的过滤与监控
陈铭霖&谭文
第十一章–文件系统的过滤与监控
像FAT32/NTFS这样的文件系统,主要生成两类设备.
首先文件系统驱动本身往往生成一个控制设备(control device object,CDO),这个设备的主要任务是修改整个驱动的内部配置.因此,一个文件西永只对应一个CDO.
另一种设备是这个文件系统的卷设备,一般一个卷对应一个逻辑盘.
一个FS可能有多个加载的卷,也可能一个都没有.
要注意,本身的卷设备也有卷管理器生成的设备对象,命名类似于\Device\HarddiskVolume1.
直接拿IoAttachDeviceToDeviceStackSafe绑定是不行的,因为这是一个真实的卷设备,而不是文件系统生成的卷设备.
我们要绑定的是文件系统生成的卷设备,在此之前,需要先绑定文件系统设备,在得到文件系统的卷设备.
对于文件的响应IRP,通常是发往文件系统生成的卷设备.换句话说,最终目标是绑定文件系统的卷设备,但先绑定文件系统的控制设备.
此图说明了userMode和KernelMode之间的通信
—待续