Windows 引导加载程序如何添加选项以打开固件设置?

0fn*_*fnt 1 firmware bios windows assembly uefi

Windows Setup 1 中有一个选项可以让您进入固件设置2。它是如何做到的?我猜这将是某种汇编指令,但我不确定它是哪一种。

1如果我没记错的话。
2可能在重新启动后...

use*_*686 5

具有快速启动功能的 UEFI 固件支持OsIndications包含 64 位位掩码的EFI 变量。为了请求固件设置界面,Windows 在这个变量(也称为 EFI_OS_INDICATIONS_BOOT_TO_FW_UI)中设置位 1,然后正常的系统重启。

引导到其他操作系统条目是使用BootNextEFI 变量实现的,该变量是一个 16 位整数,包含所需Boot####条目的编号。例如,操作系统可以将其设置为 0x0002,然后定期重启,以便使用 Boot0002。

这两个变量在消耗一次后都会被固件自动清除。

在这两种情况下,变量都是通过调用SetVariable()EFI 运行时服务上的方法来设置的。用户空间代码无法直接访问它,但您可以使用操作系统提供的 API 来做同样的事情。(在 Windows 上,您可以使用SetFirmwareEnvironmentVariable在 Linux/sys/firmware/efi/efivars或 libefivar 上。)


归档时间:

查看次数:

219 次

最近记录:

4 年,7 月 前