阅读:1878回复:1
关于Attach到设备栈后是不是在驱动的AddDevice例程中将fdo Attach到设备栈之后, 驱动应当会收到一组PNP IRP呢? 如果没有收到,可能是什么原因呢? |
|
|
沙发#
发布于:2001-06-22 10:22
也许我说的不清楚,是这样的: 现在一台Win2000系统上有一个虚拟串口,工作正常, 我想在其上加一个过滤驱动,但是系统在虚拟串口功能 驱动上本来就有一个过滤驱动serenum.sys,按照老办法 不知道怎样在其上再加一个过滤驱动了。 我现在做了一个简单的驱动,作为 UnKnown类的驱动添加到 系统中,但是在这个驱动的AddDevice例程里,在Attach到设备 栈时我将fdo attach到了上面那个虚拟串口上去了。安装完 后,从设备管理器上看不出有什么异常,但是新添的简单驱动 AddDevice例程虽然执行正确,PNP IRP处理例程却没有收到任何 PNP IRP,而且此时虚拟串口无法打开。 然后我又尝试把attach到虚拟串口这一动作推迟到收到第一个 PNP IRP时,即在收到第一个PNP IRP时,在对它处理之前再将 简单驱动的fdo attach到虚拟串口上,这样做,简单驱动在添加 时,AddDevice例程完成后共收到六个PNP IRP,依次为: IRP_MN_QUERY_LEGACY_BUS_INFORMATION IRP_MN_FILTER_RESOUCE_REQUIREMENTS IRP_MN_START_DEVICE IRP_MN_QUERY_CAPABILITIES IRP_MN_QUERY_PNP_DEVICE_STATE IRP_MN_QUERY_DEVICE_RELATIONS 在设备管理器上看起来一切正常,但是虚拟串口仍无法打开。 不知哪位大虾能指点迷津,谢谢。 |
|
|