Extensible Firmware Interface Specification
5-4 12/01/02 Version 1.10
Executing code can temporarily raise its priority level by calling the RaiseTPL() function.
Doing this masks event notifications from code running at equal or lower priority levels until the
RestoreTPL()
function is called to reduce the priority to a level below that of the pending event
notifications. There are restrictions on the TPL levels at which many EFI service functions and
protocol interface functions can execute. Table 5-3 summarizes the restrictions.
Table 5-3. TPL Restrictions
Name Restriction Task Priority Level
Memory Allocation Services
<= TPL_NOTIFY
Variable Services
<= TPL_CALLBACK
ExitBootServices()
= TPL_APPLICATION
LoadImage()
< TPL_CALLBACK
StartImage()
< TPL_CALLBACK
UnloadImage()
<= TPL_CALLBACK
Exit()
<= TPL_CALLBACK
Time Services
<= TPL_CALLBACK
WaitForEvent()
= TPL_APPLICATION
SignalEvent()
<= TPL_HIGH_LEVEL
Event Notification Levels
>
<=
TPL_APPLICATION
TPL_HIGH_LEVEL
Protocol Interface Functions
<= TPL_NOTIIFY
Block I/O Protocol
<= TPL_CALLBACK
Disk I/O Protocol
<= TPL_CALLBACK
Simple File System Protocol
<= TPL_CALLBACK
Simple Input Protocol
<= TPL_APPLICATION
Simple Text Output Protocol
<= TPL_NOTIFY
Serial I/O Protocol
<= TPL_CALLBACK
PXE Base Code Protocol
<= TPL_CALLBACK
Simple Network Protocol
<= TPL_CALLBACK