在之前的文章中有提到UEFI的系統大概可以區分兩個階段,起初是Boot Service再來就是Runtime Service(RS)如紅框所涵蓋的程序都可以稱為RS。
區分這兩個Service最重要的一項轉類點函數為
- ExitBootServices()
讓我們稍微的Trace一下Code來感覺一下。
%%% In My Case (Maybe Different source code has signification procedure for costumer) %%%
發現ExitBootServices()會處在universal\acpi\acpifpdtsupport\acpifpdtsupport.c檔案中,
acpifpdtsupport(ACPI Firmware Performance Data Table Support)
經過一番波折後發現,acpifpdtsupport.inf檔案會發現有inclulde AcpiFPDTSupport.dxs
透過.dxs(Dependency eXpreSsion)找出了觸發的條件為
- EFI_BOOT_SCRIPT_SAVE_PROTOCOL_GUID
- EFI_ACPI_SUPPORT_GUID
- EFI_CPU_ARCH_PROTOCOL_GUID
以上三項Protocols啟動後便會觸發
- InitailizeAcpiFPDTSupport()
透過上敘的過程中會發現.inf和.dxs對於UEFI的重要性。
No comments:
Post a Comment