2011年4月23日 星期六

Platform Components

在EFI Driver Model的架構之下, 從Controller連接或斷線到Driver的動作都是在Platform Firmware的控制下. 通常都會實做為EFI Boot Manager的一個部分, 但也可能實做在其他地方. Platform Firmware會使用ConnectController()以及DisconnectController()來決定哪一個Controller可以開始, 哪個不行. 如果Platform希望完成Diagnostic測試或安裝OS, 那麼它可能會去連接Driver到所有可能boot的Device. 如果Platform希望boot到預先安裝好的OS, 那麼它可以只連接一個Driver到有安裝OS的Device.

EFI Driver Model同時支援Boot Service的ConnectController()以及DisconnectController()的運作模式. 此外, 因為背負boot責任的Platform Component需要Console Device的Device Path幫忙以及Boot Option的幫忙, 所有EFI Driver Model的Service以及Protocol的複雜使用都會與Device Path一起做最佳化處理.

Platform也可以選擇要不要產生一個叫做Platform Driver Override的Protocol, 此Protocol類似Bus Specific Driver Override Protocol, 但是Platform Driver Override Protocol有較高的優先權. 此Protocol賦予了Platform Firmware最高的優先權, 可以讓Platform Firmware有權力決定哪一個Driver連接到哪一個Controller. Platform Driver Override Protocol會附加在系統的Handle之中. 通常Boot Service的ConnectController()會讓此Protocol可以使用.

沒有留言:

張貼留言