社区
驱动开发/核心开发
帖子详情
如何使用共享内存驱动和应用程序通讯
df8327
2006-11-27 02:58:32
谢谢
希望各位大哥帮忙
能给个例子就更好了
...全文
273
7
打赏
收藏
如何使用共享内存驱动和应用程序通讯
谢谢 希望各位大哥帮忙 能给个例子就更好了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shuiyan
2006-12-01
打赏
举报
回复
要弄共享内存,得能改动底层才行。
在config.bib中划处一块(硬件)连续区域,比如0x80001000,长度0x10000,RESERVE,这样编译后,SDRAM中的这块区域就会保留。注意地址是虚拟地址。
在内核空间,可以直接操作此地址。
在用户空间,用VirtualCopy将其映射过来,然后就可以操作了。
只要注意别形成资源竞争就行。要是一起write,那就……嘿嘿
pilixuanke
2006-11-28
打赏
举报
回复
就是频繁的日志传递操作
觉得使用deviceiocontrol加上信号量的方式效率太低了
、、、、、、、、、、、、、、、、、、、
没事的,用ReadFile也可以的,不要低估计算机的能力,以前我们做视频时每秒钟25帧的数据都能过来,一帧数据好几M呢。
Cody2k3
2006-11-28
打赏
举报
回复
不建议使用共享内存. 因为同步问题会很麻烦.
如果日志很频繁的, 那不如积累一定数量的日志后再调用ioctrl来一次写入driver好了.
df8327
2006-11-28
打赏
举报
回复
大哥能给我一段readfile的代码事例me
我也想这样搞
可是一直没找到例子
不会阿
所以才想到共享内存
此外这是用在防火墙数据包截获上的
我个人认为效率很重要,在网络大负载的情况下还是希望能使用共享内存
thinkSJ
2006-11-27
打赏
举报
回复
可以去用下MDL
df8327
2006-11-27
打赏
举报
回复
就是频繁的日志传递操作
觉得使用deviceiocontrol加上信号量的方式效率太低了
pilixuanke
2006-11-27
打赏
举报
回复
这个还真没有用过,难道传送的数据量很大?一般用平常的方法就可以了,如DeviceIoControl等等。
驱动
与应用层之间的
共享内存
通信与事件通知
驱动
与
应用程序
之间通过
共享内存
通信,即Ring0与Ring3
共享内存
,有时候是一个显而易见的需求,另外,
驱动
很多情况下也需要在某种条件满足后主动通知
应用程序
做相应的操作,本文作一些我自己的学习心得记录,以便以后参考。
共享内存
关于内核与应用层
共享内存
,其实给出一篇OSR的文章和代码,一切问题都解决了,我在网络上搜到了这篇文章的一些翻译,但是诡异的是所有的这些译文居然没有把原文链接给加
windows
驱动
开发7:
应用程序
和
驱动
程序的通信
应用同
驱动
通信
驱动
开发:
应用程序
与
驱动
程序 IOCTL
通讯
+ DeviceIoControl + IRP 详解
使用
DeviceIoControl 函数的前提是:我们在
驱动
中自定义IOCTL(IO控制码)。这是
应用程序
和
驱动
程序交互的一种通信方式。先看看 CTL_CODE 原型:<<16<<14<<2CTL_CODE 宏有四个参数,用于辅助自定义 IOCTL,把4个部分组成一个32位 IOCTL。高16位存储设备类型,14~15位访问权限,2~13位操作功能,最后0,1两位就是确定缓冲区是如何与I/O和文件系统数据缓冲区进行数据传递方式,最常见的就是METHOD_BUFFERED。
Windows
驱动
开发(三)——
驱动
和应用层通信的几种方式
因此,内核线程和用户进程的通信可以通过进程间通信的方式实现,例如文件映射、
共享内存
、管道等方式。是 Windows 中的一种轻量级的进程间通信机制,允许在同一台计算机上的不同进程之间进行高效的消息传递。在Windows系统中,
驱动
程序想要正常工作,往往离不开和用户态进程间的交互。因此,
驱动
和用户态进程的通信就成为了必不可少的手段。是Windows系统内部
使用
的一种通信机制,微软没有提供任何的公开文档,因此在实际
使用
中可能存在一定风险。的请求,用户态进程直接通过设备读写的方式与
驱动
程序通信。
Windows
驱动
—Windows
应用程序
和Windows
驱动
通信编程
文章目录介绍知识前奏内核方面编程设备对象和符号链接分发函数应用方面编程打开设备设备控制请求代码应用层代码内核层代码完整工程代码测试效果 介绍 Windows
应用程序
(Ring3层)和内核
驱动
(Ring0层)是运行在Windows权限的不同级别,简单来说各有优势。内核层权限较大 能做很多
应用程序
办不到的事情 不直接面向程序
使用
的用户,Windows
应用程序
在Ring3层 直接面向用户,界面友好。当应用层办不到的时候就需要借助内核层了,所以 win32
应用程序
和Windows内核
驱动
通信是有必要的。Windo
驱动开发/核心开发
21,619
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章