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

请教一个 display driver 的问题

楼主#
更多 发布于:2004-09-07 15:48
就是  microsoft 的 dcm 管理 建好 driver chain 之后
我的驱动 如何调用  next chain呢? 也就是 我如何把 数据
传给 下一级 驱动呢?是 gdi调度的吗?
可是 我把我的显示 驱动 加入 driverchain  之后 怎么 不行呢?

谢谢
leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-07 16:48
我用土办法:EngLoadImage。
把自己的显示驱动启动后,直接用EngLoadImage加载其他驱动程序。
leerom
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-07 17:30
就是  microsoft 的 dcm 管理 建好 driver chain 之后
我的驱动 如何调用  next chain呢? 也就是 我如何把 数据
传给 下一级 驱动呢?是 gdi调度的吗?
可是 我把我的显示 驱动 加入 driverchain  之后 怎么 不行呢?

谢谢

你确保chain正确吗?
不仅在app中需要正确安装,而且在ddi中需要调用dcmkrnl的相应函数
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-07 17:39
我用土办法:EngLoadImage。
把自己的显示驱动启动后,直接用EngLoadImage加载其他驱动程序。

不做其他操作吗?
如果不做其他操作恐怕有问题哦,比如你的系统安装了"TNT2"的显卡,如果正常情况下。
比如对mirro方式来说,在你的驱动加栽前,TNT2的驱动(.sys)已经run了,然后在加ddi时候,TNT2的驱动需要他对应的ddi,然后才是你自己的ddi被加载。
如果你只是简单的先加栽自己的ddi,然后使用EngLoadImage这样恐怕有很多问题,当然使用EngLoadImage(或具有该功能的其他方式)应该说是必须的,但这并不是问题的关键吧。
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-07 18:15
我是这样考虑的:
1、写一个安装程序。
2、该程序运行时搜寻注册表的显示驱动项,找出当前使用的显示驱动。
3、将注册表中的Display Driver改成我的驱动。
4、重启后应该先加载我的驱动,这时我再加载原来的显卡驱动。
5、然后....
6、缺点:重新安装显卡驱动之后也要重装我的驱动:-<
可行否?我也没试过,纯属纸上谈兵,欢迎大家拍砖。
leerom
tornadohf
驱动牛犊
驱动牛犊
  • 注册日期2004-08-21
  • 最后登录2007-12-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-07 19:03
对display driver应该可行。
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-09-07 21:52
光 EngLoadImage(……) 能行?
如果 这样做的话 ,是不是 我还得 Hook  住 DrvEnableDriver 函数也取得  DrvXXX函数的 map 表啊,在我的 同名 函数里调用!
不是  这样的话 ,gdi 又怎么能知道 该 map表呢?EngLoadImage时
gdi 肯定是无法取得 的呀!

还有 AllenZh 大哥 ,你 dasm 过 jawsid 吗?
他是怎么做的呢?  我晕死,看得太慢,怎么 jawsid 的入口
不是 DriverEnableDriver 呢?

谢谢!

[编辑 -  9/7/04 by  iterater]
leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-08 09:05
当然不能光EngLoadImage。这只是一个开头,万事起头难。给你一个思路,下面要你自己去完成。记得很久之前和人讨论过这个问题,不知道还能不能找到当年的帖子。用这中方法你应该实现所有的DrvXXX函数,在这些函数中再调用显示驱动的相应的DrvXXX。
leerom
leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-09-08 09:21
看看这贴,里面提到EngLoadImage的用法。
http://www.driverdevelop.com/forum/viewthread.php?fid=16&tid=25690&page=1&totalpost=34
leerom
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-09-08 10:00
leerom 大哥,谢谢了
      晕死,这就是 太麻烦了,不过没 办法,只好 这样做罗
 不知到是否 可行呢?
leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-09-08 10:20
如果可行,别忘了通知大家。
另外,能不能给每位热心回答问题的同志加些分!:-)
leerom
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-09-08 11:34
呵呵,jawsvid  我 反 汇编 看了一下就是 这样做的
不过 我支持 所有 ddi 中的函数 ,就够了吗?vga 的显卡 就没问题了吧!

怎么  给分呀,找遍了也 没见个 操作提示!
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-09-08 11:41
哎,终于找见了
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2004-09-08 12:09
即使采用显卡过滤驱动也无法获得DIRECTX的图象,除非对所有的DIRECXT的函数全部HOOK。。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
游客

返回顶部