5.2 Services that UEFI drivers rarely use

Table 19 lists UEFI services rarely used by UEFI drivers. The following sub-topics briefly describe each service, why they are rarely used, or the particular circumstance in which they are useful. The code examples show how the services are typically used by UEFI drivers and are grouped by Service Type.

Table 19-UEFI services that are rarely used by UEFI drivers

Service

Type

Service Type

Notes

ConnectController()

Boot

Protocol Handler

Uses a set of precedence rules to find the best set of drivers to manage a controller.

DisconnectController()

Boot

Protocol Handler

Informs a set of drivers to stop managing a controller.

ReinstallProtocolInterface()

Boot

Protocol Handler

Reinstalls a protocol interface on a device handle.

LocateDevicePath()

Boot

Protocol Handler

Locates a device handle supporting a specific protocol and having the closest matching device path. UEFI drivers should use the services on the ControllerHandle passed into the Supported() and Start() functions of the driver's EFI_DRIVER_BINDING_PROTOCOL.

LoadImage()

Boot

Image

Used only by bus drivers that can load, start, and potentially unload UEFI drivers stored in other images in some other location on the child devices of the bus.

StartImage()

Boot

Image

Used only by bus drivers that can load, start, and potentially unload UEFI drivers stored in other images in some other location on the child devices of the bus.

GetVariable()

Runtime

Variable

Returns the value of a variable.

SetVariable()

Runtime

Variable

Sets the value of a variable.

QueryVariableInfo()

Runtime

Variable

Returns information about the EFI variables.

GetTime()

Runtime

Time-related

Returns the current time and date, and the time-keeping capabilities of the platform.

CalculateCrc32()

Boot

Miscellaneous

Maintains the checksum of the UEFI System Table, UEFI boot services table, and UEFI runtime services table.

ConvertPointer()

Runtime

Miscellaneous

Sometimes used by UEFI runtime drivers. This service should never be used by UEFI boot service drivers.

InstallConfigurationTable()

Boot

Miscellaneous

Adds, updates, or removes a configuration table from the UEFI system table.

WaitForEvent()

Boot

Event

Stops execution until an event is signaled.

GetNextMonotonicCount()

Boot

Special

Provides a 64-bit monotonic counter that is guaranteed to increase.