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

DrvTextOut 的问题哟! w

楼主#
更多 发布于:2004-09-02 12:25
那有 vnc驱动的source code 呀,
我怎么只下载到 应用层的呀!

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

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

就在 ie 窗口, .net 的编辑 窗口 等等,很多呢!如我用一个 窗口在 ie的网页 窗口里 移动,mirror 的 drvtextout 不能被调用

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

还有一个 没有 证实的问题,就是在 mirror 驱动里 如果让 drvtextout 堵塞,gdi 会 抛弃 其它 的绘制 动作吗?还是 在起动作队列 里等待!
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-09-02 16:28
VNC的驱动是没有代码的,我是反汇编他的代码研究的。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-02 22:50
wowocock 大哥

能留个 qq 号 或 e-mail 之类的 通讯方式吗?

有几个  mirror driver 的问题想你请教哟!
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2004-09-03 11:32
MSN:wowocock@hotmail.com
不过对于MIRROR我也不是很懂,可以问ALLZHEN那家伙,他好象很精通的
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-03 12:15
谢谢了 wowocock 大哥

就是 GDI 不总是 调用 DrvTextOut
我的  pGdiInfo->flTextCaps = TC_RA_ABLE| TC_OP_CHARACTER|TC_OP_STROKE|TC_CP_STROKE|TC_CR_90|TC_CR_ANY|TC_SF_X_YINDEP|TC_SA_DOUBLE|TC_SA_INTEGER|TC_SA_CONTIN|TC_EA_DOUBLE|TC_RA_ABLE|TC_SCROLLBLT|TC_SF_X_YINDEP|TC_UA_ABLE|TC_SO_ABLE|TC_IA_ABLE;

晕死 我全选了!
    pDevInfo->flGraphicsCaps|=(GCAPS_ARBRUSHOPAQUE|GCAPS_ARBRUSHTEXT|GCAPS_LAYERED|GCAPS_VECTORFONT|GCAPS_OPAQUERECT|GCAPS_HIGHRESTEXT|GCAPS_GRAY16|GCAPS_FONT_RASTERIZER);

只要 与DrvTextOut 沾边 我也 全选,按理 说,我的DrvTextOut对 文本 绘制的 能力 已经 够了啊,

问题是  在某些 时候 是用 DrvCopyBits ……来 代替 DrvTextOut的,后来 我又是 用DrvCreateDeviceBitmap  创建的 设备管理 表面,应该 GDI就 不会在 虚拟 桌面 绘好了 Text,然后 镜像成
DrvBitBlt+DrvCopyBits 呀,搞不懂啊!

ddk 的 display driver 都 看了n 遍了,各位 大哥指点一下?
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2004-09-03 13:28
这个我也不清楚,系统会把很多调用转成DrvBitBlt+DrvCopyBits 来处理,什么原因我也不清楚,郁闷。。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-09-03 14:29
当窗口移动的时候,系统只调用DrvCopyBit或DrvBitBlt来拷贝。这和Win32编程是一样的:当你移动窗口时并没有收到WM_PAINT消息,而你改变窗口大小的时候才会收到WM_PAINT。

[编辑 -  9/3/04 by  leerom]
leerom
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-03 15:44
leerom

呵呵,谢谢你!
其实在  Win32 下 用 ReDrawWindow(……)等等 也是这样,
不管 你说的 MoveWindow 是 是否 有 wm_paint 消息

其实 是有的 , 可以 用 bmsg hwnd msgid 跟踪到的

我的意思 是 :如你在  .net 的编辑窗口 你 打字 等等,DrvTextOut 都是 没有调用的,设置 无效 区域 ,重画 也是这样,
GDI 绘好之后 才 转换 成 DrvBitBlt+DrvCopyBits   给驱动处理,
估计是为了 加速,
但我要如何才能 阻止 GDI的 这种行为呢?


leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-09-03 16:38
DEVINFO中还有几项与DrvTextOut有关的设置,不知你设定了没有?
leerom
iterater
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-10-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-09-03 17:34
还有啊?

说说看,哎,还问一下?  哪个 driver chain 是 和 filter driver 一样的技术吗?  好像 microsoft  有个 dcm(driver chain manager )什么的1
游客

返回顶部