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显示器

请添加图片描述

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 深入浅出,JWT单点登录实例+原理

    深入浅出,JWT单点登录实例+原理深入浅出,JWT单点登录实例先直接上案例,方便工作中拷贝。后面说原理。代码git链接 案例演示:Controller: 登录授权接口,用户输入名字密码后请求此接口。登录成功后返回jwt 模拟认证中心,真实环境中此接口应该是一个单独的服务,这里方便演示,用一个接口代替。@PostMapping(“/login”)publicObjectlogin(){returnnull;} 主业务服务的主接口,返回主页

  • 最短路径四大算法「建议收藏」

    最短路径四大算法「建议收藏」熟悉的最短路算法就几种:bellman-ford,dijkstra,spfa,floyd。首先说明一点,就是关于负环的问题。bellman-ford可以用于边权为负的图中,图里有负环也可以,如果有负环,算法会检测出负环。时间复杂度O(VE);dijkstra只能用于边权都为正的图中。时间复杂度O(n2);spfa是个bellman-ford的优化算法,本质是bellman-for

  • mysql的可视化工具_Mysql可视化工具Navicat的基本使用

    mysql的可视化工具_Mysql可视化工具Navicat的基本使用一、写在前面的话相信大多数php初学者刚学习mysql的时候,应该都是在cmd黑窗口中进行一些基本sql的增删改查操作,但是在企业中几乎不会在黑窗口环境中进行sql的编写,主要有两点原因:1.界面不友好(虽然有点逼格)2.容易造成数据的误删除(不像女朋友没了可以再找),下面就给大家介绍mysql可视化工具navicat的常用的操作。至于怎么安装navicat相信大家都会,基本一路next,然后选…

    2022年10月26日
  • linux复制文件夹下的所有文件到另一个文件夹_shell复制文件内容到另一个文件

    linux复制文件夹下的所有文件到另一个文件夹_shell复制文件内容到另一个文件Linux系统cp的用法:cp用于复制文件或目录。参数说明:-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。-f:覆盖已经存在的目标文件而不给出提示。-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答”y”时目标文件将被覆盖…

  • 计划任务 SchedulerFactoryBean 配置

    计划任务 SchedulerFactoryBean 配置Quartz是开源任务调度框架中的翘首,它提供了强大任务调度机制,同时保持了使用的简单性。Quartz允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。此外,Quartz提供了调度运行环境的持久化机制,可以保存并恢复调度现场,即使系统因故障关闭,任务调度现场数据并不会丢失。此外,Quartz还提供了组件式的侦听器、各种插件、线程池等功能。Spring为创建Quart…

  • Anchorpoint_the mythology handbook

    Anchorpoint_the mythology handbook之前做一个imageview的transform的动画,从scale(1,1)变成scale(0.3)

发表回复

您的电子邮箱地址不会被公开。

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