如何在 Native NT 文本模式下获取图形?

发布于 2024-11-13 06:35:55 字数 565 浏览 3 评论 0原文

显然,EASEUS Partition Master程序可以显示图形 Windows GUI 启动之前(即,它与 CheckDisk 在启动时运行的同时运行)。

已经知道的

  1. 这可能需要没有很好记录的函数。这对我来说没问题。

  2. 我已经知道如何编译本机 NT 可执行文件,因此请随意从响应中忽略它。

问题:

  1. 如何在一切启动之前显示图形? (即您使用哪些函数/库?)

  2. 它如何在屏幕上显示格式化和对齐的文本?
    我知道 NtDisplayString 能够写入文本,但它无法以格式化方式绘制内容,如下所示。您使用什么函数来复制下面的行为?

屏幕截图

Apparently, the EASEUS Partition Master program can display graphics before the Windows GUI starts (i.e., it runs at the same time CheckDisk runs at boot).

What I already know:

  1. This might require not-very-well-documented functions. That's fine with me.

  2. I already know how to compile native NT executables, so feel free to omit that from responses.

Questions:

  1. How can you display graphics before everything has started up? (i.e. What functions/libraries do you use?)

  2. How does it display formatted and aligned text on the screen?
    I know NtDisplayString is capable of writing text, but it can't draw things in a formatted manner, as you can see below. What function(s) do you use to replicate the behavior below?

Screenshot

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凌乱心跳 2024-11-20 06:35:55

我觉得现在回答自己的问题有点傻,但 Ben 的提示帮助我弄清楚了:

它使用一个驱动程序,而该驱动程序又使用 BootVid.dll 中的这些函数:

VidBufferToScreenBlt
VidScreenToBufferBlt
VidBitBlt

I feel kind of silly answering my own question right now, but Ben's hints helped me figure it out:

It's using a driver, which in turn uses these functions in BootVid.dll:

VidBufferToScreenBlt
VidScreenToBufferBlt
VidBitBlt
在巴黎塔顶看东京樱花 2024-11-20 06:35:55

也许它使用低级 VGA 调用来切换到图形模式并操作视频内存。

Perhaps it's using low-level VGA calls to switch to graphics mode and manipulate video memory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文