win7显示器亮度怎么调_虚拟机外接显示器

win7显示器亮度怎么调_虚拟机外接显示器很久没有继续研究wddmhook了,最后一次研究还在3年前,不得不说虽然应用的少,但是wddmhook却是很有技术含量的一项技术,而且实用性很高,我们除了做虚拟显示器还能做很多的东西,比如高效的截屏(因为直接从驱动层面截屏,所以效率和实现效果秒杀mirrordriver和DXGI)、视频重定向(视频硬件加速的时候可以直接获取原始码流)、修改原始的显示器厂商信息、修改显示器支持分辨率,等等骚操作wddmhook都可以实现。去年,深圳某硬件公司找到我,他们正在做usb转HDMI或者USB转VGA的硬件

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

很久没有继续研究wddm hook了,最后一次研究还在3年前,不得不说虽然应用的少,但是wddm hook却是很有技术含量的一项技术,而且实用性很高,我们除了做虚拟显示器还能做很多的东西,比如高效的截屏(因为直接从驱动层面截屏,所以效率和实现效果秒杀mirror driver和DXGI)、视频重定向(视频硬件加速的时候可以直接获取原始码流)、修改原始的显示器厂商信息、修改显示器支持分辨率,等等骚操作wddm hook都可以实现。
wddm hook的实现原理

去年,深圳某硬件公司找到我,他们正在做usb转HDMI或者USB转VGA的硬件连接线,这种线市面上很常见,当然也比较实用,但是芯片却一直被少数几个厂商垄断着,比较有名的两个,displaylink和fresco logic。我们知道显示器一般是直接插在显卡的HDMI或VGA等输出上,但是我们现在要做的是显示器插在电脑的USB上,并非由显卡直接输出,如何做到显示器接收显卡的输出?

其实芯片的实现难度还好,主要就是将图片信息转换成HDMI或VGA信号,关键在于如何在windows层面做到查到USB上跟插在显卡的VGA或者HDMI输出上一样的效果,display link类的实现原理如下:
displauylink驱动实现原理

芯片受制于人毕竟不是好事,毕竟大部分利润都被芯片公司赚走了,所以该硬件公司找到我,他们已经可以做出将图片转换成VGA和HDMI信号的芯片了,万事俱备,只欠东风,现在就需要有个人帮他们做一个驱动,该公司的刘总寻了很多年,终于找到了我,很是兴奋,跟我初步聊完,第二天就从深圳飞到我所在的城市,聊完技术细节,很快的就签了开发协议,协议的需求就是要兼容市面上win7及以上Windows系统,并输出屏幕图片,由于公司芯片采用usb2.0传输,带宽有限,需要图片的变化区域而不是整屏数据。

需要支持win7、win8及win10,不用多说,wddm hook肯定是跑不掉了,看来我又要重抄旧业,说起wddm hook,在兼容性这块我真的有点后怕, 我在2017年到2018年间做过一个win7的虚拟显示器采用的便是wddm hook技术,当时解决了公司VDI显卡透传上的几个难题,年底还拿了公司的技术突破奖。因为公司的显卡场景比较少,当时我们用的是AMD的消费级显卡,只需兼容这一款就够了,对其他显卡的兼容性没有做过多的测试,所以如果使用在usb转HDMI这种个人用户,需要市场上各种类型的显卡,我是很没有底气的,是什么让我有这么大的勇气来签这个协议,是对技术的追求还是喜欢有挑战性的工作?都不是,是因为穷!

关于调试和逆向
说来惭愧,我刚开始在做wddm hook的时候还不会基本的内核态windbg调试,当时的调试还是采用最原始的打日志方式,举个很简单的例子,有条分支走错了,可能我需要把每条可能走到这条分支的点都需要加上日志,要是分支多的话就需要打很多了,如果我会内核态windbg调试,我直接给函数加个断点,然后单步调试,看下哪部逻辑错了,顺便能看下每个变量是什么,程序为什么出错很快就能一清二楚了。

其次,我曾经遇到一个问题,系统在安装我的驱动后,在关机的时候卡死了,这时候怎么办呢?当初使用的方法是一点点屏蔽代码,用排除法的方法来看下是哪段代码出问题,简直是弱爆了。

还有一点是自己研究还不如借鉴友商的实现,我曾经在osr论坛上看到有位大佬说,wddm hook他们从开始做到稳定使用,花费了10人年,可想而知这个的难度,所以我一个人自己去闭门造车的话肯定不行,再花个10年,等我做稳定了技术早就被淘汰了,那么你又没有源码怎么借鉴呢?经过这几年在公司修电脑的历练,已经熟练的学会了逆向技术,对一个工程进行逆向,有两个必不可少的条件:1.你需要对整个工程的实现原理有个大概的了解;2.你需要熟练的使用逆向工具。所以我完全可以凭借以前的wddm hook经验再加最近几年的IDA逆向经验,成功的把市面上成熟的技术给逆向出来,事实证明,我用了不到2个月就把代码逆的七七八八了,至于逆的哪个我就不说了,肯定是那个兼容性最好的,谁兼容性最好我就借鉴谁的。

实现的USB手写屏的效果如下:

usb显示器

请添加图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171804.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea在线激活码(JetBrains全家桶)

    (idea在线激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    132
  • 前端开发项目经验_项目管理体系包括哪些

    前端开发项目经验_项目管理体系包括哪些前端开发传统的web开发管理端、H5/小程序、可视化、游戏等Node.js开发服务端接入层、构建工具、云服务等终端开发reactnative、flutter、electron等项目开发过程中涉及的系统涉及、方案调研、技术选型、性能优化、效能提升这些都是想通的这是怎样的一个项目?他遇到什么问题、存在着怎样的瓶颈?又需要怎么去解决?前端面试相关知识点前端常见的框架和工具库重要的是要知道各个框架的区别、掌握框架设计和实现原理Node.js和服务.

    2022年10月21日
    3
  • 数据库同步有哪些方式?【怎么保障目标和源数据一致性】「建议收藏」

    数据库同步有哪些方式?【怎么保障目标和源数据一致性】「建议收藏」数据库同步有3大难题:1是如何保障目标和源数据一致性;2是异构数据库如何做数据类型转换,导致数据同步失败的原因常常是因为数据类型不一样;3是在数据越实时越有价值的背景下,同步过程中能否做到实时同步。

    2022年10月16日
    3
  • 面试官:谈谈你对IOC和AOP的理解及AOP四种实现方式[通俗易懂]

    面试官:谈谈你对IOC和AOP的理解及AOP四种实现方式[通俗易懂]一、AOP介绍面向切片编程(AOP—AspectOrientedProgramming)可以说是对OOP(面向对象编程)的补充和完善,面向对象就是将事物的特性和行为抽象为一个对象,如people类有身高、体重、年龄等属性,也有吃饭、睡觉等行为。把这些特性和行为封装成一个类,然后可以统一调用。面向切片也可以举个例子,比如people类有自己的属性和行为,但是有小一部分人生病要去医院看病,看病这个业务逻辑就不属于哪一个类,因为people泛指所有人,所有人不会都看病。AOP就是把医院看病这一个业务逻辑功能

    2022年6月22日
    31
  • 什么是公网IP和内网IP?[通俗易懂]

    什么是公网IP和内网IP?[通俗易懂]转载:https://www.jianshu.com/p/4cd76e25b894

    2022年5月5日
    39
  • FDD/TDD协同优化

    FDD/TDD协同优化一、 概述目网络面临上行用户体验容量差、深度覆盖不足、热点区域巨大容量需求三重挑战,随着FDD网络大规模部署的日益临近,TD-LTE和LTEFDD融合组网将是4G无线网络未来的演进方向,可以充分激发TDD/FDD两种制式网络的潜力,实现优势互补,最大化资源承载效率,获得最佳网络性能。二、 FDD部署情况XX移动FDD分布于900MHz和1800MHz两个频段,900MHz频段具备频率低、覆…

    2022年6月1日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号