首页
社区
课程
招聘
[讨论]Gui与Gdi的区别与实现过程
发表于: 2018-12-22 10:22 5326

[讨论]Gui与Gdi的区别与实现过程

2018-12-22 10:22
5326
现在内核实现创建窗口 但是一直没有接触过显卡驱动所以一开始一些概念很混乱~所以查阅了一些别人的帖子~大概有了个初步的 理解

希望大牛们看见有写的不对的地方 加以指点~~
首先 在计算机中CPU与   外设 的通讯是通过IO端口完成的  
外设的板载内存可以通过IO端口读写 也可以把外设的板载内存通过分页机制映射到CPU的外存以加快读写速度
~在Windows 内核中有个 win32K 模块 主要提供用户的窗口绘图功能~ 
该模块的主要实现的方式是 通过  win32K模块  调用显卡驱动  最后  通过IO 端口 吧数据写入到显卡的板载内存 来与显卡通讯实现绘图的功能
win32k提供给了用户一套gdi 函数用于实现绘图

而在windows 内核中还有一个Dx平台~他又三个驱动模块~这是实现高性能绘图功能的关键~该平台的主要作用就是     为GPU提供的操作系统   用于控制GPU
  
DX平台的实现原理    通过直接操作   被映射到CPU外存中的 显卡板载内存   与GPU实现通讯~和控制Gpu的执行流程 ~  ~整个过程没有通过IO端口 以实现高速的图形绘制功能

DX平台主要应用在  游戏 中的绘图   和图形刷新 和其他一些渲染等特殊要求~  而Win32IPA  主要用于一些低要求的 窗口绘制功能


以上  纯属我的个人理解 如果那里说错了 希望大佬们加以指正
这里有个问题  想咨询下大佬们 怎么得到IO端口  映射到 CPU外存的  显存地址呢

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 185
活跃值: (70)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
那一句没有通过IO端口这个错了。硬件设备通过PCI Bus挂载在电脑上,都是通过IO来访问。通常是CPU访问IO。DX这儿是通过GPU去访问的IO,所以比CPU直接访问更快。IO操作肯定要有,要不然没法和硬件设备通讯了
2018-12-22 15:56
1
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
3
现在vista以上的WDDM模型的gdi最终也是渲染到DX的。
顺便提一句你想用CPU把显存里的画面拖到系统内存一顿改再传回GPU再显示,不是不可以,效率基本上就和幻灯片差不多。
系统内存到显存的延迟没有你想得那么低,你用录屏软件不卡是因为它录的是2~3帧前的画面。
如果想做挂的话,我劝你还是趁早洗洗睡了。网上抄个steam绘制再跟拉闸大手子收几个解密数据,哪个不比研究你所谓的"内核绘制"来钱快?
最后于 2018-12-23 09:18 被hzqst编辑 ,原因:
2018-12-23 09:17
1
雪    币: 177
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没想写外挂~就是想向屏幕输出一些信息 
2018-12-23 11:47
0
雪    币: 177
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
hzqst 现在vista以上的WDDM模型的gdi最终也是渲染到DX的。顺便提一句你想用CPU把显存里的画面拖到系统内存一顿改再传回GPU再显示,不是不可以,效率基本上就和幻灯片差不多。系统内存到显存的延迟没有 ...
没想写外挂~就是想向屏幕输出一些信息 
2018-12-23 11:48
0
雪    币: 177
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
hzqst 现在vista以上的WDDM模型的gdi最终也是渲染到DX的。顺便提一句你想用CPU把显存里的画面拖到系统内存一顿改再传回GPU再显示,不是不可以,效率基本上就和幻灯片差不多。系统内存到显存的延迟没有 ...
看了下 那个得到 VBE 显卡信息~~但是都是 通过 int 10   中断获得 ~保护模式没办法用啊  该怎么半呢
2018-12-23 11:49
0
游客
登录 | 注册 方可回帖
返回
//