| 
					阅读:1457回复: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] 能不能也给我发一份,谢了. | |
| 
 | 
 
							
 
				 
				
 
				