在 EDK II 源码中,OpenProtocol 函数(属于 EFI_BOOT_SERVICES 引导服务)的核心实现位于 DxeCore 模块,这是 UEFI DXE 阶段的核心组件,负责管理系统中的协议、句柄和驱动。具体位置和代码结构如下:
一、核心实现文件:DxeCore/Protocol/OpenProtocol.c
OpenProtocol 的主要逻辑在 DxeCore 模块的 OpenProtocol.c 文件中,路径通常为:
edk2/MdeModulePkg/Core/Dxe/Protocol/OpenProtocol.c
该文件实现了 OpenProtocol 函数的完整流程,包括参数校验、协议查找、权限检查、访问记录更新等核心逻辑。
二、函数定义与入口
在 OpenProtocol.c 中,OpenProtocol 函数通过 gDxeCoreBootServices 结构体注册,作为引导服务的一部分对外暴露:
// 引导服务结构体中注册 OpenProtocol 函数
EFI_BOOT_SERVICES gDxeCoreBootServices = {
// ... 其他服务函数
OpenProtocol, // OpenProtocol 函数指针
CloseProtocol, // 对应关闭协议的函数
OpenProtocolInformation, // 查询协议打开信息的函数
// ... 其他服务函数
};
OpenProtocol 函数的具体实现如下(简化核心逻辑):
EFI_

最低0.47元/天 解锁文章
587

被折叠的 条评论
为什么被折叠?



