模式一
DXE的boot service阶段,DXE driver和SMM之间有消息机制可通信,目地是为了让SMM能代理runtime services和boot services。
比如:在SMM中实现一个UEFI 变量services。这样做的原因是,要是在MMI中产生一个错误日志,需要写数据到FLASH的UEFI 变量区,这个错误可能会跟OS同步,问题是,如果OS此时正在写一个来自内存错误状态的UEFI变量。为了避免SMM和UEFI runtime两个代理同时写flash,SetVariable()这个UEFI接口调用可以帮助处理EFI_SMM_COMMUNICATION_PROTOCOL.Communicate() 接口。然后,SMM可以串行处理错误日志写入flash的请求及OS的SetVariable()请求。
模式二
交互式机制。这种机制可以在OS现存的环境中使用,不需要代理。
阅读(5142) | 评论(0) | 转发(0) |