PEI 阶段的PPI 和 PPI notify

来源:互联网 发布:matlab 字符串数组 编辑:程序博客网 时间:2024/05/10 08:21
PPI notify 相当于 PPI 的callback function.
PPI 和PPI notify 都有相应的GUID来区分
在PEI Services 中有两个function : InstallPPI 和NotifyPPI


1.调用InstallPPI时,会把PPI interface 插入PPI database 的PPI LIST 数组中,假设其可以容纳    128个Items。插入顺序是从PPI LIST的头部向尾部插入,及PPI LIST[0],PPI LIST[1]....

   插入该PPI后,然后检查一下是否有与之GUID相同的PPI Notify被notify过。如果有,则调用该PPI notify的notify function完成相应的功能。


2.调用NotifyPPI时,会把PPI notify 插入PPI database 的PPI LIST 数组中,插入顺序是从PPI LIST的尾部向头部插入,及PPI LIST[127],PPI LIST[126]....

   插入该PPI notify后,然后检查一下是否有与之GUID相同的PPI被install过。如果有,则调用该PPI notify的notify function完成相应的功能。


3.上述描述的为callback level 的PPI notify的执行方式。

    对于dispatch level的PPI notify是在每个PEIM 被执行后去检查是否有与之GUID相同的PPI被    install过,如果有,则调用该PPI notify的notify function完成相应的功能。


4.PPI 可以通过locatePPI service 来获得该PPI的实例,进而使用该PPI提供的function.
   但是PPI notify是无法被locate到的