关于IoCallDriver的使用

zhouzhaofu   2007-8-6 17:15 楼主
当上层驱动程序在其即插即用例程中调用IoCallDriver函数将PnP IRP交由下层驱动程序处理后,位于同一个例程里IoCallDriver函数调用后的语句还执行吗?还是直接转到下层驱动程序的相应例程?谢谢各位大虾指点一二。

回复评论 (7)

回调函数不影响。
例如:ntStatus = IoCallDriver(pdx->LowerDeviceObject, Irp);要对ntStatus进行判断。
点赞  2007-8-11 14:17
会在IoCallDriver返回后继续执行
点赞  2007-8-15 21:11
理论上直接转道下一层...
点赞  2007-8-16 09:32
会继续执行
点赞  2007-9-26 15:05
应该会的,没有理由不执行
点赞  2007-9-26 16:51
这个好像要看IRP的类型的,如果是同步IRP的话,那么会等IoCallDriver返回后再执行下面的语句.如是异步IRP的话,会先执行下面的语句,而不等IoCallDriver返回.(异步的话,如果要重新获得IRP的控制权的话,需要设置完成例程..IoSetCompletionRoutine)
点赞  2009-3-2 21:32
引用: 引用 6 楼 renqiang1987 的回复:
这个好像要看IRP的类型的,如果是同步IRP的话,那么会等IoCallDriver返回后再执行下面的语句.如是异步IRP的话,会先执行下面的语句,而不等IoCallDriver返回.(异步的话,如果要重新获得IRP的控制权的话,需要设置完成例程..IoSetCompletionRoutine)


正解   学习
点赞  2009-3-7 13:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复