对UEFI的INPUT函数来说,主要目标是在事件发生时,捕捉并以下面这个方式解析对应unicode出来:
typedef struct {
UINT16 ScanCode;
CHAR16 UnicodeChar;
} EFI_INPUT_KEY;这里的unicodeChar就是直接的字母编码。当ScanCode为0时,说明就是字符类型的unicode,直接就可以当字符用。当ScanCode不为0时,需要根据如下各个表展开解析。
ScanCode对应关系:

具体到实际USB键盘,还有一层关系是需要从HID事件中的HID码描述,转换为ScanCode与Unicode这组数值。
Unicode码的编码表可以参考:

这里罗列一些具体的:
