ExitBootServices()
is called, including the time that an operating system is running. If SetVirtualAddressMap()
is called, then modules of this type are relocated according to virtual address map provided by the operating system.ExitBootServices()
is called. As a result, runtime drivers may not use any of the UEFI Boot Services, DXE Services, or services produced by boot service drivers after ExitBootServices()
is called.MODULE_TYPE
as DXE_RUNTIME_DRIVER
in the INF file. In addition, because the DXE runtime driver encounters SetVirtualAddressMap()
during its life cycle, it may need to register an event handler for the event EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE
.[Defines]
section for a driver namedSampleDriverRuntimeDxe
. For DXE runtime driver, the MODULE_TYPE
entry should be DXE_RUNTIME_DRIVER
SetVirtualAddressMap()
. In this case, the DXE runtime driver must create a signal type event that is notified when SetVirtualAddressMap()
is called by the operating system. This call allows the DXE runtime driver to convert pointers from physical addresses to virtual addresses.SetVirtualAddressMap()
is called.ConvertPointer()
to convert pointers within data structures that are managed by the DXE runtime driver from physical addresses to virtual addresses.