[关键词]:过滤驱动,设备堆栈,绕过设备堆栈
[问题描述]:
需要分析读写驱动发往disk.sys的IO特征来为性能提升提供支持,因此准备做一个过滤驱动diskFilter attach到disk.sys设备栈,然后在过滤驱动里记录发往下层的读写IO信息。
工作流程都设计好了,准备开始编码了,突然发现不行,很可能没有效果。
为什么呢?
因为disk的设备堆栈可能从底向上为disk---PartMgr---diskFilter。但问题在于,处于安全性和效率的考虑,读写驱动直接绕过了上述的设备堆栈,直接列举出disk.sys的设备对象,然后把IO直接发到这些设备对象。
然后diskFilter就干等吧,啥也等不到,情形和法国的马其诺防线相似。