基于sfilter的磁盘过滤驱动Win764位下硬盘关闭后再次唤醒时死机(非蓝屏)
具体环境,由于暂时没有签名证书,使用的是 一个签名工具签名,然后使系统以测试模式启动,从而加载了驱动。
我的驱动是基于一个FileSpy源码改编的。
我的驱动的行为主要是过滤移动存储设备的“磁盘设备”。
大多数情况下程序运行良好。就是偶然一次好长时间没有碰电脑,然后屏幕自动关了,按任意键后预期的显示器变亮情形没有出现,最后发现是死机了,但不是蓝屏,是显示器无信号,后来我在电源管理把关闭显示器改为从不,之后显示器确实不关闭,但是在从桌面打开我的电脑时死机了,鼠标能动,其他没反应。
我能想象得到的就是,硬盘唤醒这块导致的非蓝屏死机,因为我的驱动的功能就是sfilter的能力,别的也没干啥,就算其他设备的电源事件也不会和我的驱动有关吧,没有加hook功能什么的。卸载掉我的驱动后问题就不存在了,
我的驱动代码没有处理 MJ_IRP_POWER,直接 passthrough了。就是处理create,close,cleanup,deviceiocontrol,简单的几个irp。
这个代码已经测试过挺长时间了,目前除了“唤醒”这块,其他地方没啥大问题(当然不保证没有潜在问题,这不就遇到了吗)。我实在找不到问题出自哪里,哪位大神可以提供些线索让我知道下一步该怎么办?