阅读:1191回复:0
应用层传递进来的事件对象无法设置受信状态
该事件对象是由用户空间创建的::CreateEvent(NULL, FALSE, FALSE, NULL);
然后通过DeviceIoControl将句柄传递给驱动,驱动中获取对象: ObReferenceObjectByHandle(*pEvent, EVENT_MODIFY_STATE, *ExEventObjectType, KernelMode, (PVOID*)g_pEvent, NULL);返回为真,而且我查看了该对象指针,里面确实有数据其中的g_pEvent是在驱动中的全局变量,是一个PKEVENT 的数组。 但是在我的一个挂钩的内核函数中: 使用KeSetEvent(g_pEvent[0], IO_NO_INCREMENT, FALSE);却无法设置受信状态,我用WinDbg查看了KEVENT结构,里面的SignedStats始终为0.。。 请问为什么会出现这样的情况,我没使用DereferenceObject释放对象,因为要全局使用,所以没用这个释放,不知道和这个有关系没。其他的地方我就不知道有什么不恰当的操作 ,请各位指点一下,网上都没看到相关的问题描述,而面对这样的问题,我甚至不知道该如何切入下手,我找不到任何切入点 XP SP2系统,谢谢各位了 |
|