Extensible Firmware Interface Specification
3.7.1
SetVirtualAddressMap()
Summary
Changes the runtime addressing mode of EFI firmware from physical to virtual.
Prototype
EFI_STATUS
SetVirtualAddressMap (
IN UINTN
IN UINTN
IN UINT32
IN EFI_MEMORY_DESCRIPTOR
);
Parameters
MemoryMapSize
DescriptorSize
DescriptorVersion
VirtualMap
Description
The
SetVirtualAddressMap()
called at runtime, and is called by the owner of the system's memory map. I.e., the component
which called ExitBootServices().
This call changes the addresses of the runtime components of the EFI firmware to the new virtual
addresses supplied in the VirtualMap. The supplied
address for every entry in the memory map at
needed for runtime usage.
The call to
SetVirtualAddressMap()
successful return from this function, the system must then make any future calls with the newly
assigned virtual mappings. All address space mappings must be done in accordance to the
cacheability flags as specified in the original address map.
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
been notified, the EFI firmware re-applies image "fixup" information to virtually relocate all
runtime images to their new addresses.
92
MemoryMapSize,
DescriptorSize,
DescriptorVersion,
*VirtualMap
The size in bytes of VirtualMap.
The size in bytes of an entry in the VirtualMap.
The version of the structure entries in VirtualMap.
An array of memory descriptors which contain new virtual
address mapping information for all runtime ranges. Type
EFI_MEMORY_DESCRIPTOR
function is used by the OS loader. The function can only be
VirtualMap
ExitBootServices()
must be done with the physical mappings. On
ConvertPointer()
12/12/00
is defined in Section 3.2.3.
must provide a new virtual
that is marked as being
function. Once all events have
Version 1.02
Need help?
Do you have a question about the Extensible Firmware Interface and is the answer not in the manual?