阅读:1453回复:13
为什么驱动的消息收不到?
我在驱动中需要发消息的地方添加了
KeSetEvent(&keWrite, 2, FALSE); 在devicecontrol中添加了 case IOCTL_FIRST_SEND_EVENT: ObReferenceObjectByHandle((HANDLE)(*Buffer), 0x0002, NULL, UserMode, (PVOID *)(&keWrite), NULL ); KeClearEvent(&keWrite); break; //................ 在应用层创建了线程监听。为什么在KeSetEvent()操作后应用层没有 收到事件? |
|
|
沙发#
发布于:2002-06-26 14:35
究竟有没有高手愿意告诉我呀。
很着急的说。 |
|
|
板凳#
发布于:2002-06-27 10:22
typedef struct _FIRST_DEVICE_EXTENSION
{ PDEVICE_OBJECT fdo; PDEVICE_OBJECT NextStackDevice; UNICODE_STRING ifSymLinkName; //HANDLE hEvent; //for Event send KEVENT* hEvent; } FIRST_DEVICE_EXTENSION, *PFIRST_DEVICE_EXTENSION; 在DeviceControl中的处理: PFIRST_DEVICE_EXTENSION dx = (PFIRST_DEVICE_EXTENSION)fdo->DeviceExtension; switch( ControlCode) //............................ case IOCTL_FIRST_SEND_EVENT: status = ObReferenceObjectByHandle(Buffer, 0x0002, NULL, UserMode, (PVOID*)(&dx->hEvent), NULL); KeClearEvent(dx->hEvent); break; //................................... //..................在需要发生事件的地方加入.................. KeSetEvent( dx->hEvent, 2, FALSE); //........................... //......................应用层加入........................ HANDLE hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if(!DeviceIoControl(hDevice, IOCTL_FIRST_SEND_EVENT, &hEvent, sizeof(HANDLE),// input NULL, 0, // output &length, NULL)) WaitForSingleObject(hEvent, INFINITE); //.......................................... 应用层运行到waitforsingleobject前一句系统就重启了。 有高手帮帮忙看看。问题在什么地方。 |
|
|
地板#
发布于:2002-06-27 10:51
爱莫能助。对EVENT所知甚少啊
|
|
地下室#
发布于:2002-06-27 10:52
爱莫能助。对EVENT所知甚少啊。那位大虾可以详细谈谈EVENT的来龙去脉?
|
|
5楼#
发布于:2002-06-27 13:27
SetEvent()和ResetEvent()要配合使用
线程阻塞使用WaitForSingleObject() |
|
6楼#
发布于:2002-06-27 13:32
你在用户态创建的事件句病是怎么让驱动的设备扩展得到的
|
|
|
7楼#
发布于:2002-06-27 13:37
zydcat:
我是根据论坛上找到的例子,依葫芦画瓢的。具体的意思我也不动。 该怎么做啊,老大你把你的文章再发一遍吧。 |
|
|
8楼#
发布于:2002-06-27 14:05
sorry
找不到了 |
|
|
9楼#
发布于:2002-06-27 14:07
FAINT。劳驾老大,在思考思考啦。
|
|
|
10楼#
发布于:2002-06-27 14:13
好说好说
但是你让我思考什么呀 |
|
|
11楼#
发布于:2002-06-27 14:15
如何在驱动层建立事件,在应用层捕获消息。
我的信收到了吗? |
|
|
12楼#
发布于:2002-06-27 14:29
受到了
回信了 |
|
|
13楼#
发布于:2002-10-24 11:32
受到了 也给我们看看咧 :D |
|