- 博客(18)
- 收藏
- 关注
原创 如何在云电脑实现虚拟应用—数据分层(应用分层)技术简介
系统OS层,该层表示Windows系统镜像安装的原始OS层,代表这一个可正常运行的OS。应用层,该层表示各种应用程序组成的层,例如Chrome浏览器,微信,QQ等各种应用程序。QQ微信的聊天数据。其示意图大致如下:一般来说,每个层都是一个独立的磁盘,将每个磁盘通过分层技术合并成一个整体可以正常使用运行的磁盘,如下:操作系统层,只有一个数据磁盘表示该层,表示运行的系统。应用程序层,该层是一个集合层,多个应用程序层元素组成该层,表示通常情况下我们需要的应用程序。
2024-05-14 20:13:52 704 3
原创 基于AVStream的虚拟摄像头原理简介及实现
AVStream是对内核流(Kernel Stream)驱动开发的扩展,取代Windows 2000下面 Kernel Streaming音视频开发技术,基本架构如下:AVStream是基于Kernel Stream框架扩展的新框架,在该框架下面我们更加方便开发出音视频相关的驱动(例如虚拟摄像头等)。
2024-04-29 20:00:34 1080
原创 Windows下的GPU虚拟化 - GPU-PV实现原理简介(1)
GPU PV是一个非常复杂指令流系统, 有兴趣的同学可以IDA中查看dxgkrnl.sys是如何处理其他图形指令的本文也只是一个引子简单介绍了一下GPU-PV实现原理。后续如果有时间还会写一系列文章来介绍如何调试GPU PV,更加全面分析GPU PV的原理。
2024-01-13 00:26:31 1821 1
原创 基于USB总线的虚拟摄像头(UVC)原理简介
前面文章中我们分析了虚拟声卡的实现,在文章中我们展示了创建一个虚拟麦克风和虚拟扬声器的技术原理。完成了音频的虚拟化之后,这里就要谈论一下对于视频的虚拟化了——虚拟摄像头的实现。关于虚拟麦克风和虚拟扬声器的实现,可以参考。虚拟摄像头应用也是非常普遍的,例如云桌面远程摄像头的实现,直播技术。目前对于虚拟摄像头有三种实现方式:DirectShow虚拟摄像头,这个是一种比较古老的技术;在新版本应用中,该项技术基本失效了,尤其是UWP框架程序,DirectShow虚拟摄像头就失效了。
2024-01-09 22:31:18 3212
原创 跟着Windbg看DWM
DWM全称桌面窗口管理程序,是Windows Vista之后一个全新的窗口管理系统,他决定windows应用程序的呈现方式,用过XP的同学肯定遇到过窗口拖影的情况。在XP时代,窗口绘制都是直接提交到显卡的显存中显示的,简单来说就是Windows桌面只有一个对应的图像缓存,所有程序都直接在这个缓存下进行渲染。这样就知道了只有应用程序知道应该怎么绘图,而XP下的Windows桌面系统完全不知道怎么绘制,因此当窗口出现未响应的窗口被遮挡时,Windows就会产生拖影的现象。
2024-01-07 22:12:26 1588 2
原创 如何优化Windows虚拟机性能(KVM/QEMU)
最近自己在家搭建了一个局域网的云桌面,起中host端的虚拟化方案用的是kvm+qemu,在搭建过程中有很多心得,特别是关于如何优化windows虚拟机的性能在KVM/QEMU平台下.如果你想你的win10,win11虚拟机接近裸金属的体验,那么必须针对kvm+qemu做一系列的特殊化调整,不然可能会遇到卡顿,cpu使用率高,中断和I/O缓慢的情况.
2024-01-02 17:27:39 4344
原创 虚拟声卡(虚拟扬声器和虚拟麦克风)应用之音频回环(Virtual Audio Cable)
首先在了解Virtual Audio Cable音频回环技术之前,我们先介绍几个基础的概念:虚拟声卡:是一种硬件虚拟化技术;基于软件技术虚拟出麦克风或者虚拟扬声器硬件,提供给上层用户程序使用虚拟麦克风和扬声器,例如通过给虚拟扬声器喂送音频数据实现麦克风录音效果。音频回环:跟我们网络通信的回环地址(127.0.0.1)通信一样;所谓的音频回环是内核驱动层直接将麦克风/扬声器的声音直接提交给扬声器/麦克风,可以达到数据硬件层的直接转发的功能。
2023-12-30 16:37:12 4811
原创 如何在云电脑串流中实现声音输入输出—虚拟声卡(虚拟扬声器和虚拟麦克风)开发
在端口类中有过滤器工厂用来实例化过滤器。在云计算的背景下面,虽然我们云主机(上图的虚拟机)运行在了远端,给使用和管理带来了非常大的便捷,但是也带来了很大技术上面的困难。要解决上面这些问题,就需要在虚拟机中对声卡进行虚拟化,实现虚拟声卡驱动程序,使得用户程序能够使用扬声器播放声音以及可以对麦克风喂数据,将本地麦克风的数据喂给虚拟机的虚拟麦克风。上述我们以及完成了各种的小端口驱动的创建和初始化,各个音频适配器过滤驱动也已经创建完成,我们只需要完成最后一步了,将各个过滤器进行连接,连接的函数时。
2023-12-23 16:38:00 3799 5
原创 Windows内核沙盒原理详解
沙盒在计算机领域指一种虚拟技术,它实际上是一种安全体系,且多用于计算机安全技术。其原理是通过重定向技术,把程序生成和修改的文件定向到自身文件夹中。本文主要探讨沙盒的内核实现原理
2023-09-01 00:12:11 717 1
原创 如何在云电脑串流中实现本地存储的访问——磁盘映射(目录映射)开发
对于第二种虚拟总线技术方案,我们可以再虚拟总线挂载一个虚拟的磁盘设备,对于该磁盘的所有请求都通过网络协议发到客户端进行处理,该方案存在比较明显的缺陷就是客户端和虚拟机无法同时对于磁盘使用,而且实现难度也非常大。不过存在很多情况下,我们的资源并不是全部集中在服务器,比如如果我们的瘦客户终端是PC的话,我们希望能够把本地的磁盘直接映射到远程VDI虚拟机里面使用,那么就需要使用到我们的磁盘映射技术了。对于基于分布式文件系统的方案是一种比较合适的方案,我们从文件系统层面,对磁盘(目录)来进行映射(共享)访问。
2023-08-23 13:41:55 463
原创 什么是虚拟化服务器?中国市场规模及未来发展前景如何?
服务器虚拟化技术在云计算时代具有非常重要的地位。它可以将一台物理服务器切分为多个虚拟机,实现更好的资源利用、更方便的管理和监控等功能。本文带看虚拟化技术的中国市场规模和发展趋势
2023-08-17 00:11:55 712 1
原创 如何在云电脑串流中实现多屏操作——基于Indirect Display Driver的虚拟显示器开发
IDD是一个基于WDF的用户层驱动程序,基本架构如下:IndirectKMD.sys这是一个Display Only驱动程序,是虚拟适配器的核心驱动。IddCx.dll是用户层接口提供动态库,主要将用户层的IddCx相关函数通过请求发送给驱动进行核心处理。third-part是用户实现的IDD驱动程序。表示逻辑显示适配器的对象。表示连接的显示器的对象。表示桌面图像的交换链。
2023-07-31 20:46:25 1711 6
原创 如何在云电脑串流中实现多屏操作——WDDM虚拟显示器开发
我们先来看一下WDDM显示驱动模型的框架图,如下:通过这个图我们可以发现,无论是D3D,OpenGL还是GDI绘图,最终在内核层都是通过Dxgkrnl.sys模块来实现;Dxgkrnl.sys取代了XP下面的Win32k.sys,成为了新一代的图像显示子系统库。DirectX图形库都需要在应用层提供用户模式的驱动,这样做的目的是可以在应用层渲染图像,这样大量的图像相关计算全在用户层完成。
2023-07-25 19:34:01 1341
原创 如何在串流云桌面中实现外设的远程控制输入——HID人机接口设备驱动简介(键鼠、手写板等)
HID Transport是具体的硬件设备,我们HID Transport向上提供硬件相关信息,HID Client从来不主动和HID Transport直接通信,都是通过HIDClass.sys来进行中转的,这样给我们HID Client和HID Transport的开发都带来了非常大的便利;函数来完成注册的,这个函数是HIDClass.sys提供,也就是说HIDClass.sys提供了框架,给我们MiniPort驱动的开发。对于HID的设备的虚拟,我们主要是需要实现HID Transport。
2023-07-18 10:37:56 795 2
原创 基于串流云桌面的远程外设驱动——HID(人机接口设备)的描述符介绍
HID(Human Interface Device,人机接口设备)是USB设备中常用的设备类型,是直接与人交互的USB设备(例如键盘、鼠标与游戏杆等),他是一种相对简单的USB设备(相对USB摄像头这些来说)。当我们插入USB键盘或者鼠标之后,Windows就能自动识别HID设备插入,加载相关驱动;例如我们可以在设备管理器中看到如下:那么Windows是怎么知道插入的设备是U盘还是键盘鼠标呢?
2023-07-18 09:56:33 1065
原创 基于串流的云桌面的关键技术——虚拟化技术汇总
一直都在学习和从事Windows驱动,VDI,虚拟化和安全相关工作;近年来,随着国产化越来越火热,计划投入部分时间学习一下Linux的相关技术知识。近期打算把自己学习过的相关技术知识点拿出来分享一下,作为一个温故和总结;该技术点主要包括Windows的一些虚拟化技术:该帖作为一个汇总帖持续更新中,欢迎大家交流和讨论。
2023-07-18 09:52:28 358
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人