阅读:1432回复:4
完成例程何时被调用?
IoCopyCurrentIrpStackLocationToNext();
IoSetCompletionRoutine(,,,TRUE,TRUE,TRUE); IoCallDriver(); 请问,IoCallDriver返回值不是STATUS_PENDING时完成例程还会被调用吗 |
|
沙发#
发布于:2004-01-08 13:03
VOID
IoSetCompletionRoutine( IN PIRP Irp, IN PIO_COMPLETION_ROUTINE CompletionRoutine, IN PVOID Context, IN BOOLEAN InvokeOnSuccess, IN BOOLEAN InvokeOnError, IN BOOLEAN InvokeOnCancel ); 后面的3个参数决定你在什么时候调用完成 Success?? Error?/ Cancel?? 你在用IoCompleteReques后 ,系统会遍历设备栈,根据情况依次调用完成例程。。。。。。 |
|
|
板凳#
发布于:2004-01-08 14:33
那三个参数都为true的话是不是iocalldriver返回任何值,完成例程都会被调用??
|
|
地板#
发布于:2004-01-08 19:04
这个ddk里面写的很清楚阿。
|
|
|
地下室#
发布于:2004-01-09 09:23
谢谢
|
|