完全不使用DeviceIoControl,如何实现驱动程序与应用程序的通信?

gop 2008-11-03 03:13:48
该驱动程序是个HID minidriver,不是个标准的driver。

因而无法用CreateFile创建文件句柄,当然也没法用DeviceIoControl。

在这种情况下,如何实现驱动程序与应用程序之间的通信呢?

我需要应用程序向驱动程序发送一些信息。

(期望的方法是让驱动程序主动去注册一个用名字或者UUID索引的、全局性的东西,再由应用程序找到这个东西,从而建立通信。)



...全文
455 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
CopperBell 2009-04-13
  • 打赏
  • 举报
回复
ReadFile
WriteFile
SZ_Devin 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jintianyishiyeai 的回复:]
@liziwen:
msvad是微软实现的虚拟音频设备,这种设备类型的驱动架构与普通的不太一样,Port Driver与Miniport Driver之间是通过"COM"接口(只是样子像,其实实现并不是)进行通信的,而且组合起来的Audio Device并没有标准的Device Name,应用程序如果想和它通信必须通过Device Interface枚举得到。
[/Quote]

我觉得这位所说的有道理!
CubieZhou 2009-04-09
  • 打赏
  • 举报
回复
@liziwen:
msvad是微软实现的虚拟音频设备,这种设备类型的驱动架构与普通的不太一样,Port Driver与Miniport Driver之间是通过"COM"接口(只是样子像,其实实现并不是)进行通信的,而且组合起来的Audio Device并没有标准的Device Name,应用程序如果想和它通信必须通过Device Interface枚举得到。
jinling1441 2009-02-15
  • 打赏
  • 举报
回复
我都不怎么明白,看来还需要学习!
weskiter4 2009-02-14
  • 打赏
  • 举报
回复
ding
netsocket 2009-02-14
  • 打赏
  • 举报
回复
ding
捕鲸叉 2009-02-14
  • 打赏
  • 举报
回复
ReadFile WritFile
supercow 2009-02-14
  • 打赏
  • 举报
回复
可以为他创建一个用于deviotcl的device的.
zswolf2000 2009-01-21
  • 打赏
  • 举报
回复
楼主,我觉得你完全可以用deviceiocontrol。你在DriverEntry里调用IoCreateDevice创建一个device。
而且我记得mini driver完全可以使用deviceiocontrol的。
james_hw 2009-01-21
  • 打赏
  • 举报
回复
双方约好一块公用内存(好像一般在内核划分好),利用公用的内存进行通信
potato008 2009-01-20
  • 打赏
  • 举报
回复
应用程序里面建立一个event,然后把handle传给driver,然后PsSetCreateProcessNotifyRoutine注册一个回调函数set event
就可以build一个通信了,至于需要交互的信息就放在event里面好了
potato008 2009-01-20
  • 打赏
  • 举报
回复
应用程序里面建立一个event,然后把handle传给driver,然后PsSetCreateProcessNotifyRoutine注册一个回调函数set event
就可以build一个通信了,至于需要交互的信息就放在event里面好了
liziwen 2009-01-19
  • 打赏
  • 举报
回复
想问下楼主,

“该驱动程序是个HID minidriver,不是个标准的driver。

因而无法用CreateFile创建文件句柄,当然也没法用DeviceIoControl。”

是什么意思啊?
我模仿msvad里面的simple,也是不能用CreateFile,提示“系统找不到指定的路径。”。希望帮忙解释下
ilovedrv 2008-11-05
  • 打赏
  • 举报
回复
这样的话,就把驱动和应用程序当成两个独立的进程,使用进程通信的方法,典型的用内存映射
zhujinqiang 2008-11-03
  • 打赏
  • 举报
回复
WriteFile,
ReadFile。
cnzdgs 2008-11-03
  • 打赏
  • 举报
回复
向驱动传递数据用WriteFile,从驱动取数据用ReadFile。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧