阅读:1200回复:3
WM_MJ_CLOSE返回后出错??(急!!!)
小弟在写HID Lower Filter Driver时,完成WM_MJ_CLOSE动作之后,系统在_VWIN32_CloseVxDHandle + 0121处出错。不知是什么原因,请各位大虾指教。
我的Filter Driver层次如下: 1. DriverEntry 2. Dispatch Irp 处理了DeviceIoControl, Create, Close, Read, Pnp. 3. DeviceIoControl 1. 自己定义的ControlCode. 2. 其它的发给下层驱动程序处理 4. CreateClose: 1. 对于我的用户程序建立的文件对象,直接返回成功。 2。对于系统建立的文件对象,发给下层驱动程序处理。 5. Read 1。设置CompletionRoutine. 2. 将Irp发给下层驱动程序处理 3. 在CompletionRoutine用DbgPrint输出读到的数据。 6. Pnp 1. MN_REMOVE_DEVICE: 将Irp发给下层驱动程序,等待Pending Read完成后Detach Device, Delete Device Object. 2.其它的发给下层驱动程序处理 |
|
|
沙发#
发布于:2002-07-17 13:45
怎么没有人回答?大虾都跑哪里去了?
|
|
|
板凳#
发布于:2002-07-17 14:27
我不知道你是否在你的例程里是否有释放你分配的内存池呢?
|
|
地板#
发布于:2002-07-18 09:49
这个问题已经困扰我好久了,我也仔细检查过我的程序,所有程序分配的内存都有释放。
最近的调试结果: 去掉READ例程中的COMPLETION ROUTINE,直接使用IoSkipCurrentIrpStack,然后IoCallDriver,没有任何问题. 加上CompletionRoutine, 则问题出现。 |
|
|