阅读:740回复:0
一个CreatFile的问题(十万火急)
过程如下:
原来的驱动处理流程如下: 1,Create 2,Read 3.Close 4,Create 5。。。。。。。 这个是个顺序过程,现在我的过滤驱动在第3时,假设文件已关闭,此时我的过滤驱动把文件独占打开了,并进行操作了,会出现什么情况? 我的分析如下,大家帮看看: Create是个同步的请求, 我的Create打开后返回,但文件其实可能 正被操作,此时上层的应用程序的Create请求,就返回false了。 我提出的解决方案如下: 当我的过滤驱动处理时, 我先把文件名记录下来,此时上层的应用程序下发的 IRP被我用信号量阻塞,等待我处理完成后,再下发这个irp. 存在问题如下: Create 这个是同步的,假设 A 发的irp被我的过滤驱动阻塞了, 随后的B,C 的 IRP不是也被阻塞了吗?系统看起来像死机了? |
|
|