xzzgrong

    1. 问题找到了可是不知道,如何原因,求解: 问题:     原程序在DriverEntry建立了两个设备对象,一个是串口1过滤驱动对象,一个是与应用程序交互的设备控制对象用于通讯.建立的顺序是先串口1过滤驱动对象,后控制对象.最后在ComSpy_Unload中使用(FILE_DEVICE_COMPORT指的是交互的设备控制对象的标识)         pFirstObj=DriverObject->DeviceObject;         if(pFirstObj->DeviceType==FILE_DEVICE_COMPORT)         {} 来关闭设备控制对象并清理数据. 我改动后的是:     在DriverEntry建立一个是与应用程序交互的设备控制对象用于通讯. 将串口1过滤驱动对象的建立放在了交互的设备控制对象的交互控制例程中:     如:case IO_OPEN_COM: 也就是说建立对象的顺序反过来了.     问题就来了.ComSpy_Unload中现在调用(FILE_DEVICE_COMPORT指的是交互的设备控制对象的标识)         pFirstObj=DriverObject->DeviceObject;         if(pFirstObj->DeviceType==FILE_DEVICE_COMPORT)         {}     DriverObject->DeviceObject指向的不是交互的设备控制对象了,所以if(pFirstObj->DeviceType==FILE_DEVICE_COMPORT)就不成立了,因此交互的设备控制对象没有被清理. 求教:好象是谁最后建立DriverObject->DeviceObject指象的就是那个设备对象. 为什么会这样,要如何解决.
    2. 很好 找了好久噢 非常 谢谢

最近访客

< 1/1 >

统计信息

已有55人来访过

  • 芯积分:--
  • 好友:--
  • 主题:--
  • 回复:2

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言