Cstyle的UEFI导读之Load File Driver Protocol

   

===================================================================== 

固件C字营·版权所有·欢迎转载
敬请关注微信公众号:“固件C字营”
敬请关注QQ群:1052307
敬请关注优快云博客:Cstyle_0x007

图片

===================================================================== 

        UEFI是通过UEFI Boot Manager来引导操作系统的,而UEFI Boot Manager通常会用到两个服务imple File System Protocol ,Load File Protocol。前者一般用在一些标准的设备中如USB, SCSI, and ATA等等,而且会作为默认的首先被UEFI Boot Manager尝试去引导操作系统的方法,如果失败就可能会使用后者。

 

    EFI_LOAD_FILE_PROTOCOL是遵循UEFI driver modle的,在UDK中的LoadFile.c中有参考的实现:
EFI_LOAD_FILE_PROTOCOL的实现:
1. Add global variable for the EFI_LOAD_FILE_PROTOCOL instance to LoadFile.c.
2. Implement the LoadFile() service in LoadFile.c.
typedef
EFI_STATUS
(EFIAPI *EFI_LOAD_FILE) (
    IN EFI_LOAD_FILE_PROTOCOL *This,
    IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
    IN BOOLEAN BootPolicy,    ---用来决定是普通的文件读取,还是被bootmanager用来读取boot selection引导操作系统
    IN OUT UINTN *BufferSize,
    IN VOID *Buffer OPTIONAL
);
从上面可以看出,最重要的工作在于实现LoadFile()服务,他可以屏蔽底层的数据是如何存储和实现的。
1. Verify that the FilePath represents a file accessible by this device.
2. Verify that the file specified by FilePath exists. If it does not exist, check BootPolicy to see if inexact FilePath is allowed.
3. Verify that Buffer is large enough to return the entire file by examining BufferSize parameter. If not large enough, place correct size in BufferSize and return EFI_BUFFER_TOO_SMALL
Ok,收工。
转载请注明出处Cstyle.z.zhou@gmail.com//http://blog.youkuaiyun.com/CStyle_0x007  

===================================================================== 

固件C字营·版权所有·欢迎转载
敬请关注微信公众号:“固件C字营”
敬请关注QQ群:1052307
敬请关注优快云博客:Cstyle_0x007

图片

===================================================================== 

@微信公众号《固件C字营》不定期更新状态,关注&订阅公众号不迷路。

完整PDF版整理中,可以在优快云下载频道搜索”UEFI内核导读“下载样张......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值