1

是否可以从操作系统访问 EFI 系统表?我想知道运行时服务的映射位置。原因是 Windows API 仅将变量服务公开给用户模式 ​​(Get/SetFirmwareEnvironmentVariable),但我想知道是否可以通过直接在自定义驱动程序中访问其余服务来使用它们。我知道 Windows 加载器正在将包含服务虚拟地址的表映射到内核内存中,但我还没有找到定位和读取它的方法。有人可以就如何实现这一目标提供建议或指导吗?

4

2 回答 2

0

一个老问题,但我会回答它,也许它会帮助其他人。

长话短说。不,这是不可能的。它完全是 Windows 内部的,如果 Microsoft 不公开它,就无法访​​问 UEFI 运行时服务。至于 UEFI 变量,它们存储在非易失性 RAM 中,只有 UEFI 固件 (BIOS) 知道所有变量的存储位置以及存储方式。所以有两种可能性,要么是 BIOS 为 Windows 提供了一种指向 UEFI 运行时服务的指针,要么是微软与 BIOS 供应商达成了协议,比如:-好的,如果你希望你的系统与 Windows 兼容,那就是必须存储指向 UEFI 运行时服务周期的指针的内存位置。

于 2015-05-08T22:27:27.973 回答
-1

我看到程序使用SetFirmwareEnvironmentVariable.

于 2016-04-13T00:36:10.627 回答