iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:2273回复:10

内核模式下的DLL 与用户态的 应用程序如何通信呀

楼主#
更多 发布于:2004-08-11 19:35
比如 我用mirror Driver的例子,在DrvTextOut,DrvCopyBits等中传过来的视频数据 ,我想把他传到我的应用程序中显示出来,该如何做呀!
好象在显卡的miniport端口 驱动中的VIDEO_HW_INITIALIZATION_DATA 的结构 又不能加IRP_MJ_DEVICE_CONTROL 的处理例程
我是新手,有一个不是法子的法子就是 ,在搞个驱动,在这个驱动里和 用户程序 用事件同步,和mirror.dll 中共享内存+事件同步!

我该如何做呢? 谢谢!
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-11 19:41
还有,就是这个mirror driver 中 的miniport driver 起个什么作用呀!
没有 为mirror.dll 处理任何东东呀! 只是提供了一个驱动的入口呀!
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2004-08-11 22:23
参考ULTRAVNC代码。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
chengxindang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-16
  • 最后登录2011-07-24
  • 粉丝0
  • 关注0
  • 积分157分
  • 威望35点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-19 00:36
ULTRAVNC代码 那里有? 那位大侠可以给一份?
爱,使人死亡,情,让人疯狂!
tornadohf
驱动牛犊
驱动牛犊
  • 注册日期2004-08-21
  • 最后登录2007-12-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-22 15:41
在miniport里分配一块内存,然后映射到Usermode,在用event来同步AP和kernel mode driver.我想这样应该是可以的。
leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-31 14:30
少量数据可以用ExtEscape来和显示驱动通讯。
当然在驱动程序中要实现DrvEscape,以便处理你的Escape请求。
leerom
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-09-01 16:55
谢谢两位!

由于 前一段 时间 还对 驱动 特别 陌生,
这几个 都已经 解决 ,我是用的 drvEscape
加事件同步 ,
当时 是 出现了一个误区,在 gdi_driver 中直接 用 EngLoadImage
加在 ntoskrnl 然后 取 keXXX函数地址,直接 调用好象不能用,当时没有 想到,通过一个 kernel mode dll 来间接实现

不过我现在还 不明白 为什么,
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2004-09-01 20:15
那是因为不能连接,其实VNC的驱动已经说的很清楚了,就那么点东西,也没什么好奇怪的,而且在GDI驱动中也不能创建内核线程,虽然在2K下也许可以,不过在XP以后你会死的很惨。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-09-02 12:21
那有 vnc驱动的source code 呀,
我怎么只下载到 应用层的呀!

不过我又出现了问题,就是 DrvTextOut 怎么不是每次都 调用啊!
好象 是 gdiinfo 的设置除了问题?

可是 gdiinfo.flTextCaps  我加了 TC_SCROLLBLT呀,但gdi还是用
drvcopybits, drvbltbit来做了!

就在 ie 窗口, .net 的编辑 窗口 等等,很多呢!

呵呵,还有 就做 filter driver 则 该怎么做了?(在drvenabledriver 里 怎么 让 old driver 失效,在filter driver 的drvtextout 里怎么调用以前的 drvtextout呢?还有好象也没有介绍这的资料,如果有 告一下哟!)应该不会出现这个问题,

还有一个 没有 证实的问题,就是在 mirror 驱动里 如果让 drvtextout 堵塞,gdi 会 抛弃 其它 的绘制 动作吗?还是 在起动作队列 里等待!

wowocock,tornadohf,leerom 等等几位 兄弟,太感谢了,估计20分不够,待 结贴 后,新开 加份

还有 一个感慨呀,wdm 真的是比较 凌乱啊!
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-09-02 12:29
wowocock  大哥,
 
    这小弟就不明白了?
    ntkrnlos.exe 不是长驻 的吗? 有了 base addr 还有了 offset addr  怎么还不能调用函数呢? 地址 的 影射 空间 不一样?
    其实 就 是 整个 显示 驱动,乃至 驱动 的 架构 还是很 清晰
望指点一下
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
10楼#
发布于:2004-09-02 16:17
GDI驱动和WDM,KMD的不同,确切的我也很难说,就拿PSCREATESYSTEMTHREAD来说创建的时候没问题,可到执行的时候发现原来的函数都变成INVALID了,导致了页故障,而DDK里的说明是GDI驱动必须都是分页的,真搞不懂。。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
游客

返回顶部