阅读:1385回复:14
20分求救
驱动程序现在有一个消息要通知应用程序,请教该怎样实现?
:D |
|
|
沙发#
发布于:2002-07-26 18:57
faint,讨论了好多遍了的。
可以用event。比如,在driver create一个event,app用waitforXXXObject函数等event |
|
板凳#
发布于:2002-07-26 22:59
又来放分??? :D |
|
|
地板#
发布于:2002-07-26 23:19
在驱动程序里面创建一个命名的事件,在应用程序里面打开和等待该事件,驱动程序通过触发该事件来通知应用程序
|
|
地下室#
发布于:2002-07-29 09:10
有没有现成的例子可供使用?如果有的话,请给我发信!
我的信箱shengws@163.net,多谢! :D |
|
|
5楼#
发布于:2002-07-29 10:05
在驱动程序里面创建一个命名的事件,在应用程序里面打开和等待该事件,驱动程序通过触发该事件来通知应用程序 这样做不好。 |
|
|
6楼#
发布于:2002-07-29 10:07
有没有现成的例子可供使用?如果有的话,请给我发信! 已经发了。 别忘了给分。 |
|
|
7楼#
发布于:2002-07-29 15:58
我刚看完你的代码:
我现在还是有点含糊,我是这样理解的: KeSetEvent( pdx->pEvent, 2, FALSE);是设定事件的 pdx->pEvent在哪做的初始化? switch( ControlCode) { case IOCTL_SECOND_SEND_EVENT: hEvent = (HANDLE) IrpStack->Parameters.DeviceIoControl.Type3InputBuffer; status = ObReferenceObjectByHandle(hEvent, GENERIC_ALL, NULL, KernelMode, (PVOID*)(&pdx->pEvent), NULL); NULL, KernelMode, (PVOID*)(&pdx->pEvent), NULL); ObReferenceObjectByHandle是对事件进行访问的? 我现在还不清楚它的消息传递原理是什么样的,能不能用文字来说明一下? 是不是KeSetEvent设定事件,IOCTL_SECOND_SEND_EVENT用来触发事件? 我现在想这样做: 我读端口获得一个状态位,判断状态位去给应用程序发信息,应用程序通过接受这个信息来对指挥驱动下一步做什么事情。 :D :D :D |
|
|
8楼#
发布于:2002-07-29 16:01
分我给了,希望能帮我把原理搞清楚,谢谢!!! :D
|
|
|
9楼#
发布于:2002-07-29 16:11
事件的初始化是在应用层完成的。
然后将事件的句柄传入wdm中,WDM对应用层的事件进行触发。 |
|
|
10楼#
发布于:2002-07-29 16:14
我的一点东东,都是论坛大老:蛇豆豆,TOM_LYD教的。
|
|
|
11楼#
发布于:2002-07-29 16:14
分我给了,希望能帮我把原理搞清楚,谢谢!!! :D 赤裸裸。 |
|
|
12楼#
发布于:2002-07-29 16:17
有专栏文章讲这些的
自己找找 |
|
|
13楼#
发布于:2002-07-29 16:18
[quote]分我给了,希望能帮我把原理搞清楚,谢谢!!! :D 赤裸裸。 [/quote] 就是,就是,我都不好意思了。 :P |
|
|
14楼#
发布于:2002-07-29 16:38
[quote
已经发了。 别忘了给分。 [/quote] 能不能也给我发一份,谢了. |
|
|