Windows内核原理与实现之图形设备接口

Windows的图形引擎也是在Windows子系统中提供的,它有两方面特点:首先,它提供了一套与设备无关的编程接口,即GDI,这使得应用程序可以适应各种底层显示设备的差异;其次,应用程序与图形设备驱动之间的通信足够高效,从而即使在频繁输出和刷新图形元素的情况下,Windows也能够为用户提供良好的视觉效果。

在技术上,Windows子系统定义了一个稳定的图形体系结构,以便于第三方的图形设备硬件厂商方便地将它们的视频显示器和打印设备集成到Windows中。如图2.6所示,win32k.sys通过DDI(显示设备驱动程序接口)与显示驱动程序打交道,而显示驱动程序通过ENG(图形引擎接口)调用win32k.sys 中图形引擎的功能。

Win32k.sys的图形引擎实现了基于标准格式位图的图形绘制功能。显示驱动程序在初始化时向图形引擎报告它所支持的物理设备的特征描述。显示驱动程序即可以自己管理图新表面,也可以直接使用图形引擎管理的图形表面。另外,显示驱动程序可以有选择地截取GDI的图形绘制操作,也可以将图形绘制操作转交给图形引擎。因此,显示驱动程序在实现功能方面有很大的灵活性。

如图2.6所示,显示驱动程序可以帮助图形引擎实现针对特定视频设配器的图形功能,视频小端口驱动程序更是针对视频适配器的硬件特性。两者的分工原则是:显示驱动程序执行一些对用户可见并且性能紧急的图形操作,譬如,它可以直接访问设配器的视频存储区或者寄存器;而视频小端口驱动程序执行一些不常见的图形操作,或者一些不能被中断打断或其他进程抢占的关键图形操作。

视频端口驱动程序由Windows操作系统提供,它实际上是一个动态链接库,用户帮助视频小端口驱动程序实现一些公共的,与图形处理相关的功能,以及为小端口驱动程序提供一个与系统内核和执行体打交道的环境。视频小端口驱动程序负责直接的硬件资源的管理和控制。

Windows子系统的图形系统,除了支持GDI,还提供了对DirectX的显示支持,包括DirectDraw和Direct3D,因而允许像游戏,多媒体播放器等应用软件绕过GDI图形引擎,直接操作显示器硬件,从而获得更快的显示速度,并且避免屏幕抖动。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值