阅读:1088回复:3
关于完成例程的问题
我正在写一个捕捉下层驱动的读写操作的过滤驱动:
1)我已在建立该过滤驱动设备时,设置好了: FDO->StackSize = LDO->StackSize+1; FDO->Flags |= LDO->Flags; FDO->Flags &= ~(DO_DEVICE_INITIALING); 2)过滤驱动设备接收到读IRP时: IoCopyCurrentIrpStackLocationToNext(Irp); IoSetCompletionRoutine(....); retunr IoCallDriver(...); 3)问题就在调用读IRP完成例程时,改读IRP返回的长度不对,而且我在这个例程中,什么也没做,上层系统应用工作失败。 我读的信息是: Irp->IoStatus.Information 和 Irp->AssociatedIrp.SystemBuffer 内容对,长度不对。 ----------------------------------------------------------- 请问各位大侠,为什么造成这种现象? |
|
沙发#
发布于:2002-04-26 13:27
我正在写一个捕捉下层驱动的读写操作的过滤驱动: 先看看OSR上的一篇文章吧,然后再分析你的问题: www.osr.com ntinsider \"How NT Handles I/O Completion\" |
|
|
板凳#
发布于:2002-04-26 13:28
我正在写一个捕捉下层驱动的读写操作的过滤驱动: 先看看OSR上的一篇文章吧,然后再分析你的问题: www.osr.com ntinsider \"How NT Handles I/O Completion\" 及\"Rolling Your Own\"! |
|
|
地板#
发布于:2002-04-26 16:24
那个网站我打不开,不过我以前能打开,今天那个网站什么回事?
|
|