PPI Services
来源:互联网 发布:it运维软件 编辑:程序博客网 时间:2024/05/16 12:18
下面这些services 为PPI database 提供了接口的集合:就是说,所有的操作都是基于PPI database的
InstallPpi()
ReinstallPpi()
LocatePpi()
NotifyPpi()
InstallPpi()
小节
这个是由PEI Foundation提供的第一个service.它通过 GUID 向PPI database 中安装一个接口(interface),
这个service的目的就是公布一个interface 以方便其他的部分可以调用额外的PEIM.
原型
typedefEFI_STATUS(EFIAPI *EFI_PEI_INSTALL_PPI) (IN CONST EFI_PEI_SERVICES**PeiServices,IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList);
</pre>参数<p></p><p>PeiServices</p><p><span style="white-space:pre"></span>一个指向EFI_PEI_SERVICES表的间接指针,这个表由PEI Foundation published,不知道翻译成什么</p><p>原文 是 An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.</p><p>PpiList</p><p><span style="white-space:pre"></span>一个指向将会被安装的interface 列表的指针</p><p>这个service 使得peim 可以向PEI Foundation, PEI Foundation 维护指向列表的指针而不是整个list,</p><p>这个list 要么是peim 本体要么是分配在临时或者永久内存中的。</p><p>有两种类型的EFI_PEI_PPI_DESCRIPTOR 可以被安装,包括</p><p>EFI_PEI_PPI_DESCRIPTOR_NOTIFY_DISPATCH 和 EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK.</p><p>返回的状态码</p><p><table border="1" width="400" cellspacing="1" cellpadding="1"><tbody><tr><td>EFI_SUCCESS<span style="white-space:pre"></span></td><td>the interface was successfully installed.</td></tr><tr><td>EFI_INVALID_PARAMETER<span style="white-space:pre"></span></td><td>The PpiList pointer is NULL</td></tr><tr><td>EFI_INVALID_PARAMETER<span style="white-space:pre"></span></td><td>Any of the PEI PPI descriptors in the list do not have the EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.</td></tr><tr><td>EFI_OUT_OF_RESOURCES</td><td>There is no additional space in the PPI database.</td></tr></tbody></table>ReinstallPpi()</p><p>这个函数通过GUID重新安装一个interface,这个service的目的是publish一个Interfere,使得别的部分</p><p>可以替换interface.</p><p></p><p>原型</p><p><pre name="code" class="cpp">typedefEFI_STATUS(EFIAPI *EFI_PEI_REINSTALL_PPI) (IN CONST EFI_PEI_SERVICES **PeiServices,IN CONST EFI_PEI_PPI_DESCRIPTOR*OldPpi,IN CONST EFI_PEI_PPI_DESCRIPTOR*NewPpi);
参数
PeiServices
一个由PEI Foundation publish的指向EFI_PEI_SERVICES 表
OldPpi
database中一个指向先前PPI 的指针。
NewPpi
一个指向新的将会被安装的interface的指针
描述
这个service 使得PEIM 在ppi database 里面使用另外一个entry 替换一个entry.
返回的状态码
EFI_SUCCESSthe interface was successfully installedEFI_INVALID_PARAMETER The Oldppi or NewPpi pointer is NULLEFI_INVALID_PARAMETER Any of the PEI PPI descriptors in the list do not have theEFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags fieldEFI_OUT_OF_RESOURCES There is no additional space in the PPI database.EFI_NOT_FOUND The PPI for which the reinstallation was requested has not been installed.
LocatePpi()
这个函数使用GUID 在 PEI PPI database 中找一个interface.
原型
typedefEFI_STATUS(EFIAPI *EFI_PEI_LOCATE_PPI) (IN CONST EFI_PEI_SERVICES**PeiServices,IN CONST EFI_GUID *Guid,IN UINTN Instance,IN OUT EFI_PEI_PPI_DESCRIPTOR**PpiDescriptor OPTIONAL,IN OUT VOID**Ppi);
0 0
- PPI Services
- PPI
- ppi
- PPI解释
- iOS PPI
- nRF52832 PPI
- 分辨率 ppi
- nRF PPI
- Services
- services
- Services
- services
- Services
- Services
- Services
- Services
- Services
- Services
- POJ 1564 深搜
- IOS开发基础之——图像压缩成指定大小(高度/宽度)
- Android] Android开发优化之——使用软引用和弱引用
- 关于express与ejs的那点儿事
- 管式超滤系统:中空纤维超滤系统概述
- PPI Services
- 驾校考试理论考的一些技巧你知道吗?
- U-boot源码下载地址
- STC89C52RC内部EEPROM的读写
- c++ 数字转汉字
- 测试一下博客是否可以正常使用
- oracle 11g 默认用户名和密码
- 策略模式(Strategy Pattern)
- spring是怎么实现依赖注入的