⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_52213.htm

📁 vc
💻 HTM
字号:
<p>
序号:52213 发表者:奥丁 发表日期:2003-09-09 09:47:40
<br>主题:再来一个问题,有劳大家了,有关驱动和应用程序之间的通讯的!
<br>内容:请问有什么方法实现驱动程序主动和应用程序进行实时通讯,而不用应用程序采用定时查询的方法?<BR><BR>比如驱动有一事件发生需要立即通知应用程序,或驱动程序需要向应用程序读取一些内容
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:jiangjian 回复日期:2003-09-09 11:21:13
<br>内容:驱动程序的中断处理程序必须服务于硬件设备的即时需要,任何主动的处理必须等待,直到驱动程序的DPC例程运行.DPC最终完成i/o请求<BR>并开始下一个排队的IRP<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>回复者:Fang 回复日期:2003-09-10 11:09:51
<br>内容:有一个很容易的方式,在驱动程序和应用程序之间用一个事件。<BR>在应用程序CreateFile的时候,驱动程序IoCreateSynchronizationEvent一个有名的事件,然后应用程序CreateEvent/OpenEvent此有名事件即可。<BR>注意点:<BR>1,不要在驱动初始化的时候创建事件,此时大多不能成功创建;<BR>2,让驱动先创建,那么此后应用程序打开时,只能读(Waitxxxx),不能写(SetEvent/ResetEvent)。反之,如果应用程序先创建,则应用程序和驱动程序都有读写权限;<BR>3,用名字比较理想,注意驱动中名字在\BaseNamedObjects\下,例如应用程序用“xxxEvent”,那么驱动中就是“\BaseNamedObjects\xxxEvent”;<BR>4,用HANDLE的方式也可以,但是在WIN98下是否可行,未知。<BR>5,此后,驱动对读请求应立即返回,否则就返回失败。不然将失去用事件通知的意义(不再等待读完成,而是有需要(通知事件)时才会读);<BR>6,应用程序发现有事件,应该在一个循环中读取,直到读取失败,表明没有数据可读;否则会漏掉后续数据,而没有及时读取;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hh 回复日期:2003-09-10 16:51:20
<br>内容:VXD可以在应用程序初始时,通过将应用程序窗口句柄注册给VXD,而使VXD可以向应用程序发消息。<BR><BR>WDM则是使用的事件,同VXD类似
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -