IoCancelIrp的具体实现为1.得到Cancel自旋锁2.Irp->Cancel=TRUE3.以原子方式得到Irp->CancelRoutine的值c并设置Irp->CancelRoutine为NULL4.如果c不为NULL则调用c,否则释放Cancel自...
全文
回复(1) 2009-12-23 09:38 来自版块 - windows 源码解读
表情
jally76当然要保证保证Irp的资源不能被释放。 IRP如果已经被完成,会有两种情况:1. 本驱动已经通过完成例程获知,那么就没有调用IoCancelIrp的必要。2. 本驱动还未获知,这时加Cancel自旋锁,有防止IRP资源释放的作用。 总之,只要IRP指针没有被滥用,应该不会发生cr...(2010-02-25 10:20)

返回顶部