Beyond BIOS: Implementing the Unified Extensible Firmware Interface with Intel's Framework

This appendix contains a summary of all the services and GUIDs available to EFI drivers. This includes EFI Boot Services, EFI Runtime Services, EFI Driver Library Services, GUID variables, protocol variables, and the various protocol services. Some of the GUIDs and protocols listed here are not part of the EFI 1.10 Specification. Instead, they are extensions that are included in the EFI Sample Implementation.
Tables C.1, C.2, and C.3 list the EFI Boot Services and EFI Runtime Services. These three tables list the most commonly used services, the rarely used services, and the services that should not be used from EFI drivers. Services labeled with type BS are EFI Boot Services, and services labeled with type RT are EFI Runtime Services. A detailed explanation of the services that are rarely used or should not be used by EFI drivers is included in Chapter 2. Chapters 5 and 6 of the EFI 1.10 Specification contain detailed descriptions of all the EFI Boot Services and EFI Runtime Services.
| Type | Service | Type | Service |
|---|---|---|---|
| BS | gBS->AllocatePool() | BS | gBS->InstallMultipleProtocolInterfaces() |
| BS | gBS->AllocatePages() | BS | gBS->LocateHandleBuffer() |
| BS | gBS->FreePages() | BS | gBS->LocateProtocol() |
| BS | gBS->SetMem() | BS | gBS->OpenProtocol() |
| BS | gBS->CopyMem() | BS | gBS->CloseProtocol() |
| BS | gBS->OpenProtocolInformation() | ||
| BS | gBS->CreateEvent() | ||
| BS | gBS->CloseEvent() | BS | gBS->RaiseTPL() |
| BS | gBS->SignalEvent() | BS | gBS->RestoreTPL() |
| BS | gBS->SetTimer() | ||
| BS | gBS->CheckEvent() | BS | gBS->Stall() |
| Type | Service | Type | Service |
|---|---|---|---|
| BS | gBS->ReinstallProtocolInterface() | BS | gBS->LoadImage() |
| BS | gBS->LocateDevicePath() | BS | gBS->StartImage() |
| BS |