📄 subject_54542.htm
字号:
<p>
序号:54542 发表者:hotice 发表日期:2003-09-28 21:54:48
<br>主题:在用DDK编写的wdm驱动中如何在驱动程序与应用程序之间通过事件的实现通信?
<br>内容:在用DDK编写的wdm驱动中如何在驱动程序与应用程序之间通过事件的实现通信?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:无形 回复日期:2003-09-28 21:58:19
<br>内容:通讯的方法是。可以通过DEVICEIOCONTROL<BR>或事件。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hotice 回复日期:2003-09-28 22:06:45
<br>内容:如何用事件来通信阿?<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:无形 回复日期:2003-09-28 22:17:42
<br>内容:手头没资料真是郁闷。<BR>方法有3种。我介绍一种最简单,但是不一定最好的方法。<BR>首先在内核用<BR>IOCREATENOTIFICATIONEVENT创建一个命名事件对象<BR>\\basexxxxxxx\\youeventname<BR>原后KECLEAREVENT <BR><BR>在应用层用OPENEVENT()打开时间。<BR>WAITFORSIMPLEOBJCET就可以了<BR><BR>要注意的是。<BR>1。在内核的KESETEVENT后马上要CLEAREVENT<BR>因为内核设置的EVENT应用层没有权限清楚。<BR>2。OPENEVENT的第一个参数要用SYNXXX,其他参数权限不够。<BR>//我记不清的地方用XX代替了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hotice 回复日期:2003-09-28 22:28:46
<br>内容:非常感谢无形的帮助!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hotice 回复日期:2003-09-29 11:07:02
<br>内容:按照你给的思路做了,结果还是没有出来!在应用程序用OpenEvent()打开驱动程序中事件是报告说“系统找不到指定文件”。要么是这个函数的参数不对,要么是因为驱动中的事件建立的不对。帮忙看一下:<BR>驱动中:<BR>全局变量<BR>HANDLE hEvent;<BR>const wchar EventName[]=L"MyEvent";<BR>UNICODE_STRING uniEventName;<BR>在DriveEntry:<BR>RtlInitUnicodeString(&uniEventName, EventName);<BR>IoCreateNotificationEvent(&uniEventName,&hEvent);<BR>KeResetEvent(&hEvent);<BR>应用程序里:<BR>HANDLE hEvent;<BR>hEvent=OpenEvent(SYNCHRONIZE,TRUE,"Global\\MyEvent");<BR>结果检查hEvent的返回值是NULL;<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hotice 回复日期:2003-09-29 11:11:16
<br>内容:对了,在IoCreateNotificationEvent()函数中的第一个参数需要传递一个zero_terminated的UNICODE_STRING的包含事件名的字符串,不知我程序里的做法对不对?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无形 回复日期:2003-09-29 13:18:46
<br>内容:应用程序TCHAR EventName[]=_T("SharedEvent");//必须要是ANSI<BR>驱动程序WCHAR EventName[]=L"\\BaseNamedObject\\SharedEvent";<BR>//必须要是UNICODE<BR>把GLOBAL一定要去掉。<BR>//不要问我为什么,加了GLOBAL就不行,不知MS怎么搞的<BR><BR>2003-9-29 13:24:11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -