5.1 Services that UEFI drivers commonly use
The following table lists UEFI services commonly used by UEFI drivers. Following that, discussions briefly describe each service, why they are commonly used, or the particular circumstance in which they are useful. Code examples show how the services are typically used by UEFI drivers and are grouped by Service Type.
Table 18-UEFI services that are commonly used by UEFI drivers
Service | Type | Service Type | Description |
---|---|---|---|
AllocatePool() | Boot | Memory Allocation | Allocates a memory buffer of a particular type. |
FreePool() | Boot | Memory Allocation | Frees a previously allocated memory buffer. |
AllocatePages() | Boot | Memory Allocation | Allocates one memory buffer of a particular type with a 4KB aligned start address and a 4KB aligned length. |
FreePages() | Boot | Memory Allocation | Frees a memory buffer previously allocated with AllocatePages(). |
CopyMem() | Boot | Miscellaneous | Copies a buffer from one location to another. |
SetMem() | Boot | Miscellaneous | Initializes the contents of a buffer with a specified value. |
InstallMultipleProtocolInterfa ces() | Boot | Protocol Handler | Installs one or more protocol interfaces onto a handle. Replaces the InstallProtocolInterface() service. |
UninstallMultipleProtocolInter faces() | Boot | Protocol Handler | Uninstalls one or more protocol interfaces from a handle. Replaces the UninstallProtocolInterface() service. |
LocateHandleBuffer() | Boot | Protocol Handler | Retrieves a list of handles from the handle database meeting the search criteria. The return buffer is automatically allocated. |
LocateProtocol() | Boot | Protocol Handler | Finds the first handle in the handle database supporting the requested protocol. |
OpenProtocol() | Boot | Protocol Handler | Adds elements to the list of agents consuming a protocol interface. |
OpenProtocolInformation() | Boot | Protocol Handler | Retrieves the list of agents currently consuming a protocol interface. |
CloseProtocol() | Boot | Protocol Handler | Removes elements from the list of agents consuming a protocol interface. |
RaiseTPL() | Boot | Task Priority | Raises the task priority level. |
RestoreTPL() | Boot | Task Priority | Restores/lowers the task priority level. |
CreateEvent() | Boot | Event | Creates a general-purpose event structure. |
CreateEventEx() | Boot | Event | Creates an event structure as part of an event group. This service is new. |
CloseEvent() | Boot | Event | Closes and frees an event structure. |
SignalEvent() | Boot | Event | Signals an event. |
CheckEvent() | Boot | Event | Checks whether an event is in the signaled state. |
SetTimer() | Boot | Time-related | Sets an event to be signaled at a particular time. |
Stall() | Boot | Time-related | Waits for a specified number of microseconds. This is a time-related service with the highest accuracy. |