- 博客(9)
- 资源 (5)
- 收藏
- 关注
原创 QXL驱动分析(二)——FindAdapter
QXL.c ULONG DriverEntry(PVOID context1, PVOID context2)是mini port的入口,其中初始化了一个很重要的结构:VIDEO_HW_INITIALIZATION_DATA。该结构定义中的HwFindAdapter是video miniport driver必须的,主要用来初始化显示适配器的存储和配置信息,它被video port drive
2013-08-16 18:23:35 4566 1
原创 QXL驱动分析(一)
QXL安照windows2000显示架构编写,见下图: QXL实现的功能主要包含两块:Display Driver 和 Video Miniport。1. Display DriverDisplay Driver以动态链接库qxldd.dll的形式提供,处于内核态,主要是提供绘图API给GDI,这样当最上层的应用需要绘图的时候,通过调用GDI API(gdi32.dll),GDI
2013-08-13 17:50:02 33443
原创 Spice代码分析(三)——red_worker: red_init
Spice 的图形子系统是最Spice最核心也是最复杂的一块,它不像其他的几个子系统由spice server 主进程来处理,而是有一个单独的线程处理,而且与主进程是并行运行的,负责这个处理的线程就是Red worker。具体来说,redworker负责以下的处理:1) 处理QXL设备命令(如画,更新,光标处理等);2) 处理从Dispatcher接收到的消息;
2013-08-10 11:05:38 5612
转载 spice client 和 spice server 通信机制
作者:“达沃时代” 原文链接:http://www.cnblogs.com/D-Tec/archive/2013/04/19/3030129.html〇、基本原理目前的Channel类型枚举值定义如下:enum { SPICE_CHANNEL_MAIN = 1, SPICE_CHANNEL_DISPLAY, SPICE_CHANNEL_IN
2013-08-06 15:38:40 6736
转载 Spice VDI接口工作方式
作者“达沃时代” 原文链接:http://www.cnblogs.com/D-Tec/archive/2013/03/01/2939311.htmlVDI接口工作方式Spice中的VDI(Virtual Device Interfaces)是一个经过专门设计的接口规范,其设计哲学可以推广到很多需要做功能扩展的软件项目中。此类接口设计的主要目标是在尽量不改变原有代码的情况下,通过
2013-08-06 15:28:03 6649 1
转载 Qemu, Spice 消息模型
作者“达沃时代” 原文链接:http://www.cnblogs.com/D-Tec/archive/2013/03/21/2973339.html网络事件处理是libspice设计中最关键的部分,可以说是整个Spice的骨架,用以支撑Spice的运行,是理解Spice运作方式的切入口之一(VDI是另一个阅读代码的切入口)。Spice的server和client通信方式采用了三种
2013-08-06 15:16:38 2665
转载 DriverEntry程序
DriverEntry程序在以前的部分中,我讲了即插即用管理器装载硬件所需要的驱动并调用其AddDevice函数。一个特定的驱动程序可能会被一个以上的相似硬件所使用,并且存在一些只需要在其第一次加载时被执行一次的全局初始化操作。DriverEntry程序负责这些全局初始化操。extern "C" NTSTATUS DriverEntry(IN PDRIV
2013-08-06 10:49:27 2038
原创 Spice代码阅读二:Primary surface 创建过程
Spice 主窗口表面的创建应该由虚拟机的QXL驱动发起,经由QEMU将相关参数传递给spice server(主要由负责显示的red_worker.c完成),最后spice server将SPICE_SURFACE_FLAGS_PRIMARY 消息发给spice client完成。上图中省略了QXL driver与 spice client相关部分的过程,用文字来说明。
2013-08-05 18:54:35 5799
原创 Spice代码阅读一:Spice Client 与 Spice Server 通道建立过程
文件方法描述Application.cppinit_globals()初始化Log,ssl库,canvas(或opengl canvas)和quic压缩库 Process_cmd_line()解析命令行连接参数 init_platform_globals(
2013-08-04 19:56:14 8225 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人