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.