繁体   English   中英

Windows-使用内核驱动程序直接写入视频显示吗?

[英]Windows - Write to the video display directly using kernel driver?

我正在编写Windows 7内核驱动程序。 今天,我想让它通过显示器输出调试信息。 现在,我知道我可以只使用DbgPrint或KdPrint函数,但是我想将字符串或任何东西直接输出到监视器。 这样,我不必启动调试视图即可查看我的输出。 这也可以用作教育活动。

据我了解,我将不得不访问显示的帧缓冲区并将其值写入其中,对吗? 但是,我不知道如何执行此操作。 基本上,我希望能够直接在监视器上写一些东西,因此它将与Windows正在显示的内容重叠。 我知道这听起来很奇怪,但这只是为了好玩。

主要目标是从内核驱动程序执行此操作。 不在用户层进程内。 请注意,我只想使用640x480的分辨率。 没有什么更高的了。 如果我理解正确,那么超出此范围的任何内容都将要求我为当前的视频卡编写自己的显示驱动程序。

我的系统设置:Windows 7 SP1 x86 Intel Pentium 4 @ 3.00Ghz Nvidia GeForce FX 5200

谢谢大家的帮助!

现在,我知道我可以只使用DbgPrint或KdPrint函数,但是我想将字符串或任何东西直接输出到监视器。

您将必须通过显示驱动程序。 谁说您运行Windows的计算机根本没有显示器?

即使有,RAM中也不会有MSDOS样式的单个帧缓冲区来存储您的当前图片。 现代GPU不再那样工作了-操作系统要求它们将它们交出的单个缓冲区的整个屏幕组成,以进行简化-简化:每个窗口都是自己的帧缓冲区,并且GPU负责组成所有内容到全屏图片。

您也不能仅仅因为您喜欢这样做而从内核驱动程序中写入某些内存区域– a)您不知道那在哪里,b)您将与其他组件竞争,那将是坏事。

编辑我觉得我应该为此添加后缀:

重点很简单:编写一个驱动程序,该驱动程序是驱动程序而不是用户界面。 那不是司机的工作。 由于许多原因,将UI功能放入驱动程序是一个坏主意,而您根本不应该这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM