我是 UEFI(统一可扩展固件接口(interface))开发的新手。我正在使用 EDK(EFI 开发套件)。
要创建新协议(protocol),我们需要为协议(protocol)提供 GUID。例如,在BlockIO
协议(protocol)的头文件中,我们可以看到:
(MdePkg\Include\BlockIo.h)
全局变量:
并在包声明文件MdePkg.dec
中:
为什么我们需要其中 3 个来为协议(protocol)提供 GUID?
(也许这个问题与 C 语言细节有关,所以我也添加了 c
和 macros
标签。)
最佳答案
全局变量只能由链接到定义它的对象的驱动程序使用(在您的情况下是BlockIo.c
)。我认为宏是在头文件中定义的,以便不与该对象链接的驱动程序可以使用宏中的 GUID。
关于c - 为什么 UEFI 协议(protocol)头文件为单个协议(protocol) GUID 定义宏和外部全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32155283/