Win10 下面的Mirror驱动分析

这篇具有很好参考价值的文章主要介绍了Win10 下面的Mirror驱动分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

在DWM分析的文章中(浅谈DWM原理),有提到过在Win10 下面仍旧可以使用Mirror Driver;这个功能就有一定的奇怪了,因为从前面分析我们知道,Mirror Driver的生效前提是DWM需要关闭,而在Win10 下面,DWM已经无法关闭了,那么DWM是怎么使用的呢?本文就来探讨一下这个原理

1. ChangeDisplaySettingsExW

使用Mirror 驱动的时候,都是使用 ChangeDisplaySettingsExW 这个函数来让Mirror显示器来生效,是的Mirror 驱动开始工作,那么我们看一下Win10 下面这个函数是怎么工作的呢?
Win10 下面的Mirror驱动分析
在 ChangeDispSettingsNotificationW 这个操作中,存在如下流程:
(1)判断如果当前生效的是Mirror驱动,那么调用从注册表"SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags"中读取"MirrorCompatBinaryExtension"这个DLL,这个DLL是MirrorDrvCompat.dll,并加载这个DLL。
(2)调用MirrorDrvCompat.dll的导出函数 MirrorDrvLoadedNotify 。从名字也可以看出来,MirrorDrvCompat.dll这个就是Mirror驱动兼容生效的Dll。

2. MirrorDrvCompat

这个DLL加载中,会做两个比较重要的操作文章来源地址https://www.toymoban.com/news/detail-494143.html

  1. 创建一个Mirror 兼容采集图像的线程 CMitigationManagement::StaticMitigationManagementThread .
  2. CMitigationManagement::StaticNotificationWindowThread 自己程序的窗口,用来响应相关窗口消息。明显 CMitigationManagement::StaticMitigationManagementThread 这个操作才是Mirror驱动为什么可以生效的重点,这个函数的基本实现如下:
    Win10 下面的Mirror驱动分析CMitigationManagement::DuplicateDesktop 这个操作看起来似乎就是Win10下面的屏幕复制的操作,这个函数的实现过于复杂,但是大致浏览一下我们就可以发现使用了D3D相关的操作,看起来就是这一套操作流程了。最终,我们会看到一个调用操作:
    Win10 下面的Mirror驱动分析
    从名字可以看到,是将我们的脏区域绘制到Mirror的Surface中去。

到了这里,关于Win10 下面的Mirror驱动分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Win10:fastboot驱动问题解决方案

    可参考链接: 一、adb 驱动 fastboot 驱动 win10 二、fastboot时出现_ waiting for device_的一种解决办法

    2024年02月14日
    浏览(45)
  • Win11和Win10怎么禁用驱动程序强制签名? 关闭Windows系统驱动强制签名的技巧?

    驱动程序签名又叫做驱动程序的数字签名,它是由微软的Windows硬件设备质量实验室完成的。硬件开发商将自己的硬件设备和相应的驱动程序交给该实验室,由实验室对其进行测试,测试合格后实验室将在其驱动程序中添加数字签名。由于数字签名是由微软完成的。 Win11设备只

    2024年02月06日
    浏览(72)
  • Win10(winser2019)关闭驱动数字签名方法

    方案一:临时禁用驱动数字签名强制,方法:https://jingyan.baidu.com/article/624e74594dbc8d34e8ba5aa6.html 通过高级启动项禁用的不是永久的。 未测试! 方案二: 永久禁用驱动数字签名强制 (测试通过,推荐!) 永久禁用数字签名方法: 首先,可以在BIOS设置中关闭secure boot:重启您的

    2024年02月02日
    浏览(41)
  • win10安装CP2102(STM32串口通信)驱动

    CP2102 USB to UART Bridge Driver驱动 win10win7win8下载地址 (本次仅针对win10驱动安装失败问题) http://www.youxiaxiazai.com/soft/132/8489.html#dzhi CP2102是一款USB转TTL电平的USB转串口芯片,很多时候下载的CP2102 USB to UART驱动都不可用,特此小编从官方找了这个CP2102 USB to UART Bridge Driver驱动给大家

    2024年02月03日
    浏览(42)
  • win10系统提示:“重新启动以修复驱动器错误”解决办法

    最近一段时间台式机的window10系统突然提示:“重新启动以修复驱动器错误”。博主本来置之不理,但是系统自动重启了,然后也没自动修复成功,伴随而来的是两天频繁的蓝屏现象。过去的很长一段时间里,都没有出现过该问题,因此花了两天解决 系统蓝屏和驱动错误的问

    2024年02月04日
    浏览(50)
  • 删除设备和驱动器中的迅雷下载、百度网盘的图标(win10、win11可用)

    安装百度网盘,迅雷等软件后会在设备和驱动器中多出图标,怎么将他们删除呢? 操作流程 按快捷键【win + R】进入,【运行】 输入 “regedit”打开注册表编辑器。 也可以通过windows的搜素,搜索【注册表编辑器】进入。 进入后,在【注册表编辑器】中进入如下目录: 在 N

    2024年02月04日
    浏览(57)
  • 安装Win10操作系统时找不到任何驱动器的解决方法

    有时候在一台新电脑上使用U盘安装系统时提示:我们找不到任何驱动器。 如下图所示: 解决方法: 一、按F12(不同电脑进入Bios的按键可能不同)将电脑进入Bios画面,选择Bios Setup - Storage; 二、将SATA/NVMe Operation选项由RAID ON改为AHCI/NVME,并保存; 三、重启电脑进入Bios选择U盘

    2024年02月14日
    浏览(53)
  • 安装win10提示无法在驱动器0分区上安装windows解决方法

          在通过U盘或光盘安装win8/win8.1/win10系统时,不少用户遇到无法安装的问题,提示“无法在驱动器0的分区1上安装windows”,格式化分区1也不能解决,进而提示Windows无法安装到这个磁盘,选中的磁盘采用GPT/MBR分区形式,这是怎么回事呢?下面小编跟大家分析出现这个问

    2024年02月08日
    浏览(54)
  • 在Windows 10(Win10)下安装“NVIDIA图形驱动程序-显卡驱动”、“NVIDIA控制面板”、CUDA Toolkit、cuDNN Archive的详细过程记录

    目标:安装CUDA Toolkit和cuDNN Archive 安装CUDA Toolkit首先要知道自己的CUDA版本号,通过控制面板打开“NVIDIA 控制面板”查看自己的CUDA版本。 按照别人的经验应该有下图中的“NVIDIA 控制面板”, 但是我的没有,如下图所示: 原因是没有完整安装NVIDIA的显卡驱动。下载一个驱动精

    2024年02月03日
    浏览(73)
  • 详细分析Win11与Win10哪个好用

    Windows 11是由微软公司(Microsoft)开发的操作系统,应用于计算机和平板电脑等设备。于2021年6月24日发布,2021年10月5日发行。 Windows 11提供了许多创新功能,增加了新版开始菜单和输入逻辑等,支持与时代相符的混合工作环境,侧重于在灵活多变的体验中提高最终用户的工作

    2024年02月06日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包