如何在Windows中禁用软件SMI (系统管理中断)

从Windows 10 1809开始,操作系统产生了大量的软件SMI。

我们在单独的处理器核心上运行我们的实时应用程序,每个SMI都会产生不可预测的延迟。在1809年以前,总是可以在BIOS中禁用SMI。

Windows中的调用堆栈如下所示:

代码语言:javascript复制hal!HalEfiGetEnvironmentVariable+0x56

hal!HalGetEnvironmentVariableEx+0xb572

nt!IopGetEnvironmentVariableHal+0x2a

nt!IoGetEnvironmentVariableEx+0x85

nt!ExpGetFirmwareEnvironmentVariable+0x91

nt!ExGetFirmwareEnvironmentVariable+0x110ce3

nt!NtQuerySystemEnvironmentValueEx+0x6e SMI由OUT指令生成到端口0xb2中。需要从NVRAM读取UEFI变量。当BIOS处于遗留模式时,不存在SMI。

是否可以配置Windows,从而不会使用SMI访问UEFI变量?