阅读:3048回复:4
???
谁能具体谈一谈应用程序和驱动程序(WDM)之间通讯的过程.驱动程序要
怎样才能把一些数据放到USER MODE 上? |
|
|
沙发#
发布于:2001-03-27 17:40
应用程序与WDM模式的驱动发生作用是通过标准的WIN32接口。
例如应用通过调用WriteFile()向设备发出写数据请求时,操作系统向驱动发出写IRP,此IRP由驱动的相应处理例程处理,应用所发出的数据在相应IRP的AssociatedIrp.SystemBuffer域,数据长度在相应的IRP栈单元的Parameters.Write.Length域;WDM的数据返回当然也要在AssociatedIrp.SystemBuffer域。 |
|
|
板凳#
发布于:2001-03-27 20:03
:)
呵呵,你问的不是应用与驱动之间的通讯吗? 一个简单的层次问题,应用通过API调用操作系统提供的服务,操作系统将此请求变为IRP发往相应的驱动,驱动获取必要的数据,驱动将此数据做一些处理后发往硬件设备的寄存器;硬件设备有数据,发生中断,驱动从硬件设备的寄存器获得数据,作些处理,应用再通过API获取数据。 |
|
|
地板#
发布于:2001-03-27 21:38
我记得好像有一些类型的driver不能通过readfile和writefile读写数据。
至于键盘的driver,如果是FDO,就响应键盘中断啊!如果是keyboard filter driver,就attach到设备栈里面处理键盘数据。 |
|
|
地下室#
发布于:2002-03-11 08:18
有一类的驱动程序如显卡可以通过API EscapeEx()函数于驱动程序通信,但是你自己必须定义相关的IoControl code 参数
|
|
|