FastIo问题

         FastIo问题(张佩)

    昨天写了一个过滤驱动,代码很简单,感觉不可能有问题。编译好后放到虚拟机里运行,并且用SoftIce跟踪,一切都很好。但一旦把SoftIce关掉,就有可怕的页错误跳出,系统也将因此而宕掉。对此我既郁闷又生气,一时不知错自何出,后来丢它不管,下班后在路上又想了半天,竟也没有什么头绪。

    今天早晨来公司后翻看手头的书,本未特意查找,却突然看到FastIoDispatch几个字,我立刻电花火石一般地意识到,昨天的代码里忘记初始化FastIo列表了。惭愧惭愧,我也不迟疑,立刻加了代码,再次调试,代码终显无恙。

    FastIo是快速IO通道,Office的读写就是通过它进行的。文件过滤驱动里面,这个指针必须初始化,如果不准备自己做处理,一般就丢给下一层驱动(调用它的FastIo函数)。其实我写文件过滤驱动,从来都不管这套接口,这也就是我终于忘记初始化它的原因了。系统在调用FastIO函数的时候,没有考虑到未初始化的情况,也不会因为FastIO接口未初始化,而转用IRP接口。这是不是也可以认为是系统有不完善的地方呢?

    很多人写驱动都有自己的框架代码,备份于某处,需要写新代码的时候直截把框架拿过来添加新代码就可以了。这样就应该能避免类似的记忆漏洞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值