Status codes returned – Intel Extensible Firmware Interface User Manual
Page 210

Extensible Firmware Interface Specification
6-18
12/01/02
Version 1.10
When this function is called, all events that were registered to be signaled on an address map
change are notified. Each component that is notified must update any internal pointers for their
new addresses. This can be done with the
function. Once all events have
been notified, the EFI firmware reapplies image “fix-up” information to virtually relocate all
runtime images to their new addresses. In addition, all of the fields of the EFI Runtime Services
Table except
SetVirtualAddressMap
and
ConvertPointer
must be converted from
physical pointers to virtual pointers using the
ConvertPointer()
service. The
SetVirtualAddressMap()
and
ConvertPointer()
services are only callable in physical
mode, so they do not need to be converted from physical pointers to virtual pointers. Several fields
of the EFI System Table must be converted from physical pointers to virtual pointers using the
ConvertPointer()
service. These fields include
FirmwareVendor
,
RuntimeServices
,
and
ConfigurationTable
. Because contents of both the EFI Runtime Services Table and the
EFI System Table are modified by this service, the 32-bit CRC for the EFI Runtime Services Table
and the EFI System Table must be recomputed.
A virtual address map may only be applied one time. Once the runtime system is in virtual mode,
calls to this function return
EFI_UNSUPPORTED
.
Status Codes Returned
EFI_SUCCESS
The virtual address map has been applied.
EFI_UNSUPPORTED
EFI firmware is not at runtime, or the EFI firmware is already in
virtual address mapped mode.
EFI_INVALID_PARAMETER
DescriptorSize
or
DescriptorVersion
is
invalid.
EFI_NO_MAPPING
A virtual address was not supplied for a range in the memory
map that requires a mapping.
EFI_NOT_FOUND
A virtual address was supplied for an address that is not found
in the memory map.