首页 > 解决方案 > 等待按键 GNU EFI

问题描述

如何在 GNU EFI 中等待密钥?
我打算让它等待一个键,然后继续执行。
我的代码:

#include <efi.h>
#include <efilib.h>
#include <stdlib.h>

EFI_STATUS efi_main (EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) {
    EFI_STATUS Status;
    ST = SystemTable;
    Status = uefi_call_wrapper(ST->ConOut->ClearScreen, 1, ST->ConOut);
    if (EFI_ERROR(Status)){
        ...
        return Status;
    }
    ...
    Status = ST->ConIn->Reset(ST->ConIn,1!=1);
    if (EFI_ERROR(Status)){
        ...
        return Status;
    }
    // wait for key here
    return EFI_SUCCESS;
}

标签: uefignu-efi

解决方案


您可以从UEFI Shell 的 EDK2 实现中获得一些想法。

基本原理是你需要设置一个事件等待按键。

另请参阅UEFI 规范 v2.8中的第12.3 节简单文本输入协议


推荐阅读