最近在尝试把应用层的回调函数设置到流驱动中。
当流驱动中处理完毕之后,调用应用层的回调函数,把参数传递上去。
在实际测试中发现,驱动可以正常的进入到回调函数,但进去之后就跑飞了。应用层对应的回调函数并没有
被驱动层调用。
然,在驱动中调用其他驱动的回调函数,是正常的。
为什么驱动调用应用层的回调函数就无法正常访问呢?
我在驱动调用应用层回调函数的前后添加了调试信息,前面的调试信息出来了,执行了调用回调函数之后,后面的调试信息没有出来。回调函数的实现那里也没有被调用,说明跑飞了。
莫非这个跟内核态和应用态有关?
有谁这样试过吗?
回调函数是通过XXX_IOControl接口把函数地址传递到驱动中的。
------解决方案--------------------
我觉得应该是内核态和应用态的关系,你可以采用事件的方法告诉应用层,应用层再去取得到的参数
------解决方案--------------------
跨进程回调函数还能直接这样调用吗?是否驱动调用地址不合法?