QXL驱动分析(一)
来源:互联网 发布:淘宝在哪里投诉卖家 编辑:程序博客网 时间:2024/05/16 12:52
QXL安照windows2000显示架构编写,见下图:
QXL实现的功能主要包含两块:Display Driver 和 Video Miniport。
1. Display Driver
Display Driver以动态链接库qxldd.dll的形式提供,处于内核态,主要是提供绘图API给GDI,这样当最上层的应用需要绘图的时候,通过调用GDI API(gdi32.dll),GDI 调用QXL的绘图API(qxldd.dll)达到绘图目的。
GDI与QXL建立这种关系是在GDI初始化的时候,示例如下:
1)QXL Display Driver实现了DrvEnableDriver,DrvEnableDriver是任何显卡驱动的入口点,在GDI初始化的时候会调用该API:
BOOL DrvEnableDriver(ULONG engine_version, ULONG enable_data_size, PDRVENABLEDATA enable_data)
2)Display Driver在enable_data 里返回了drv_calls[],drv_calls[]包含了一系列的绘图API的函数指针,这样在GDI需要绘制各类图形和文字的时候就可以调用相应的API了:DrvCopyBits,DrvTextOut,DrvStrokePath,DrvFillPath 。。。
2. Video Miniport
处于内核模式(miniport->qxl.sys)通常处理必须和内核组件交互的操作。它的责任包括资源管理,例如硬件配置、物理设备内存映射。Miniportdriver必须针对video硬件。它要管理和displaydriver共享的资源(内存资源)
它还要处理:显卡的模式设置交换,多种硬件类型,减少displaydriver的硬件依赖,把video寄存器映射到displaydirver的地址空间。I/O端口可以直接访问
1)QXL miniport driver的入口跟所有其他驱动一样,都是 DriverEntry; 它是在装载时被I/O Manager(设备管理器)调用的;
2)DriverEntry主要做的是调用VideoPortInitialize完成初始化,而VideoPortInitialize最主要的是设置了HwFindAdapter,HwInitialize,HwStartIO等函数指针
- QXL驱动分析(一)
- QXL驱动分析(一)
- QXL驱动分析(一)
- QXL驱动分析(二)——FindAdapter
- QXL驱动分析(二)——FindAdapter
- QXL驱动分析(二)——FindAdapter
- spice server qxl red_worker_main()代码分析
- spice server qxl red_worker_main()代码分析
- spice server qxl red_worker_main()代码分析
- spice server qxl red_worker_main()代码分析
- USB驱动分析(一)
- USB驱动分析(一)
- OTG驱动分析(一)
- USB驱动分析(一)
- rtl8812驱动分析(一)
- LCD驱动分析(一)
- NAND驱动分析--(一)
- alsa驱动源码分析(一)
- JavaScript判断密码强度
- Eclipse中使用正则屏蔽Logcat中的某些Tag
- oracle---相关的select
- 利用手机搞破解(二)空实现
- 自助游行业之我见
- QXL驱动分析(一)
- select列表左右内容交换的JS代码,支持同时多选
- java jdk & java api 帮助文档(中文、英文版)
- QXL驱动分析(二)——FindAdapter
- 如何成为Android高手第一篇
- Netra基于Rdk平台的软件框架设计
- CentOS 安装 VMware Tools 详细方法
- java刷题
- jquery实例